PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.0.2.5
Adminify – White Label, Admin Menu Editor, Login Customizer v4.0.2.5
4.3.1 4.3.0 4.2.26 4.2.25 4.2.24 4.2.23 4.2.22 4.2.21 4.2.20 4.2.19 4.2.18 4.2.17 4.2.16 4.2.15 4.2.14 4.2.13 4.2.12 4.2.11 4.2.10 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 4.1.17 All 164 releases
adminify / Inc / Classes / AdminBar.php

AdminBar.php in Adminify – White Label, Admin Menu Editor, Login Customizer 4.0.2.5, at Inc/Classes/AdminBar.php

1,260 lines 56.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WPAdminify\Inc\Classes;
4
5 use WPAdminify\Inc\Utils;
6 use WPAdminify\Inc\Admin\AdminSettings;
7 use WPAdminify\Inc\Classes\DarkModeConflicts;
8 use WPAdminify\Inc\Admin\AdminSettingsModel;
9 // no direct access allowed
10 if ( !defined( 'ABSPATH' ) ) {
11 exit;
12 }
13 class AdminBar extends AdminSettingsModel {
14 public $options;
15
16 public $post_types;
17
18 public $adminify_ui;
19
20 public function __construct() {
21 $this->options = (array) AdminSettings::get_instance()->get();
22 $this->adminify_ui = $this->options['admin_ui'];
23 if ( !empty( $this->options['light_dark_mode']['admin_ui_mode'] ) && $this->options['light_dark_mode']['admin_ui_mode'] === 'dark' ) {
24 new DarkModeConflicts();
25 }
26 // $admin_bar_user_roles = !empty($this->options['admin_bar_user_roles']) ? $this->options['admin_bar_user_roles'] : '';
27 // if (Utils::restricted_for($admin_bar_user_roles)) {
28 // return;
29 // }
30 // Disable the default admin bar
31 // add_filter('show_admin_bar', '__return_false');
32 // Add admin-bar support if not already activated
33 // add_theme_support('admin-bar', ['callback' => '__return_false']);
34 // 05-06-2024
35 // Check Adminify Setup Wizard Page
36 if ( !empty( $_GET['page'] ) && 'wp-adminify-setup-wizard' == $_GET['page'] ) {
37 return;
38 }
39 $this->initialize();
40 // if (!empty($this->adminify_ui) && !empty($this->options['admin_bar_search'] )) {
41 // add_action('wp_admin_bar_class', [$this, 'load_wp_admin_bar_class']);
42 // add_action('adminify/before/secondary_menu', [$this, 'before_secondary_menu']);
43 // }
44 if ( is_admin() ) {
45 // Switcher for Default UI
46 if ( empty( $this->adminify_ui ) ) {
47 if ( !empty( $this->options['admin_bar_dark_light_btn'] ) ) {
48 add_action( 'admin_bar_menu', [$this, 'jltwp_adminify_dark_mode_switcher_icon'] );
49 }
50 }
51 }
52 }
53
54 // Add Switcher Icon on Admin Bar Secondary
55 public function jltwp_adminify_dark_mode_switcher_icon( $wp_admin_bar ) {
56 $args = [
57 'parent' => 'top-secondary',
58 'id' => 'wp-adminify-admin-bar-switcher',
59 'title' => $this->jltwp_adminify_dark_mode_switcher_dom(),
60 'meta' => false,
61 ];
62 $wp_admin_bar->add_node( $args );
63 }
64
65 public function jltwp_adminify_dark_mode_switcher_dom() {
66 $color_mode = ( !empty( $this->options['light_dark_mode']['admin_ui_mode'] ) ? $this->options['light_dark_mode']['admin_ui_mode'] : 'light' );
67 $color_var = ( !empty( $this->adminify_ui ) ? 'var(--adminify-menu-text-color)' : '#fff' );
68 $adminbar_switcher_icon = '<div id="wp-adminify-color-mode-wrapper">
69 <div class="mode-icon adminify-color-mode-' . esc_attr( $color_mode ) . '-active">
70 <svg viewBox="0 0 24 24" width="24" height="24" class="darkIcon" ><path fill="' . $color_var . '" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg>
71 <svg viewBox="0 0 24 24" width="24" height="24" class="lightIcon"><path fill="' . $color_var . '" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg>
72 <svg width="16" height="16" viewBox="0 0 22 18" fill="none" xmlns="http://www.w3.org/2000/svg" class="systemIcon">
73 <path d="M20 13V4.2C20 3.0799 20 2.51984 19.782 2.09202C19.5903 1.71569 19.2843 1.40973 18.908 1.21799C18.4802 1 17.9201 1 16.8 1H5.2C4.07989 1 3.51984 1 3.09202 1.21799C2.71569 1.40973 2.40973 1.71569 2.21799 2.09202C2 2.51984 2 3.0799 2 4.2V13M3.66667 17H18.3333C18.9533 17 19.2633 17 19.5176 16.9319C20.2078 16.7469 20.7469 16.2078 20.9319 15.5176C21 15.2633 21 14.9533 21 14.3333C21 14.0233 21 13.8683 20.9659 13.7412C20.8735 13.3961 20.6039 13.1265 20.2588 13.0341C20.1317 13 19.9767 13 19.6667 13H2.33333C2.02334 13 1.86835 13 1.74118 13.0341C1.39609 13.1265 1.12654 13.3961 1.03407 13.7412C1 13.8683 1 14.0233 1 14.3333C1 14.9533 1 15.2633 1.06815 15.5176C1.25308 16.2078 1.79218 16.7469 2.48236 16.9319C2.73669 17 3.04669 17 3.66667 17Z" stroke="' . $color_var . '" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
74 </svg>
75 </div>
76 <div class="light-dark-dropdown">
77 <div class="light">
78 <svg viewBox="0 0 24 24" width="24" height="24" class="lightIcon"><path fill="' . $color_var . '" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg>
79 <span>Light</span>
80 </div>
81 <div class="dark">
82 <svg viewBox="0 0 24 24" width="24" height="24" class="darkIcon"><path fill="' . $color_var . '" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg>
83 <span>Dark</span>
84 </div>
85 <div class="system">
86 <svg width="16" height="16" viewBox="0 0 22 18" fill="none" xmlns="http://www.w3.org/2000/svg" class="systemIcon">
87 <path d="M20 13V4.2C20 3.0799 20 2.51984 19.782 2.09202C19.5903 1.71569 19.2843 1.40973 18.908 1.21799C18.4802 1 17.9201 1 16.8 1H5.2C4.07989 1 3.51984 1 3.09202 1.21799C2.71569 1.40973 2.40973 1.71569 2.21799 2.09202C2 2.51984 2 3.0799 2 4.2V13M3.66667 17H18.3333C18.9533 17 19.2633 17 19.5176 16.9319C20.2078 16.7469 20.7469 16.2078 20.9319 15.5176C21 15.2633 21 14.9533 21 14.3333C21 14.0233 21 13.8683 20.9659 13.7412C20.8735 13.3961 20.6039 13.1265 20.2588 13.0341C20.1317 13 19.9767 13 19.6667 13H2.33333C2.02334 13 1.86835 13 1.74118 13.0341C1.39609 13.1265 1.12654 13.3961 1.03407 13.7412C1 13.8683 1 14.0233 1 14.3333C1 14.9533 1 15.2633 1.06815 15.5176C1.25308 16.2078 1.79218 16.7469 2.48236 16.9319C2.73669 17 3.04669 17 3.66667 17Z" stroke="' . $color_var . '" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
88 </svg>
89 <span>System</span>
90 </div>
91 </div>
92 </div>';
93 return $adminbar_switcher_icon;
94 }
95
96 public function initialize() {
97 $admin_bar_position = ( !empty( $this->options['admin_bar_position'] ) ? $this->options['admin_bar_position'] : 'top' );
98 if ( is_admin() ) {
99 if ( $admin_bar_position == 'top' || $admin_bar_position == 'bottom' ) {
100 if ( !empty( $this->adminify_ui ) ) {
101 //TODO: not need to adminify ui. alternative use iframe topbar
102 // add_action('admin_init', [$this, 'jltwp_adminify_add_admin_bar']);
103 // } else {
104 add_action( 'admin_head', [$this, 'jltwp_adminify_legacy_admin_bar_positon'] );
105 }
106 }
107 add_action( 'admin_enqueue_scripts', [$this, 'jltwp_adminify_admin_scripts'], 100 );
108 // Remove Unnecessary Menus from Admin bar
109 // add_action('wp_before_admin_bar_render', [$this, 'jltma_adminify_remove_admin_bar_menus'], 0);
110 // add_filter('admin_body_class', [$this, 'admin_bar_body_class']);
111 // add_action('admin_head', [$this, 'jltwp_adminify_admin_bar_css'], 999);
112 add_action( 'wp_ajax_adminify_all_search', [$this, 'adminify_all_search'] );
113 add_action( 'wp_ajax_wp_adminify_color_mode', [$this, 'wp_adminify_color_mode'] );
114 // Screen Option and Help Tab
115 add_action(
116 'admin_head',
117 [$this, 'jltwp_adminify_remove_screen_options'],
118 10,
119 3
120 );
121 add_action( 'admin_head', [$this, 'jltwp_adminify_remove_help_tab'] );
122 } else {
123 // Admin bar Frontend settings
124 $frontend_admin = ( !empty( $this->options['admin_bar_hide_frontend'] ) ? $this->options['admin_bar_hide_frontend'] : 'show' );
125 // if (jltwp_adminify()->can_use_premium_code__premium_only()) {
126 // if ($frontend_admin == 'show') {
127 // $frontend_admin_roles = (!empty($this->options['admin_bar_hide_frontend_user_roles'])) ? $this->options['admin_bar_hide_frontend_user_roles'] : [];
128 // if (Utils::restricted_for($frontend_admin_roles)) {
129 // $frontend_admin = 'hide';
130 // }
131 // }
132 // }
133 $this->jltwp_adminify_front_bar();
134 if ( $admin_bar_position == 'bottom' ) {
135 add_action( 'init', [$this, 'admin_bar_front_style_init'] );
136 }
137 if ( $frontend_admin == 'hide' ) {
138 add_filter( 'show_admin_bar', '__return_false' );
139 }
140 }
141 }
142
143 public function before_secondary_menu() {
144 ?>
145 <div class="wp-adminify-top-header--search--form">
146 <form class="top-header--search--form" action="$">
147 <span class="adminify-search-expand"><i class="icon-magnifier icons"></i></span>
148 <input id="top-header-search-input" class="top-header-search-input" type="search" placeholder="Search here">
149 </form>
150
151 <div id="top-header-search-results" class=" top-header-search-results" style="display: none;">
152 <div class="top-header-results-wrapper">
153 </div>
154 </div>
155 </div>
156 <?php
157 }
158
159 public function load_wp_admin_bar_class() {
160 return 'WPAdminify\\Inc\\Classes\\Adminify_Admin_Bar';
161 }
162
163 public function jltwp_adminify_front_bar() {
164 add_action( 'admin_init', [$this, 'jltwp_adminify_add_admin_bar'] );
165 add_filter( 'body_class', [$this, 'admin_bar_body_class'] );
166 }
167
168 public function admin_bar_front_style_init() {
169 add_filter( 'wp_enqueue_scripts', [$this, 'admin_bar_front_style'] );
170 }
171
172 // Frontend Admin bar style
173 public function admin_bar_front_style() {
174 $admin_bar_css = '';
175 $admin_bar_css .= '.admin-bar-position-bottom #wpadminbar{
176 top:auto;
177 bottom: 0;
178 }
179 .admin-bar-position-bottom #wpadminbar .menupop .ab-sub-wrapper{
180 bottom: 32px;
181 }
182 @media all and (max-width:600px){
183 body.logged-in.admin-bar-position-bottom {
184 position: relative;
185 }
186 }';
187 wp_add_inline_style( 'admin-bar', $admin_bar_css );
188 }
189
190 // Remove Screen Options
191 public function jltwp_adminify_remove_screen_options() {
192 $enable_screen_tab = Utils::get_user_preference( 'screen_options_tab' );
193 if ( $enable_screen_tab ) {
194 add_filter( 'screen_options_show_screen', '__return_false' );
195 }
196 }
197
198 // Contextual Help Tab Remove
199 public function jltwp_adminify_remove_help_tab() {
200 $enable_screen_tab = Utils::get_user_preference( 'adminify_help_tab' );
201 if ( $enable_screen_tab ) {
202 $screen = get_current_screen();
203 $screen->remove_help_tabs();
204 }
205 }
206
207 // Get All registered WP Admin Menus
208 public static function get_wp_admin_menus( $thismenu, $thissubmenu ) {
209 $options = [];
210 if ( !empty( $thismenu ) && is_array( $thismenu ) ) {
211 foreach ( $thismenu as $item ) {
212 if ( !empty( $item[0] ) ) {
213 // the preg_replace removes "Comments" & "Plugins" menu spans.
214 $options[$item[2]] = preg_replace( '/\\<span.*?>.*?\\<\\/span><\\/span>/s', '', $item[0] );
215 }
216 }
217 }
218 if ( !empty( $thissubmenu ) && is_array( $thissubmenu ) ) {
219 foreach ( $thissubmenu as $items ) {
220 foreach ( $items as $item ) {
221 if ( !empty( $item[0] ) ) {
222 $options[$item[1]] = preg_replace( '/\\<span.*?>.*?\\<\\/span><\\/span>/s', '', $item[0] );
223 }
224 }
225 }
226 }
227 return $options;
228 }
229
230 public function jltwp_adminify_admin_scripts() {
231 global $pagenow;
232 if ( $pagenow == 'wp-login.php' || $pagenow == 'wp-register.php' || $pagenow == 'customize.php' ) {
233 return;
234 }
235 // Commented on: 9-6-24
236 // if (!empty($this->adminify_ui)) {
237 // wp_enqueue_style('wp-adminify-admin-bar');
238 // $this->admin_topbar_loader_css();
239 // }
240 wp_localize_script( 'wp-adminify-admin', 'WPAdminify', $this->adminify_create_admin_bar_js_object() );
241 }
242
243 public function adminify_create_admin_bar_js_object() {
244 return [
245 'ajax_url' => admin_url( 'admin-ajax.php' ),
246 'security_nonce' => wp_create_nonce( 'adminify-admin-bar-security-nonce' ),
247 'notice_nonce' => wp_create_nonce( 'adminify-notice-nonce' ),
248 ];
249 }
250
251 /**
252 * Preloader
253 *
254 * @return void
255 */
256 public function admin_topbar_loader_css() {
257 $output_css = '';
258 $topbar_wireframe_img = WP_ADMINIFY_ASSETS_IMAGE . 'topbar-wireframe.svg';
259 $output_css .= '.js .wp-adminify-topbar-loader{background: url(' . esc_url( $topbar_wireframe_img ) . '); }';
260 echo '<style>' . wp_strip_all_tags( $output_css ) . '</style>';
261 ?>
262
263 <script>
264 window.addEventListener('load', function() {
265 const isFullscreenMode = wp.data.select('core/edit-post').isFeatureActive('fullscreenMode');
266
267 if (isFullscreenMode) {
268 // wp.data.dispatch('core/edit-post').toggleFeature('fullscreenMode');
269 console.log('yes its it');
270 jQuery('.adminify-top_bar').css({
271 'display': 'none !important'
272 });
273 }
274 });
275 </script>
276
277 <?php
278 }
279
280 /**
281 * Save Color Mode by Ajax
282 *
283 * @return void
284 */
285 public function wp_adminify_color_mode() {
286 if ( defined( 'DOING_AJAX' ) && DOING_AJAX && check_ajax_referer( 'adminify-admin-bar-security-nonce', 'security' ) > 0 ) {
287 $admin_bar_mode = AdminSettings::get_instance()->get();
288 if ( !empty( $_POST['key'] ) ) {
289 $key = sanitize_key( $_POST['key'] );
290 $value = Utils::clean_ajax_input( wp_unslash( $_POST['value'] ) );
291 if ( $key == '' ) {
292 $message = __( 'No Color Mode supplied to save', 'adminify' );
293 echo Utils::ajax_error_message( $message );
294 die;
295 }
296 }
297 // Light/Dark Mode
298 if ( $key === 'color_mode' ) {
299 $admin_bar_mode['light_dark_mode']['admin_ui_mode'] = $value;
300 $this->options['schedule_dark_mode']['enable_schedule_dark_mode'] = false;
301 if ( $value == 'system' ) {
302 $admin_bar_mode['schedule_dark_mode']['enable_schedule_dark_mode'] = true;
303 $admin_bar_mode['schedule_dark_mode']['schedule_dark_mode_type'] = 'system';
304 }
305 update_option( '_wpadminify', $admin_bar_mode );
306 die;
307 }
308 // Screen Options, Help Tabs and WP Hide Links
309 if ( $key === 'screen_options_tab' || $key === 'hide_wp_links' || $key === 'adminify_help_tab' ) {
310 $userid = get_current_user_id();
311 $current = get_user_meta( $userid, '_wpadminify_preferences', true );
312 if ( is_array( $current ) ) {
313 $current[$key] = $value;
314 } else {
315 $current = [];
316 $current[$key] = $value;
317 }
318 $state = update_user_meta( $userid, '_wpadminify_preferences', $current );
319 if ( $state ) {
320 $returndata = [];
321 $returndata['success'] = true;
322 $returndata['message'] = __( 'Preferences saved', 'adminify' );
323 echo json_encode( $returndata );
324 } else {
325 $message = __( 'Unable to save user preferences', 'adminify' );
326 echo Utils::ajax_error_message( $message );
327 die;
328 }
329 }
330 }
331 }
332
333 /**
334 * Search Everything
335 *
336 * @return void
337 */
338 public function adminify_all_search() {
339 if ( defined( 'DOING_AJAX' ) && DOING_AJAX && check_ajax_referer( 'adminify-admin-bar-security-nonce', 'security' ) > 0 ) {
340 $search_text = '';
341 if ( !empty( $_POST['search'] ) ) {
342 $search_text = sanitize_text_field( wp_unslash( $_POST['search'] ) );
343 }
344 // Error Handling For Minimum 3 Char
345 if ( strlen( $search_text ) < 3 ) {
346 wp_send_json_success( [
347 'message' => 'Please Enter Minimum 3 Characters',
348 ] );
349 }
350 // Search Arguments
351 $args = [
352 'numberposts' => -1,
353 's' => $search_text,
354 'post_status' => [
355 'publish',
356 'pending',
357 'draft',
358 'future',
359 'private',
360 'inherit'
361 ],
362 ];
363 // All Post Types
364 $post_types = $this->get_post_types();
365 foreach ( $post_types as $type ) {
366 $args['post_type'][] = $type->name;
367 }
368 // All Categories/Taxonomies
369 $all_taxonomies = get_taxonomies();
370 // Get Comments
371 $all_comments = get_comments();
372 // Get All Users
373 $all_users = get_users();
374 // All Users
375 // $blogusers = get_users();
376 // foreach ($blogusers as $type) {
377 // $name = $type->user_login;
378 // $id = $type->ID;
379 // $args['author__in'][] = $type->ID;
380 // }
381 // // All Menus
382 // $all_admin_menus = self::get_wp_admin_menus();
383 // All Plugins
384 if ( !function_exists( 'get_plugins' ) ) {
385 require_once ABSPATH . 'wp-admin/includes/plugin.php';
386 }
387 $all_plugins = get_plugins();
388 $foundposts = get_posts( $args );
389 // $count_items = '';
390 // if (count($foundposts) > 0) {
391 // $count_items .= count($foundposts);
392 // } elseif (count($all_plugins)) {
393 // $count_items .= count($all_plugins);
394 // }
395 $output_data = [
396 'foundposts' => $this->set_edit_url_foundposts( $foundposts ),
397 'all_taxonomies' => $this->filter_all_taxonomies( $all_taxonomies, $search_text ),
398 'all_comments' => $this->filter_all_comments( $all_comments, $search_text ),
399 'all_users' => $this->filter_all_users( $all_users, $search_text ),
400 'all_plugins' => $this->filter_all_plugins( $all_plugins, $search_text ),
401 ];
402 wp_send_json_success( [
403 'data' => json_encode( $output_data ),
404 ] );
405 return;
406 ob_start();
407 ?>
408
409 <p><span class="count"></span><?php
410 echo count( $foundposts ) . wp_kses_post( ' item<span>s</span> found' );
411 ?></p>
412
413 <table class="top-header-result-table" style="height:500px;">
414 <thead>
415 <tr class="has-text-left">
416 <th><?php
417 esc_html_e( 'Title', 'adminify' );
418 ?></th>
419 <th><?php
420 esc_html_e( 'Type', 'adminify' );
421 ?></th>
422 <th><?php
423 esc_html_e( 'User', 'adminify' );
424 ?></th>
425 <th><?php
426 esc_html_e( 'Date', 'adminify' );
427 ?></th>
428 </tr>
429 </thead>
430 <tbody>
431
432 <?php
433 foreach ( $foundposts as $item ) {
434 $author_id = $item->post_author;
435 $editurl = get_edit_post_link( $item );
436 $public = get_permalink( $item );
437 ?>
438 <tr>
439 <td><span class="table-title"><a href="<?php
440 echo esc_url( $editurl );
441 ?>"><?php
442 echo wp_kses_post( get_the_title( $item ) );
443 ?></a></span></td>
444 <td><span class="type"><?php
445 echo wp_kses_post( get_post_type( $item ) );
446 ?></span></td>
447 <td><span class="user"><?php
448 echo wp_kses_post( the_author_meta( 'user_login', $author_id ) );
449 ?></span></td>
450 <td><span class="date"><?php
451 echo wp_kses_post( get_the_date( get_option( 'date_format' ), $item ) );
452 ?></span></td>
453 </tr>
454 <?php
455 }
456 ?>
457
458 <?php
459 foreach ( $all_taxonomies as $tax_name ) {
460 $terms = get_terms( [
461 'taxonomy' => $tax_name,
462 'hide_empty' => 1,
463 ] );
464 foreach ( $terms as $cat ) {
465 if ( strpos( strtolower( $cat->name ), strtolower( $term ) ) === false ) {
466 continue;
467 }
468 // $user = get_userdata($cat->term_id);
469 ?>
470 <tr>
471 <td>
472 <span class="table-title">
473 <a href="<?php
474 echo esc_url( get_term_link( $cat->slug, $cat->taxonomy ) );
475 ?>">
476 <?php
477 echo esc_html( $cat->name );
478 ?>
479 </a>
480 </span>
481 </td>
482 <td>
483 <span class="type"><?php
484 echo esc_html( $cat->taxonomy );
485 ?></span>
486 </td>
487 <td>
488 <span class="user">
489 <?php
490 esc_html_e( 'N/A', 'adminify' );
491 ?>
492 </span>
493 </td>
494 <td>
495 <span class="date">
496 <?php
497 esc_html_e( 'N/A', 'adminify' );
498 ?>
499 </span>
500 </td>
501 <td>
502 </td>
503 </tr>
504 <?php
505 }
506 }
507 ?>
508
509
510 <!-- Get Comments -->
511 <?php
512 foreach ( $all_comments as $comment ) {
513 if ( strpos( strtolower( $comment->comment_content ), strtolower( $term ) ) === false ) {
514 continue;
515 }
516 ?>
517 <tr>
518 <td>
519 <span class="table-title">
520 <a href="<?php
521 echo esc_url_raw( admin_url( 'comment.php?action=editcomment&c=' . esc_attr( $comment->comment_ID ) ) );
522 ?>">
523 <?php
524 echo wp_kses_post( $comment->comment_content );
525 ?>
526 </a>
527 </span>
528 </td>
529 <td>
530 <span class="type">
531 <?php
532 echo wp_kses_post( ucwords( $comment->comment_type ) );
533 ?>
534 </span>
535 </td>
536 <td>
537 <span class="user">
538 <?php
539 echo wp_kses_post( the_author_meta( 'display_name', $comment->user_id ) );
540 ?>
541 </span>
542 </td>
543 <td>
544 <span class="date">
545 <?php
546 echo esc_html( get_the_date( get_option( 'date_format' ), $comment->comment_date ) );
547 ?>
548 </span>
549 </td>
550 </tr>
551 <?php
552 }
553 ?>
554
555
556
557 <!-- Get Users -->
558 <?php
559 foreach ( $all_users as $user ) {
560 if ( strpos( strtolower( $user->user_login ), strtolower( $term ) ) === false ) {
561 continue;
562 }
563 ?>
564 <tr>
565 <td>
566 <span class="table-title">
567 <a href="<?php
568 echo esc_url( admin_url( 'user-edit.php?user_id=' . $user->ID ) );
569 ?>">
570 <?php
571 echo esc_html( $user->display_name );
572 ?>
573 </a>
574 </span>
575 </td>
576 <td>
577 <span class="type">
578 <?php
579 echo wp_kses_post( ucwords( $comment->comment_type ) );
580 ?>
581 </span>
582 </td>
583 <td>
584 <span class="user">
585 <?php
586 echo wp_kses_post( the_author_meta( 'display_name', $comment->user_id ) );
587 ?>
588 </span>
589 </td>
590 <td>
591 <span class="date">
592 <?php
593 echo wp_kses_post( get_the_date( get_option( 'date_format' ), $user->user_registered ) );
594 ?>
595 </span>
596 </td>
597 </tr>
598 <?php
599 }
600 ?>
601
602
603
604 <!-- Get Plugins -->
605 <?php
606 foreach ( $all_plugins as $plugin ) {
607 if ( strpos( strtolower( $plugin['Name'] ), strtolower( $term ) ) === false ) {
608 continue;
609 }
610 ?>
611 <tr>
612 <td>
613 <span class="table-title">
614 <a href="<?php
615 echo esc_url( admin_url( 'plugins.php' ) );
616 ?>">
617 <?php
618 echo esc_html( $plugin['Name'] );
619 ?>
620 </a>
621 </span>
622 </td>
623 <td>
624 <span class="type">
625 <?php
626 esc_html_e( 'Plugin', 'adminify' );
627 ?>
628 </span>
629 </td>
630 <td>
631 <span class="user">
632 <?php
633 echo esc_html( $plugin['AuthorName'] );
634 ?>
635 </span>
636 </td>
637 <td>
638 <span class="date">
639 <?php
640 esc_html_e( 'N/A', 'adminify' );
641 ?>
642 </span>
643 </td>
644 </tr>
645 <?php
646 }
647 ?>
648
649
650 </tbody>
651 </table>
652
653
654 <?php
655 // $output_data = ob_get_clean();
656 // $output_data = [
657 // 'foundposts' => $foundposts,
658 // 'all_taxonomies' => $all_taxonomies,
659 // 'all_comments' => $all_comments,
660 // 'all_users' => $all_users,
661 // 'all_plugins' => $all_plugins,
662 // ];
663 // echo json_encode($output_data);
664 echo json_encode( $foundposts );
665 wp_send_json_success( [
666 'data' => $foundposts,
667 ] );
668 }
669 die;
670 }
671
672 /**
673 * Set URL to All Post
674 */
675 public function set_edit_url_foundposts( $foundposts ) {
676 $all_posts = [];
677 foreach ( $foundposts as $key => $post ) {
678 $edit_url = get_edit_post_link( $post );
679 $all_posts[$key]['title'] = get_the_title( $post->ID );
680 $all_posts[$key]['link'] = $edit_url;
681 }
682 return $all_posts;
683 }
684
685 /**
686 * Search Taxonomies
687 */
688 public function filter_all_taxonomies( $all_taxonomies, $search_text ) {
689 $find_taxonomies = [];
690 foreach ( $all_taxonomies as $tax_name ) {
691 $terms = get_terms( [
692 'taxonomy' => $tax_name,
693 'hide_empty' => 1,
694 ] );
695 foreach ( $terms as $key => $cat ) {
696 if ( strpos( strtolower( $cat->name ), strtolower( $search_text ) ) === false ) {
697 continue;
698 }
699 $find_taxonomies[$key]['name'] = $cat->name;
700 $find_taxonomies[$key]['link'] = get_edit_term_link( $cat );
701 }
702 }
703 return $find_taxonomies;
704 }
705
706 /**
707 * Search Comments
708 */
709 public function filter_all_comments( $all_comments, $search_text ) {
710 $find_comments = [];
711 foreach ( $all_comments as $key => $comment ) {
712 if ( strpos( strtolower( $comment->comment_content ), strtolower( $search_text ) ) === false ) {
713 continue;
714 }
715 $find_comments[$key]['content'] = $comment->comment_content;
716 $find_comments[$key]['link'] = admin_url( 'comment.php?action=editcomment&c=' . esc_attr( $comment->comment_ID ) );
717 }
718 return $find_comments;
719 }
720
721 /**
722 * Search Users
723 */
724 public function filter_all_users( $all_users, $search_text ) {
725 $find_users = [];
726 foreach ( $all_users as $key => $user ) {
727 if ( str_contains( strtolower( $user->data->user_login ), strtolower( $search_text ) ) || str_contains( strtolower( $user->data->display_name ), strtolower( $search_text ) ) ) {
728 $find_users[$key]['name'] = $user->data->user_login;
729 $find_users[$key]['display_name'] = $user->data->display_name;
730 $find_users[$key]['link'] = admin_url( 'user-edit.php?user_id=' . $user->ID );
731 }
732 }
733 return $find_users;
734 }
735
736 /**
737 * Search Plugins
738 */
739 public function filter_all_plugins( $all_plugins, $search_text ) {
740 $find_plugins = [];
741 foreach ( $all_plugins as $key => $plugin ) {
742 if ( strpos( strtolower( $plugin['Name'] ), strtolower( $search_text ) ) === false ) {
743 continue;
744 }
745 $find_plugins[] = [
746 'name' => $plugin['Name'],
747 'link' => admin_url( 'plugins.php' ),
748 ];
749 }
750 return $find_plugins;
751 }
752
753 public function jltwp_adminify_admin_bar_css() {
754 $current_screen = get_current_screen();
755 $admin_bar_mode = ( !empty( $admin_bar_mode['light_dark_mode']['admin_ui_mode'] ) ? $admin_bar_mode['light_dark_mode']['admin_ui_mode'] : '' );
756 $output_css = '';
757 $output_css .= '<style type="text/css">';
758 if ( !empty( $current_screen->is_block_editor ) ) {
759 $output_css .= '.wp-adminify.adminify-ui.block-editor-page:not(.wp-adminify.is-fullscreen-mode) .interface-interface-skeleton { top: 90px !important; left: 244px !important; border-top: 0 !important; border-left: 0 !important; }';
760 $output_css .= '.wp-adminify.block-editor-page.is-fullscreen-mode.block-editor-page .interface-interface-skeleton { top: 0 !important; left: 0 !important; border-top: 0 !important; border-left: 0 !important; }';
761 }
762 $admin_bar_container = ( !empty( $this->options['admin_bar_container'] ) ? $this->options['admin_bar_container'] : 'full_container' );
763 if ( $admin_bar_mode === 'light' ) {
764 $light_bg_type = ( !empty( $this->options['admin_bar_light_bg'] ) ? $this->options['admin_bar_light_bg'] : 'color' );
765 $light_bg_color = ( !empty( $this->options['admin_bar_light_bg_color'] ) ? $this->options['admin_bar_light_bg_color'] : '' );
766 // Full Container Colors
767 if ( $admin_bar_container == 'full_container' ) {
768 if ( $light_bg_type === 'color' ) {
769 $output_css .= '.wp-adminify.adminify-light-mode .adminify-top_bar nav.navbar, .wp-adminify .wp-adminify-horizontal-menu { background-color:' . esc_attr( $light_bg_color ) . ' ; }';
770 }
771 } elseif ( $admin_bar_container == 'admin_bar_only' ) {
772 // Admin Bar Colors
773 if ( $light_bg_type === 'color' ) {
774 if ( !empty( $this->options['admin_bar_light_bg_color'] ) ) {
775 $output_css .= '.wp-adminify.adminify-light-mode .adminify-top_bar nav.navbar { background-color:' . esc_attr( $light_bg_color ) . ' }';
776 }
777 }
778 }
779 if ( !empty( $admin_bar_colors['icon_color'] ) ) {
780 $output_css .= '.adminify-top_bar nav.navbar .navbar-menu .topbar-icon { fill: ' . esc_attr( $admin_bar_colors['icon_color'] ) . ' }';
781 }
782 } elseif ( $admin_bar_mode === 'dark' ) {
783 $dark_bg_type = ( isset( $this->options['admin_bar_dark_bg'] ) ? $this->options['admin_bar_dark_bg'] : 'color' );
784 if ( $admin_bar_container == 'full_container' ) {
785 if ( $dark_bg_type === 'color' ) {
786 $dark_bg_color = $this->options['admin_bar_dark_bg_color'];
787 $output_css .= '.wp-adminify.adminify-dark-mode .adminify-top_bar nav.navbar, .wp-adminify .wp-adminify-horizontal-menu{ background-color:' . esc_attr( $dark_bg_color ) . ' }';
788 } elseif ( $dark_bg_type === 'gradient' ) {
789 $dark_gradient_bg_color = $this->options['admin_bar_dark_bg_gradient']['background-color'];
790 $dark_gradient_color = $this->options['admin_bar_dark_bg_gradient']['background-gradient-color'];
791 $dark_gradient_color_dir = $this->options['admin_bar_dark_bg_gradient']['background-gradient-direction'];
792 $output_css .= '.wp-adminify.adminify-dark-mode .adminify-top_bar nav.navbar, .wp-adminify .wp-adminify-horizontal-menu{ background-image : linear-gradient(' . esc_attr( $dark_gradient_color_dir ) . ', ' . esc_attr( $dark_gradient_bg_color ) . ' , ' . esc_attr( $dark_gradient_color ) . '); }';
793 }
794 } elseif ( $admin_bar_container == 'admin_bar_only' ) {
795 if ( $dark_bg_type === 'color' ) {
796 $dark_bg_color = $this->options['admin_bar_dark_bg_color'];
797 $output_css .= '.wp-adminify.adminify-dark-mode .adminify-top_bar nav.navbar{ background-color:' . esc_attr( $dark_bg_color ) . ' }';
798 }
799 }
800 }
801 // "New" Button Colors
802 $new_btn_colors = ( !empty( $this->options['admin_bar_link_color'] ) ? $this->options['admin_bar_link_color'] : '' );
803 if ( !empty( $new_btn_colors['link_color'] ) ) {
804 $output_css .= '.wp-adminify #wpadminbar #wp-admin-bar-root-default #wp-admin-bar-new-content > .ab-item .ab-label, .wp-adminify #wpadminbar #wp-admin-bar-root-default #wp-admin-bar-new-content .ab-item .ab-icon:before { color:' . esc_attr( $new_btn_colors['link_color'] ) . ' !important; }';
805 }
806 if ( !empty( $new_btn_colors['hover_color'] ) ) {
807 $output_css .= '.wp-adminify #wpadminbar #wp-admin-bar-root-default #wp-admin-bar-new-content > .ab-item:hover .ab-label, .wp-adminify #wpadminbar #wp-admin-bar-root-default #wp-admin-bar-new-content .ab-item:hover .ab-icon:before{ color:' . esc_attr( $new_btn_colors['hover_color'] ) . ' !important; }';
808 }
809 if ( !empty( $new_btn_colors['bg_color'] ) ) {
810 $output_css .= '.wp-adminify #wpadminbar #wp-admin-bar-root-default #wp-admin-bar-new-content > .ab-item, .wp-adminify #wpadminbar #wp-admin-bar-root-default #wp-admin-bar-new-content:hover > .ab-item { background:' . esc_attr( $new_btn_colors['bg_color'] ) . ' !important;}';
811 }
812 // "New" Button Hover Colors
813 $new_btn_dropwon = ( !empty( $this->options['admin_bar_link_dropdown_color'] ) ? $this->options['admin_bar_link_dropdown_color'] : '' );
814 if ( !empty( $new_btn_dropwon['wrapper_bg'] ) ) {
815 $output_css .= '.wp-adminify #wpadminbar .ab-top-menu .ab-sub-wrapper, .wp-adminify #wpadminbar .ab-top-menu .ab-sub-wrapper .ab-submenu, .wp-adminify #wpadminbar .ab-top-menu .ab-sub-wrapper .ab-submenu .ab-item { background-color:' . esc_attr( $new_btn_dropwon['wrapper_bg'] ) . ' !important;}';
816 }
817 if ( !empty( $new_btn_dropwon['bg_color'] ) ) {
818 $output_css .= '.wp-adminify #wpadminbar .ab-top-menu .ab-sub-wrapper .ab-submenu .ab-item:hover { background-color:' . esc_attr( $new_btn_dropwon['bg_color'] ) . ' !important;}';
819 }
820 if ( !empty( $new_btn_dropwon['link_color'] ) ) {
821 $output_css .= '.wp-adminify #wpadminbar .ab-top-menu .ab-sub-wrapper .ab-submenu .ab-item { color:' . esc_attr( $new_btn_dropwon['link_color'] ) . ' !important }';
822 }
823 if ( !empty( $new_btn_dropwon['hover_color'] ) ) {
824 $output_css .= '.wp-adminify #wpadminbar .ab-top-menu .ab-sub-wrapper .ab-submenu .ab-item:hover { color:' . esc_attr( $new_btn_dropwon['hover_color'] ) . ' !important }';
825 }
826 // Text Color
827 if ( !empty( $this->options['admin_bar_text_color'] ) ) {
828 $output_css .= '.adminify-top_bar nav.navbar .navbar-brand .navbar-item .wp-adminify-site-name, .adminify-top_bar nav.navbar .navbar-menu .wp-adminify-user-site-list button { color:' . esc_attr( $this->options['admin_bar_text_color'] ) . ' }';
829 $output_css .= '.wp-adminify #wpadminbar #wp-admin-bar-root-default #wp-admin-bar-new-post > .ab-item { color:' . esc_attr( $this->options['admin_bar_text_color'] ) . ' ; }';
830 $output_css .= '.wp-adminify #wpadminbar #wp-admin-bar-root-default #wp-admin-bar-new-post > .ab-item .ab-icon:before { color:' . esc_attr( $this->options['admin_bar_text_color'] ) . ' ; }';
831 $output_css .= '.wp-adminify #wpadminbar #wp-admin-bar-root-default #wp-admin-bar-new-post > .ab-item .ab-label { color:' . esc_attr( $this->options['admin_bar_text_color'] ) . ' ; }';
832 }
833 // Icon Color
834 if ( !empty( $this->options['admin_bar_icon_color'] ) ) {
835 $output_css .= '.adminify-top_bar nav.navbar .navbar-menu .topbar-icon svg path { fill:' . esc_attr( $this->options['admin_bar_icon_color'] ) . ' }';
836 $output_css .= '.adminify-top_bar nav.navbar .navbar-end i, .adminify-top_bar nav.navbar .navbar-burger i { color:' . esc_attr( $this->options['admin_bar_icon_color'] ) . ' }';
837 }
838 $output_css .= '.wp-adminify .editor-document-tools__left button.editor-document-tools__inserter-toggle {
839 padding: 0 !important;
840 border: 2px solid var(--adminify-btn-bg) !important;
841 }';
842 $output_css .= ' </style>';
843 // echo Utils::wp_kses_custom($output_css);
844 echo $output_css;
845 }
846
847 // Admin Bar Body Class
848 public function admin_bar_body_class( $classes ) {
849 if ( is_admin() ) {
850 $classes .= ' wp-adminify-admin-bar';
851 $admin_bar_position = ( !empty( $this->options['admin_bar_position'] ) ? $this->options['admin_bar_position'] : 'top' );
852 if ( $admin_bar_position === 'top' ) {
853 $classes .= ' position-top';
854 } elseif ( $admin_bar_position === 'bottom' ) {
855 $classes .= ' position-bottom';
856 }
857 if ( !empty( $this->options['enable_admin_bar'] ) ) {
858 $classes .= ' topbar-disabled';
859 }
860 } else {
861 global $pagenow;
862 if ( !is_user_logged_in() && $pagenow != 'wp-login.php' ) {
863 return $classes;
864 }
865 $classes[] = 'wp-adminify-admin-bar';
866 $admin_bar_position = ( !empty( $this->options['admin_bar_position'] ) ? $this->options['admin_bar_position'] : 'top' );
867 if ( $admin_bar_position === 'top' ) {
868 $classes[] = 'admin-bar-position-top';
869 } elseif ( $admin_bar_position === 'bottom' ) {
870 $classes[] = 'admin-bar-position-bottom';
871 }
872 if ( !empty( $this->options['enable_admin_bar'] ) ) {
873 $classes[] = 'topbar-disabled';
874 }
875 }
876 return $classes;
877 }
878
879 public function get_post_types() {
880 if ( is_array( $this->post_types ) ) {
881 return $this->post_types;
882 } else {
883 $args = [
884 'public' => true,
885 ];
886 $output = 'objects';
887 $post_types = get_post_types( $args, $output );
888 $this->post_types = $post_types;
889 return $post_types;
890 }
891 }
892
893 public function jltwp_adminify_legacy_admin_bar_positon() {
894 if ( !empty( $this->options['admin_bar_position'] ) && $this->options['admin_bar_position'] == 'bottom' ) {
895 $jltwp_adminify_thirdparty_css = '';
896 $jltwp_adminify_thirdparty_css .= 'body.wp-adminify.position-bottom {
897 margin-top: -28px;
898 padding-bottom: 28px;
899 }
900
901 body.wp-adminify.position-bottom.admin-bar #wphead {
902 padding-top: 0;
903 }
904
905 body.wp-adminify.position-bottom.admin-bar #footer {
906 padding-bottom: 28px;
907 }
908
909 body.wp-adminify.position-bottom #wpadminbar {
910 top: auto !important;
911 bottom: 0;
912 }
913
914 body.wp-adminify.position-bottom #wpadminbar .quicklinks .ab-top-menu .menupop .ab-sub-wrapper {
915 bottom: 32px;
916 }
917
918 body.wp-adminify.position-bottom #wpadminbar .quicklinks .ab-top-menu .menupop .ab-sub-wrapper .ab-submenu .menupop .ab-sub-wrapper {
919 bottom: -9px;
920 }';
921 echo '<style>' . wp_strip_all_tags( $jltwp_adminify_thirdparty_css ) . '</style>';
922 }
923 }
924
925 public function jltwp_adminify_add_admin_bar() {
926 // For Testing Admin Bar on Setup Wizard
927 // add_action('admin_head', [$this, 'jltwp_adminify_render_admin_bar']);
928 add_action( 'in_admin_header', [$this, 'jltwp_adminify_render_admin_bar'], -999999999 );
929 // on frontend area
930 add_action( 'wp_head', [$this, 'jltwp_adminify_render_admin_bar'] );
931 }
932
933 public function jltwp_adminify_render_admin_bar() {
934 global $pagenow;
935 if ( !is_user_logged_in() && $pagenow != 'wp-login.php' ) {
936 return;
937 }
938 // Check Gutenberg Editor Page
939 // if (Utils::is_block_editor_page()) {
940 // return;
941 // }
942 // if (!is_admin_bar_showing()) {
943 // return false;
944 // }
945 // Remove Adminbar from Gutenberg Block Editor Page
946 // if (function_exists('is_gutenberg_page') && is_gutenberg_page()) {
947 // // The Gutenberg plugin is on.
948 // return;
949 // }
950 // if (function_exists('get_current_screen')) {
951 // $current_screen = get_current_screen();
952 // if (!empty($current_screen->is_block_editor)) {
953 // return;
954 // }
955 // }
956 global $wp_admin_bar;
957 if ( empty( $wp_admin_bar ) ) {
958 return false;
959 }
960 $admin_bar_mode = ( empty( $admin_bar_mode['light_dark_mode']['admin_ui_mode'] ) ? 'light' : $admin_bar_mode['light_dark_mode']['admin_ui_mode'] );
961 // Light/Dark Mode
962 $enable_dark_mode = $admin_bar_mode != 'light';
963 // Screen Option && Hide WP Links
964 $enable_screen_tab = Utils::get_user_preference( 'screen_options_tab' );
965 $enable_help_tab = Utils::get_user_preference( 'adminify_help_tab' );
966 // $enable_hide_wp_links = Utils::get_user_preference( 'hide_wp_links' );
967 // Admin Bar Position
968 if ( !empty( $this->options['admin_bar_position'] ) && $this->options['admin_bar_position'] === 'top' ) {
969 $admin_bar_position = 'top_bar';
970 } elseif ( !empty( $this->options['admin_bar_position'] ) && $this->options['admin_bar_position'] === 'bottom' ) {
971 $admin_bar_position = 'bottom_bar is-fixed-bottom';
972 } else {
973 $admin_bar_position = 'top_bar';
974 }
975 $current_user = wp_get_current_user();
976 ob_start();
977 // Temporarily removing Topbar
978 // <div class="wp-adminify-topbar-loader"></div>
979 // 17-7-23, removed opacity for Conflicting Opacity Issue
980 // <div class="wp-adminify adminify-top_bar" style="opacity: 0;">
981 ?>
982
983
984
985 <div class="wp-adminify adminify-top_bar">
986 <nav class="navbar adminify-top-navbar <?php
987 echo esc_attr( $admin_bar_position );
988 ?>">
989
990 <?php
991 $this->jltwp_adminify_logo();
992 ?>
993 <div class="adminify-admin-wrapper">
994 <div class="adminify-legacy-admin">
995 <div class="adminify-hamburger navbar-burger" data-target="wp-adminify-top-adminbar">
996 <svg width="11" height="8" viewBox="0 0 11 8" fill="none" xmlns="http://www.w3.org/2000/svg">
997 <path d="M7 0H0V1H7V0Z" fill="#48455F" />
998 <path d="M7 7H0V8H7V7Z" fill="#48455F" />
999 <path d="M4.67 3.5H0V4.5H4.67V3.5Z" fill="#48455F" />
1000 <path d="M9.65 7.35L6.29 4L9.65 0.65L10.35 1.35L7.71 4L10.35 6.65L9.65 7.35Z" fill="#48455F" />
1001 </svg>
1002 </div>
1003 <?php
1004 echo wp_admin_bar_render();
1005 ?>
1006 </div>
1007
1008 <div id="wp-adminify-top-adminbar" class="navbar-menu">
1009
1010 <div class="navbar-end">
1011 <div class="field is-grouped">
1012
1013 <?php
1014 echo $this->jltwp_adminify_dark_mode_switcher_dom();
1015 ?>
1016
1017 <?php
1018 if ( !empty( $this->options['admin_bar_notif'] ) ) {
1019 ?>
1020 <div class="wp-adminify--top--comment">
1021 <button class="comment-trigger is-clickable">
1022 <div class="topbar-icon">
1023 <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
1024 <path d="M0.25 13.75V1.75C0.25 0.921573 0.921572 0.25 1.75 0.25H12.25C13.0784 0.25 13.75 0.921573 13.75 1.75V9.25C13.75 10.0784 13.0784 10.75 12.25 10.75H4.75C4.42535 10.7494 4.10936 10.8547 3.85 11.05L0.25 13.75ZM1.75 1.75V10.75L3.3505 9.55C3.60973 9.35448 3.9258 9.24913 4.2505 9.25H12.25V1.75H1.75Z" fill="var(--adminify-menu-text-color)" />
1025 </svg>
1026 </div>
1027 <span class="comment-counter">
1028 <?php
1029 $comments_count = wp_count_comments();
1030 echo esc_html( $comments_count->moderated );
1031 ?>
1032 </span>
1033 </button>
1034 </div>
1035
1036 <?php
1037 }
1038 ?>
1039
1040 <div class="wp-adminify--preview">
1041 <a class="preview-trigger is-clickable" href="<?php
1042 echo esc_url( get_home_url() );
1043 ?>" target="_blank">
1044 <i class="dashicons dashicons-visibility"></i>
1045 </a>
1046 </div>
1047
1048 <div class="wp-adminify--user--account">
1049 <button class="user-avatar is-clickable">
1050 <div class="image is-45x45">
1051 <?php
1052 echo get_avatar(
1053 $current_user->user_email,
1054 45,
1055 '',
1056 '',
1057 [
1058 'class' => 'is-rounded',
1059 ]
1060 );
1061 ?>
1062 </div>
1063 <span class="user-status tag p-0 is-rounded"></span>
1064 </button>
1065
1066 <?php
1067 if ( !empty( $this->adminify_ui ) ) {
1068 ?>
1069 <div class="wp-adminify--user--wrapper">
1070 <div class="wp-adminify-user-info">
1071 <h3 class="wp-adminify-user-name">
1072 <?php
1073 echo esc_html( $current_user->display_name );
1074 ?>
1075 </h3>
1076 <span><?php
1077 echo wp_kses_post( is_email( $current_user->user_email ) );
1078 ?></span>
1079
1080 <ul>
1081 <hr>
1082 <li>
1083 <a href="<?php
1084 echo esc_url( admin_url( 'profile.php' ) );
1085 ?>">
1086 <svg class="wp-adminify-profile-icon" width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
1087 <path d="M14.6654 16.5C14.6654 15.337 14.6654 14.7555 14.5218 14.2824C14.1987 13.217 13.365 12.3834 12.2996 12.0602C11.8265 11.9167 11.245 11.9167 10.082 11.9167H5.91537C4.7524 11.9167 4.17091 11.9167 3.69775 12.0602C2.63241 12.3834 1.79873 13.217 1.47556 14.2824C1.33203 14.7555 1.33203 15.337 1.33203 16.5M11.7487 5.25C11.7487 7.32107 10.0698 9 7.9987 9C5.92763 9 4.2487 7.32107 4.2487 5.25C4.2487 3.17893 5.92763 1.5 7.9987 1.5C10.0698 1.5 11.7487 3.17893 11.7487 5.25Z" stroke="var(--adminify-primary)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
1088 </svg>
1089 <span><?php
1090 esc_html_e( 'View Profile', 'adminify' );
1091 ?></span>
1092 </a>
1093 </li>
1094 <hr>
1095 <li>
1096 <a href="<?php
1097 echo esc_url( wp_logout_url( home_url() ) );
1098 ?>" class="wp-adminify-logout">
1099 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
1100 <path fill-rule="evenodd" clip-rule="evenodd" d="M5.7587 4.31292e-07L7 9.08129e-07C7.55229 9.08129e-07 8 0.447716 8 1C8 1.55229 7.55229 2 7 2H5.8C4.94342 2 4.36113 2.00078 3.91104 2.03755C3.47262 2.07337 3.24842 2.1383 3.09202 2.21799C2.7157 2.40973 2.40974 2.7157 2.21799 3.09202C2.1383 3.24842 2.07337 3.47262 2.03755 3.91104C2.00078 4.36113 2 4.94342 2 5.8V14.2C2 15.0566 2.00078 15.6389 2.03755 16.089C2.07337 16.5274 2.1383 16.7516 2.21799 16.908C2.40973 17.2843 2.7157 17.5903 3.09202 17.782C3.24842 17.8617 3.47262 17.9266 3.91104 17.9624C4.36113 17.9992 4.94342 18 5.8 18H7C7.55229 18 8 18.4477 8 19C8 19.5523 7.55229 20 7 20H5.75868C4.95372 20 4.28937 20 3.74818 19.9558C3.18608 19.9099 2.66937 19.8113 2.18404 19.564C1.43139 19.1805 0.819468 18.5686 0.435975 17.816C0.188684 17.3306 0.0901197 16.8139 0.0441946 16.2518C-2.28137e-05 15.7106 -1.23241e-05 15.0463 4.31291e-07 14.2413V5.7587C-1.23241e-05 4.95373 -2.28137e-05 4.28937 0.0441947 3.74817C0.09012 3.18608 0.188685 2.66937 0.435976 2.18404C0.81947 1.43139 1.43139 0.819468 2.18404 0.435975C2.66938 0.188684 3.18608 0.0901197 3.74818 0.0441945C4.28937 -2.28137e-05 4.95373 -1.23241e-05 5.7587 4.31292e-07ZM13.2929 4.29289C13.6834 3.90237 14.3166 3.90237 14.7071 4.29289L19.7071 9.29289C20.0976 9.68342 20.0976 10.3166 19.7071 10.7071L14.7071 15.7071C14.3166 16.0976 13.6834 16.0976 13.2929 15.7071C12.9024 15.3166 12.9024 14.6834 13.2929 14.2929L16.5858 11H7C6.44772 11 6 10.5523 6 10C6 9.44772 6.44772 9 7 9H16.5858L13.2929 5.70711C12.9024 5.31658 12.9024 4.68342 13.2929 4.29289Z" fill="var(--adminify-primary)"></path>
1101 </svg>
1102 <span><?php
1103 echo esc_html__( 'Log Out', 'adminify' );
1104 ?></span>
1105 </a>
1106 </li>
1107 </ul>
1108 </div>
1109 </div>
1110 <?php
1111 }
1112 ?>
1113 </div>
1114 </div>
1115 </div>
1116 </div>
1117 </div>
1118 </nav>
1119 </div>
1120
1121 <?php
1122 $output_wp_admin_bar = ob_get_clean();
1123 // echo Utils::wp_kses_custom($output_wp_admin_bar);
1124 echo $output_wp_admin_bar;
1125 }
1126
1127 public function jltwp_adminify_logo() {
1128 global $wp_admin_bar;
1129 $adminurl = get_admin_url();
1130 $homeurl = $adminurl;
1131 // Light Logo
1132 $menu_layout = (array) $this->options['menu_layout_settings'];
1133 // Menu Layouts
1134 $menu_layout = ( !empty( $this->options['menu_layout_settings'] ) ? $this->options['menu_layout_settings'] : '' );
1135 $menu_mode = ( !empty( $menu_layout['menu_mode'] ) ? $menu_layout['menu_mode'] : 'classic' );
1136 $menu_layout = ( !empty( $menu_layout['layout_type'] ) ? $menu_layout['layout_type'] : 'vertical' );
1137 $admin_ui_logo_type = ( !empty( $this->options['light_dark_mode']['admin_ui_logo_type'] ) ? $this->options['light_dark_mode']['admin_ui_logo_type'] : 'image_logo' );
1138 $light_mode = ( !empty( $this->options['light_dark_mode']['admin_ui_light_mode'] ) ? $this->options['light_dark_mode']['admin_ui_light_mode'] : '' );
1139 $light_logo = '';
1140 $light_mini_logo = '';
1141 if ( $admin_ui_logo_type == 'image_logo' ) {
1142 if ( isset( $light_mode['mini_admin_ui_light_logo']['url'] ) && $light_mode['mini_admin_ui_light_logo']['url'] ) {
1143 $light_mini_logo = $light_mode['mini_admin_ui_light_logo']['url'];
1144 } else {
1145 $light_mini_logo = WP_ADMINIFY_ASSETS_IMAGE . 'logos/mini-logo-light.svg';
1146 }
1147 // Logo Image
1148 if ( !empty( $light_mode['admin_ui_light_logo']['url'] ) ) {
1149 $light_logo = $light_mode['admin_ui_light_logo']['url'];
1150 } else {
1151 $light_logo = WP_ADMINIFY_ASSETS_IMAGE . 'logos/logo-text-light.svg';
1152 }
1153 } elseif ( $admin_ui_logo_type == 'text_logo' ) {
1154 // Text Logo
1155 if ( $this->options['light_dark_mode']['admin_ui_mode'] == 'light' ) {
1156 $text_logo = $light_mode['admin_ui_light_logo_text'];
1157 }
1158 }
1159 // Logo Size
1160 $light_width = ( !empty( $light_mode['light_logo_size']['width'] ) ? $light_mode['light_logo_size']['width'] : '120' );
1161 $light_height = ( !empty( $light_mode['light_logo_size']['height'] ) ? $light_mode['light_logo_size']['height'] : '32' );
1162 // Dark Logo
1163 $dark_mode = ( !empty( $this->options['light_dark_mode']['admin_ui_dark_mode'] ) ? $this->options['light_dark_mode']['admin_ui_dark_mode'] : '' );
1164 $dark_logo = '';
1165 $dark_mini_logo = '';
1166 if ( $admin_ui_logo_type == 'image_logo' ) {
1167 if ( isset( $dark_mode['mini_admin_ui_dark_logo']['url'] ) && $dark_mode['mini_admin_ui_dark_logo']['url'] ) {
1168 $dark_mini_logo = $dark_mode['mini_admin_ui_dark_logo']['url'];
1169 } else {
1170 $dark_mini_logo = WP_ADMINIFY_ASSETS_IMAGE . 'logos/mini-logo-dark.svg';
1171 }
1172 // Dark Logo Image
1173 if ( isset( $dark_mode['admin_ui_dark_logo']['url'] ) && $dark_mode['admin_ui_dark_logo']['url'] ) {
1174 $dark_logo = $dark_mode['admin_ui_dark_logo']['url'];
1175 } else {
1176 $dark_logo = WP_ADMINIFY_ASSETS_IMAGE . 'logos/logo-text-dark.svg';
1177 }
1178 } elseif ( $admin_ui_logo_type == 'text_logo' ) {
1179 // Text Logo
1180 if ( $this->options['light_dark_mode']['admin_ui_mode'] == 'dark' ) {
1181 $text_logo = $dark_mode['admin_ui_dark_logo_text'];
1182 }
1183 }
1184 // Dark Logo Size
1185 $dark_width = ( !empty( $dark_mode['dark_logo_size']['width'] ) ? $dark_mode['dark_logo_size']['width'] : '120' );
1186 $dark_height = ( !empty( $dark_mode['dark_logo_size']['height'] ) ? $dark_mode['dark_logo_size']['height'] : '32' );
1187 ?>
1188
1189 <div class="navbar-brand">
1190 <a class="navbar-item p-0" href="<?php
1191 echo esc_url( $homeurl );
1192 ?>">
1193 <?php
1194 if ( $admin_ui_logo_type == 'image_logo' ) {
1195 ?>
1196 <!-- Light Logo -->
1197 <img alt="<?php
1198 echo esc_attr( get_bloginfo( 'name' ) );
1199 ?>" class="logo-light" src="<?php
1200 echo esc_url( $light_logo );
1201 ?>" width="<?php
1202 echo esc_attr( $light_width );
1203 ?>" height="<?php
1204 echo esc_attr( $light_height );
1205 ?>">
1206 <img alt="<?php
1207 echo esc_attr( get_bloginfo( 'name' ) );
1208 ?>" class="mini-logo-light" src="<?php
1209 echo esc_url( $light_mini_logo );
1210 ?>" width="36" height="36">
1211 <!-- Dark Logo -->
1212 <img alt="<?php
1213 echo esc_attr( get_bloginfo( 'name' ) );
1214 ?>" class="logo-dark" src="<?php
1215 echo esc_url( $dark_logo );
1216 ?>" width="<?php
1217 echo esc_attr( $dark_width );
1218 ?>" height="<?php
1219 echo esc_attr( $dark_height );
1220 ?>">
1221 <img alt="<?php
1222 echo esc_attr( get_bloginfo( 'name' ) );
1223 ?>" class="mini-logo-dark" src="<?php
1224 echo esc_url( $dark_mini_logo );
1225 ?>" width="36" height="36">
1226 <?php
1227 } elseif ( $admin_ui_logo_type == 'text_logo' ) {
1228 ?>
1229 <span class="wp-adminify-site-name">
1230 <?php
1231 echo esc_html( $text_logo );
1232 ?>
1233 </span>
1234 <?php
1235 }
1236 ?>
1237 </a>
1238
1239 <!-- <div class="navbar-burger" data-target="wp-adminify-top-adminbar">
1240 <img src="<?php
1241 // echo WP_ADMINIFY_ASSETS_IMAGE . 'icons/toggol.svg';
1242 ?>" alt="Toggol icon"/>
1243 </div> -->
1244
1245 </div>
1246
1247 <?php
1248 }
1249
1250 /* Remove from the administration bar */
1251 public function jltma_adminify_remove_admin_bar_menus() {
1252 global $wp_admin_bar;
1253 $wp_admin_bar->remove_menu( 'wp-logo' );
1254 $wp_admin_bar->remove_menu( 'site-name' );
1255 $wp_admin_bar->remove_menu( 'updates' );
1256 $wp_admin_bar->remove_menu( 'menu-toggle' );
1257 }
1258
1259 }
1260