PluginProbe
Forumax – AI Powered Advanced Community Forum Plugin / 2.2.0
Forumax – AI Powered Advanced Community Forum Plugin v2.2.0
2.4.4 2.4.3 2.4.2 2.4.1 2.4.0 trunk 1.0.8 1.1.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 2.0.0 2.1.0 All 29 releases
← All changes | includes/admin/menu/admin_ui.php +202 -185 1.2.52.2.0 View file →
@@ -1,185 +1,202 @@
1 -<?php
2 -if ( ! class_exists( 'bbPress' ) ) {
3 - return;
4 -}
5 -
6 -$parent_forums = [];
7 -$fcount = wp_count_posts( bbp_get_forum_post_type() );
8 -$forum_count = (int) ( $fcount->publish + $fcount->hidden + $fcount->spam );
9 -$bbpc_opt = get_option( 'bbp_core_settings' );
10 -?>
11 -<div class="wrap">
12 -<div class="body-dark">
13 - <?php
14 - if ( $forum_count > 0 ) :
15 - include __DIR__ . '/admin_ui/header.php';
16 - ?>
17 - <main>
18 - <div class="easydocs-sidebar-menu">
19 - <div class="tab-container">
20 - <?php
21 - $forum_query = new WP_Query(
22 - [
23 - 'post_type' => bbp_get_forum_post_type(),
24 - 'posts_per_page' => -1,
25 - 'post_parent' => 0,
26 - 'orderby' => 'menu_order',
27 - 'order' => 'ASC',
28 - 'post_status' => 'publish',
29 - ]
30 - );
31 -
32 - $count = $forum_query->found_posts;
33 -
34 - // Left Sidebar Forums.
35 - include __DIR__ . '/admin_ui/forums.php';
36 - ?>
37 -
38 - <div class="easydocs-tab-content">
39 - <?php
40 - $ids = 0;
41 - $container = 1;
42 - if ( is_array( $parent_forums ) ) :
43 - foreach ( $parent_forums as $item ) :
44 - $ids ++;
45 - $container ++;
46 - $active = $ids == 1 ? ' tab-active' : '';
47 -
48 - $children = new WP_Query(
49 - [
50 - 'post_parent' => $item,
51 - 'post_type' => bbp_get_topic_post_type(),
52 - 'orderby' => 'menu_order',
53 - 'order' => 'asc',
54 - 'posts_per_page' => -1,
55 - 'post_status' => [ 'any', 'spam' ],
56 - ]
57 - );
58 -
59 - $count_open = 0;
60 - $count_closed = 0;
61 - $count_hidden = 0;
62 - $count_no_reply = 0;
63 - $count_solved = 0;
64 - $count_unsolved = 0;
65 - $count_trash = 0;
66 -
67 - while ( $children->have_posts() ) :
68 - $children->the_post();
69 - $topic_id = get_the_ID();
70 -
71 - $replies = get_children(
72 - [
73 - 'post_parent' => $topic_id,
74 - 'post_type' => bbp_get_reply_post_type(),
75 - 'post_status' => [ 'publish', 'draft', 'pending' ],
76 - ]
77 - );
78 -
79 - // Count open/closed topics.
80 - if ( bbp_is_topic_closed( $topic_id ) ) {
81 - $count_closed++;
82 - } else {
83 - $count_open++;
84 - }
85 -
86 - // Count spam( hidden ) topics.
87 - if ( bbp_is_topic_spam( $topic_id ) ) {
88 - $count_hidden++;
89 - }
90 -
91 - // Replies count.
92 - if ( 0 == count( $replies ) ) {
93 - $count_no_reply++;
94 - }
95 -
96 - // Count solved.
97 - // Before using $GLOBALS['bbp_solved_topic'], check if it is set
98 - if (isset($GLOBALS['bbp_solved_topic']) && $GLOBALS['bbp_solved_topic']->is_solved($topic_id)) {
99 - $count_solved++;
100 - } else {
101 - $count_unsolved++;
102 - }
103 -
104 - endwhile; wp_reset_postdata();
105 -
106 - $trash_topic = new WP_Query(
107 - [
108 - 'post_parent' => $item,
109 - 'post_type' => bbp_get_topic_post_type(),
110 - 'posts_per_page' => -1,
111 - 'post_status' => [ 'trash' ],
112 - ]
113 - );
114 -
115 - while ( $trash_topic->have_posts() ) :
116 - $trash_topic->the_post();
117 - $trash_topic_id = get_the_ID();
118 - // Count trash.
119 - if ( bbp_is_topic_trash( $trash_topic_id ) ) {
120 - $count_trash++;
121 - }
122 - endwhile; wp_reset_postdata();
123 - ?>
124 - <div class="easydocs-tab <?php echo esc_attr( $active ); ?>" id="tab-<?php echo esc_attr( $item ); ?>">
125 -
126 - <!-- Tab filters. -->
127 - <?php include __DIR__ . '/admin_ui/tab_filters.php'; ?>
128 -
129 - <!-- Children topics. -->
130 - <?php include __DIR__ . '/admin_ui/topics.php'; ?>
131 -
132 - <a class="easydocs-btn easydocs-btn-outline-blue easydocs-btn-sm easydocs-btn-round button button-info section-doc" id="bbpc-topic" target="_blank" name="submit" href="<?php echo admin_url( 'admin.php' ); ?>/Create_Topic.php?bbp_parentID=<?php echo $item; ?>&is_bbp_section=">
133 - <?php esc_html_e( 'Add Topic', 'bbp-core' ); ?>
134 - </a>
135 - </div>
136 - <?php
137 - endforeach;
138 - endif;
139 - ?>
140 - </div>
141 - </div>
142 - </div>
143 - </main>
144 - <?php
145 - else :
146 - ?>
147 - <div class="eazydocs-no-content">
148 - <img src="<?php echo BBPC_IMG; ?>/icon/folder-open.png" alt="<?php esc_attr_e( 'Folder Open', 'bbp-core' ); ?>">
149 - <p class="big-p"> <?php esc_html_e( 'No forum has been found . Perhaps', 'bbp-core' ); ?> </p>
150 - <p> <br>
151 - <a href="<?php echo admin_url( 'admin.php' ); ?>/Create_Forum.php?bbp_parent_title=" target="_blank" type="button" id="bbpc-forum" class="button button-primary ezd-btn btn-lg">
152 - <?php esc_html_e( 'Create Forum', 'bbp-core' ); ?>
153 - </a>
154 - </p>
155 - </div>
156 - <?php
157 - endif; //TODO: Fix open topics not being selected issue.
158 - ?>
159 -</div>
160 -</div>
161 -
162 -<script>
163 - (function ($) {
164 - $(document).ready(function () {
165 - let docContainer = document.querySelectorAll('.easydocs-tab');
166 -
167 - var config = {
168 - controls: {
169 - scope: 'local',
170 - },
171 - animation: {
172 - enable: false,
173 - },
174 - load: {
175 - filter: '<?php echo esc_js( $bbpc_opt['default_filter'] ?? '.open-topics' ); ?>'
176 - }
177 - };
178 -
179 - for (let i = 0; i < docContainer.length; i++) {
180 - var mixer1 = mixitup(docContainer[i], config);
181 - }
182 - });
183 -})(jQuery);
184 -</script>
185 -
1 +<?php
2 +if ( ! class_exists( 'bbPress' ) ) {
3 + return;
4 +}
5 +
6 +$parent_forums = [];
7 +$fcount = wp_count_posts( bbp_get_forum_post_type() );
8 +$forum_count = (int) ( $fcount->publish + $fcount->hidden + $fcount->spam );
9 +?>
10 +<div class="wrap">
11 +<div class="body-dark">
12 + <?php
13 + if ( $forum_count > 0 ) :
14 + include __DIR__ . '/admin_ui/header.php';
15 + ?>
16 + <main>
17 + <div class="easydocs-sidebar-menu">
18 + <div class="tab-container">
19 + <?php
20 + $forum_query = new WP_Query( [
21 + 'post_type' => bbp_get_forum_post_type(),
22 + 'posts_per_page' => -1,
23 + 'post_parent' => 0,
24 + 'orderby' => 'menu_order',
25 + 'order' => 'ASC',
26 + 'post_status' => 'publish',
27 + ] );
28 + $count = $forum_query->found_posts;
29 + // Left Sidebar Forums.
30 + include __DIR__ . '/admin_ui/forums.php';
31 + ?>
32 + <div class="easydocs-tab-content">
33 + <?php
34 + $ids = 0;
35 + $container = 1;
36 + if ( is_array( $parent_forums ) ) :
37 + foreach ( $parent_forums as $item ) :
38 + $ids ++;
39 + $container ++;
40 + $active = $ids == 1 ? ' tab-active' : '';
41 +
42 + $children = new WP_Query(
43 + [
44 + 'post_parent' => $item,
45 + 'post_type' => bbp_get_topic_post_type(),
46 + 'orderby' => 'menu_order',
47 + 'order' => 'asc',
48 + 'posts_per_page' => -1,
49 + 'post_status' => [ 'any', 'spam' ],
50 + ]
51 + );
52 +
53 + $count_open = 0;
54 + $count_closed = 0;
55 + $count_hidden = 0;
56 + $count_no_reply = 0;
57 + $count_solved = 0;
58 + $count_unsolved = 0;
59 + $count_trash = 0;
60 +
61 + while ( $children->have_posts() ) : $children->the_post();
62 + $topic_id = get_the_ID();
63 + $replies = get_children( [
64 + 'post_parent' => $topic_id,
65 + 'post_type' => bbp_get_reply_post_type(),
66 + 'post_status' => [ 'publish', 'draft', 'pending' ],
67 + ] );
68 +
69 + // Count open/closed topics.
70 + if ( bbp_is_topic_closed( $topic_id ) ) {
71 + $count_closed++;
72 + } else {
73 + $count_open++;
74 + }
75 +
76 + // Count spam( hidden ) topics.
77 + if ( bbp_is_topic_spam( $topic_id ) || bbp_is_topic_pending( $topic_id ) ) {
78 + $count_hidden++;
79 + }
80 +
81 + // Replies count.
82 + if ( 0 == count( $replies ) ) {
83 + $count_no_reply++;
84 + }
85 +
86 + // Count solved.
87 + // Before using $GLOBALS['forumax_solve_topic'], check if it is set
88 + if (isset($GLOBALS['forumax_solve_topic']) && $GLOBALS['forumax_solve_topic']->is_solved($topic_id)) {
89 + $count_solved++;
90 + } else {
91 + $count_unsolved++;
92 + }
93 + endwhile;
94 + wp_reset_postdata();
95 +
96 + $trash_topic = new WP_Query( [
97 + 'post_parent' => $item,
98 + 'post_type' => bbp_get_topic_post_type(),
99 + 'posts_per_page' => -1,
100 + 'post_status' => [ 'trash' ],
101 + ] );
102 +
103 + while ( $trash_topic->have_posts() ) :
104 + $trash_topic->the_post();
105 + $trash_topic_id = get_the_ID();
106 + // Count trash.
107 + if ( bbp_is_topic_trash( $trash_topic_id ) ) {
108 + $count_trash++;
109 + }
110 + endwhile;
111 + wp_reset_postdata();
112 + ?>
113 + <div class="easydocs-tab <?php echo esc_attr( $active ); ?>" id="tab-<?php echo esc_attr( $item ); ?>">
114 +
115 + <!-- Tab filters. -->
116 + <?php include __DIR__ . '/admin_ui/tab_filters.php'; ?>
117 +
118 + <!-- Children topics. -->
119 + <?php include __DIR__ . '/admin_ui/topics.php'; ?>
120 +
121 + <?php
122 + if ( $children->post_count > 10 ) :
123 + ?>
124 + <div class="controls bbpc-admin-pagination">
125 + <div class="mixitup-control mixitup-page-list"></div>
126 + </div>
127 + <?php
128 + endif;
129 + ?>
130 +
131 + <a class="easydocs-btn easydocs-btn-outline-blue easydocs-btn-sm easydocs-btn-round button button-info section-doc" id="bbpc-topic" target="_blank" name="submit" href="javascript:void(0)" bbp_forum_id="<?php echo esc_attr( $item ); ?>">
132 + <?php esc_html_e( 'Add Topic', 'forumax' ); ?>
133 + </a>
134 + </div>
135 + <?php
136 + endforeach;
137 + endif;
138 + ?>
139 + </div>
140 + </div>
141 + </div>
142 + </main>
143 + <?php
144 + else :
145 + ?>
146 + <div class="eazydocs-no-content">
147 + <img src="<?php echo esc_url( FORUMAX_IMG . 'icon/folder-open.png' ); ?>" alt="<?php esc_attr_e( 'Folder Open', 'forumax' ); ?>">
148 + <p class="big-p"> <?php esc_html_e( 'No forums found. Get started by creating a new forum or importing demo data.', 'forumax' ); ?> </p>
149 + <p class="forumax-empty-actions">
150 + <a href="javascript:void(0)" type="button" id="bbpc-forum" class="button button-primary ezd-btn btn-lg">
151 + <span class="dashicons dashicons-plus-alt2"></span>
152 + <?php esc_html_e( 'Create Forum', 'forumax' ); ?>
153 + </a>
154 + <span class="forumax-actions-separator"><?php esc_html_e( 'or', 'forumax' ); ?></span>
155 + <a href="javascript:void(0)" type="button" id="forumax-import-demo" class="button ezd-btn btn-lg forumax-import-demo-btn">
156 + <span class="dashicons dashicons-database-import"></span>
157 + <?php esc_html_e( 'Import Demo Data', 'forumax' ); ?>
158 + </a>
159 + </p>
160 + </div>
161 + <?php
162 + endif;
163 + ?>
164 + </div>
165 +</div>
166 +
167 +<script>
168 + (function ($) {
169 + $(document).ready(function () {
170 + let docContainer = document.querySelectorAll('.easydocs-tab');
171 + var config = {
172 + controls: {
173 + scope: 'local',
174 + },
175 + animation: {
176 + enable: false,
177 + },
178 + load: {
179 + filter: '<?php echo esc_js( forumax_get_opt( 'default_filter', '.open-topics' ) ); ?>'
180 + },
181 + pagination: {
182 + limit: 10,
183 + },
184 + callbacks: {
185 + onMixEnd: function(state) {
186 + var pagination = state.container.querySelector('.bbpc-admin-pagination');
187 + if ( pagination ) {
188 + if ( state.totalShow === 0 ) {
189 + pagination.style.display = 'none';
190 + } else {
191 + pagination.style.display = 'block';
192 + }
193 + }
194 + }
195 + }
196 + };
197 + for (let i = 0; i < docContainer.length; i++) {
198 + var mixer1 = mixitup(docContainer[i], config);
199 + }
200 + });
201 +})(jQuery);
202 +</script>