PluginProbe ʕ •ᴥ•ʔ
FAPI Member / trunk
FAPI Member vtrunk
2.2.36 2.2.35 2.2.34 2.2.33 2.2.32 trunk 1.9.47 2.1.18 2.2.24 2.2.25 2.2.26 2.2.28 2.2.29 2.2.30 2.2.31
fapi-member / templates / index.php
fapi-member / templates Last commit date
connection.php 2 years ago fapiMemberLoginPage.php 2 years ago index.php 2 years ago levelSelection.php 2 years ago memberList.php 2 years ago settingsContentAdd.php 2 years ago settingsContentRemove.php 2 years ago settingsContentSelect.php 2 years ago settingsElements.php 2 years ago settingsEmails.php 2 years ago settingsLevelNew.php 2 years ago settingsPages.php 2 years ago settingsSectionNew.php 2 years ago settingsSettings.php 2 years ago settingsUnlocking.php 2 years ago test.php 2 years ago
index.php
168 lines
1 <?php
2
3 global $FapiPlugin;
4 global $membershipRepository;
5
6 use FapiMember\Deprecated\FapiMemberTools;
7 use FapiMember\Model\Enums\Keys\OptionKey;
8 use FapiMember\Utils\AlertProvider;
9 use FapiMember\Deprecated\FapiLevels;
10 use FapiMember\Deprecated\FapiMembership;
11
12 $fapiLevels = $FapiPlugin->levels();
13
14 echo FapiMemberTools::heading();
15 ?>
16
17 <div class="page smallerPadding">
18 <h3><?php echo __( 'Přehled členských sekcí a úrovní', 'fapi-member' ); ?></h3>
19 <?php echo AlertProvider::showErrors(); ?>
20 <div class="sectionsOverview">
21 <?php
22
23 $all_stored_post_types = get_option(OptionKey::POST_TYPES, array());
24
25 $envelopes = $fapiLevels->loadAsTermEnvelopes();
26 $mapToParent = array_reduce($envelopes,
27 static function ($carry, $envelope) {
28 $carry[$envelope->getTerm()->term_id] = $envelope->getTerm()->parent;
29
30 return $carry;
31 },
32 []
33 );
34
35 $topEnvelopes = array_filter($envelopes,
36 static function ($envelope) {
37 return $envelope->getTerm()->parent === 0;
38 }
39 );
40 $pagesCount = [];
41 $levelsToPages = $fapiLevels->levelsToPages();
42 $levelCount = array_reduce($envelopes,
43 static function ($carry, $envelope) use (&$pagesCount, $levelsToPages) {
44 $one = $envelope->getTerm();
45 $carry[$one->parent] = (isset($carry[$one->parent])) ? $carry[$one->parent] + 1 : 1;
46 if ($one->parent === 0) {
47 $pagesCount[$one->term_id] = isset($pagesCount[$one->term_id]) ? $pagesCount[$one->term_id] + count($levelsToPages[$one->term_id]) : count($levelsToPages[$one->term_id]);
48 } else {
49 $pagesCount[$one->parent] = isset($pagesCount[$one->parent]) ? $pagesCount[$one->parent] + count($levelsToPages[$one->term_id]) : count($levelsToPages[$one->term_id]);
50 }
51
52 return $carry;
53 },
54 []);
55
56 foreach($pagesCount as $level_id => &$pages_count) {
57
58 if (isset($all_stored_post_types[$level_id])) {
59
60 $posts = get_posts(
61 array(
62 'post_type' => $all_stored_post_types[$level_id],
63 'post_status' => array( 'publish' ),
64 'numberposts' => -1,
65 )
66 );
67
68 $pages_count += count($posts);
69 }
70 }
71 unset($pages_count);
72
73 $empty = true;
74
75 $memberships = $membershipRepository->getAll();
76 $usersInLevel = [];
77
78 foreach ($memberships as $userId => $userMemberships) {
79 /** @var FapiMembership[] $ms */
80 {
81 foreach ($userMemberships as $membership) {
82 if (!isset($usersInLevel[$membership->getLevelId()])) {
83 $usersInLevel[$membership->getLevelId()] = [];
84 }
85 $usersInLevel[$membership->getLevelId()][$userId] = true;
86
87 if (
88 isset($mapToParent[$membership->getLevelId()]) &&
89 $mapToParent[$membership->getLevelId()] !== 0
90 ) {
91 // is child, count unique to parent too
92 if (!isset($carry[$mapToParent[$membership->getLevelId()]])) {
93 $carry[$mapToParent[$membership->getLevelId()]] = [];
94 }
95 $carry[$mapToParent[$membership->getLevelId()]][$userId] = true;
96 }
97 }
98 }
99 }
100 $levelUsersCount = [];
101 foreach ($usersInLevel as $level => $users) {
102 $levelUsersCount[$level] = count($users);
103 }
104
105 foreach ($topEnvelopes as $envelope) {
106 $level = $envelope->getTerm();
107 $empty = false;
108 ?>
109 <div class="mainLevel">
110 <div class="name"><?php echo $level->name ?></div>
111 <div class="levelCount"><?php echo __( 'Počet úrovní', 'fapi-member' ); ?>:
112 <span><?php echo (isset($levelCount[$level->term_id])) ? $levelCount[$level->term_id] : 0 ?></span>
113 </div>
114 <div class="membersCount"><?php echo __( 'Počet registrovaných', 'fapi-member' ); ?>:
115 <span><?php echo (isset($levelUsersCount[$level->term_id])) ? $levelUsersCount[$level->term_id] : 0 ?></span>
116 <?php if (isset($levelUsersCount[$level->term_id])) {
117 echo '<div><a href="' . FapiMemberTools::fapilink('memberList'.'&sectionID='.$level->term_id).'" class="btn outline">' . __('Seznam členů', 'fapi-member') . '</a></div>';
118 }
119 ?>
120 </div>
121 <div class="pagesCount"><?php echo __( 'Stránek v celé sekci', 'fapi-member' ); ?>:
122 <span><?php echo (isset($pagesCount[$level->term_id])) ? $pagesCount[$level->term_id] : 0 ?></span>
123
124 </div>
125 </div>
126 <div class="subLevels collapsibleContent" style="max-height: 0px;">
127 <?php
128 $subLevels = get_term_children($level->term_id, FapiLevels::TAXONOMY);
129 if (!is_wp_error($subLevels)) {
130 foreach ($subLevels as $subLevel) {
131 $subLevelTerm=get_term_by('ID', $subLevel, FapiLevels::TAXONOMY);
132 ?>
133 <div class="subLevel">
134 <h3><?php echo $subLevelTerm->name ?></h3>
135 <div class="membersCount" style="display:inline;"><?php echo __('Počet registrovaných', 'fapi-member'); ?>:
136 <span><?php echo (isset($levelUsersCount[$subLevel])) ? $levelUsersCount[$subLevel] : 0 ?></span>
137 <?php if (isset($levelUsersCount[$subLevel])) {
138 echo '<div><a href="' . FapiMemberTools::fapilink('memberList') . '&sectionID=' . $subLevel . '" class="btn outline">' . __('Seznam členů', 'fapi-member') . '</a></div>';
139 }
140 ?>
141 </div>
142 </div>
143 <?php
144 }
145 }
146 ?>
147 </div>
148
149 <?php } ?>
150
151 </div>
152 <?php if ($empty) { ?>
153
154 <div class="emptyIndex">
155 <img src="<?php echo plugin_dir_url(__FILE__) . '../media/membership.svg' ?>">
156 <p class="gray">
157 <?php echo __( 'Nemáte vytvořenou žádnou členskou sekci.', 'fapi-member' ); ?><br>
158 <?php echo __( 'Novou sekci můžete vytvořit na záložce Sekce / úrovně.', 'fapi-member' ); ?>
159 </p>
160 <a href="<?php echo FapiMemberTools::fapilink('settingsSectionNew') ?>" class="btn primary">
161 <?php echo __( 'Přejít do záložky Sekce / úrovně', 'fapi-member' ); ?></a>
162 </div>
163
164 <?php } ?>
165 </div>
166 <?php echo FapiMemberTools::help() ?>
167 </div>
168