PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.2.4
Adminify – White Label, Admin Menu Editor, Login Customizer v4.2.4
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.2.4, at Inc/Classes/AdminBar.php

1,169 lines 41.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace PXLBSAdminify\Inc\Classes;
4
5 use PXLBSAdminify\Inc\Utils;
6 use PXLBSAdminify\Inc\Admin\AdminSettings;
7 use PXLBSAdminify\Inc\Classes\DarkModeConflicts;
8 use PXLBSAdminify\Inc\Admin\AdminSettingsModel;
9
10 // no direct access allowed
11 if (!defined('ABSPATH')) {
12 exit;
13 }
14 class AdminBar extends AdminSettingsModel
15 {
16
17 public $options;
18 public $post_types;
19 public $adminify_ui;
20
21 public function __construct()
22 {
23 $this->options = (array) AdminSettings::get_instance()->get();
24 $this->adminify_ui = $this->options['admin_ui'];
25 $global_ui_mode = empty($this->options['light_dark_mode']['admin_ui_mode']) ? 'light' : $this->options['light_dark_mode']['admin_ui_mode'];
26 $current_ui_mode = empty(get_user_meta(get_current_user_id(), 'color_mode', true)) ? $global_ui_mode : get_user_meta(get_current_user_id(), 'color_mode', true);
27
28 if ( $current_ui_mode === 'dark' || $current_ui_mode === 'system' ) {
29 new DarkModeConflicts();
30 }
31
32 // $admin_bar_user_roles = !empty($this->options['admin_bar_user_roles']) ? $this->options['admin_bar_user_roles'] : '';
33 // if (Utils::restricted_for($admin_bar_user_roles)) {
34 // return;
35 // }
36
37 // Disable the default admin bar
38 // add_filter('show_admin_bar', '__return_false');
39
40 // Add admin-bar support if not already activated
41 // add_theme_support('admin-bar', ['callback' => '__return_false']);
42
43
44
45 // 05-06-2024
46 // Check Adminify Setup Wizard Page
47 // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- read-only check, no state change.
48 if (!empty($_GET['page']) && 'wp-adminify-setup-wizard' == sanitize_key(wp_unslash($_GET['page']))) {
49 return;
50 }
51
52 $this->initialize();
53
54 // if (!empty($this->adminify_ui) && !empty($this->options['admin_bar_search'] )) {
55 // add_action('wp_admin_bar_class', [$this, 'load_wp_admin_bar_class']);
56 // add_action('pxlbsadminify/before/secondary_menu', [$this, 'before_secondary_menu']);
57 // }
58
59 if (is_admin()) {
60 // Switcher for Default UI
61 if (empty($this->adminify_ui)) {
62 if (!empty($this->options['admin_bar_dark_light_btn'])) {
63 add_action('admin_bar_menu', [$this, 'dark_mode_switcher_icon']);
64 }
65 }
66 }
67 }
68
69
70 // Add Switcher Icon on Admin Bar Secondary
71 public function dark_mode_switcher_icon($wp_admin_bar)
72 {
73 $args = [
74 'parent' => 'top-secondary',
75 'id' => 'wp-adminify-admin-bar-switcher',
76 'title' => $this->dark_mode_switcher_dom(),
77 'meta' => false
78 ];
79
80 $wp_admin_bar->add_node($args);
81 }
82
83 public function dark_mode_switcher_dom()
84 {
85 $global_color_mode = !empty($this->options['light_dark_mode']['admin_ui_mode']) ? $this->options['light_dark_mode']['admin_ui_mode'] : 'light';
86 $color_mode = empty(get_user_meta(get_current_user_id(), 'color_mode', true))? $global_color_mode : get_user_meta(get_current_user_id(), 'color_mode', true);
87
88 $color_var = !empty($this->adminify_ui) ? 'var(--adminify-menu-text-color)' : '#fff';
89
90 $adminbar_switcher_icon = '<div id="wp-adminify-color-mode-wrapper">
91 <div class="mode-icon adminify-color-mode-' . esc_attr($color_mode) . '-active">
92 <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>
93 <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>
94 <svg width="16" height="16" viewBox="0 0 22 18" fill="none" xmlns="http://www.w3.org/2000/svg" class="systemIcon">
95 <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"/>
96 </svg>
97 </div>
98 <div class="light-dark-dropdown">
99 <div class="light">
100 <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>
101 <span>Light</span>
102 </div>
103 <div class="dark">
104 <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>
105 <span>Dark</span>
106 </div>
107 <div class="system">
108 <svg width="16" height="16" viewBox="0 0 22 18" fill="none" xmlns="http://www.w3.org/2000/svg" class="systemIcon">
109 <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"/>
110 </svg>
111 <span>System</span>
112 </div>
113 </div>
114 </div>';
115
116 return $adminbar_switcher_icon;
117 }
118
119
120
121 public function initialize()
122 {
123 $admin_bar_position = (!empty($this->options['admin_bar_position'])) ? $this->options['admin_bar_position'] : 'top';
124
125 if (is_admin()) {
126 if ($admin_bar_position == 'top' || $admin_bar_position == 'bottom') {
127 if (!empty($this->adminify_ui)) {
128 //TODO: not need to adminify ui. alternative use iframe topbar
129 // add_action('admin_init', [$this, 'add_admin_bar']);
130 // } else {
131 add_action('admin_head', [$this, 'legacy_admin_bar_positon']);
132 }
133 }
134 add_action('admin_enqueue_scripts', [$this, 'admin_scripts'], 100);
135
136 // Remove Unnecessary Menus from Admin bar
137 // add_action('wp_before_admin_bar_render', [$this, 'remove_admin_bar_menus'], 0);
138
139 // add_filter('admin_body_class', [$this, 'admin_bar_body_class']);
140 // add_action('admin_head', [$this, 'admin_bar_css'], 999);
141
142 add_action('wp_ajax_pxlbsadminify_all_search', [$this, 'all_search']);
143 add_action('wp_ajax_pxlbsadminify_color_mode', [$this, 'color_mode']);
144
145
146 // Screen Option and Help Tab
147 add_action('admin_head', [$this, 'remove_screen_options'], 10, 3);
148 add_action('admin_head', [$this, 'remove_help_tab']);
149 } else {
150 // Admin bar Frontend settings
151 $frontend_admin = (!empty($this->options['admin_bar_hide_frontend'])) ? $this->options['admin_bar_hide_frontend'] : 'show';
152
153 // if (jltwp_adminify()->can_use_premium_code__premium_only()) {
154 // if ($frontend_admin == 'show') {
155 // $frontend_admin_roles = (!empty($this->options['admin_bar_hide_frontend_user_roles'])) ? $this->options['admin_bar_hide_frontend_user_roles'] : [];
156 // if (Utils::restricted_for($frontend_admin_roles)) {
157 // $frontend_admin = 'hide';
158 // }
159 // }
160 // }
161 $this->front_bar();
162
163 if ($admin_bar_position == 'bottom') {
164 add_action('init', [$this, 'admin_bar_front_style_init']);
165 }
166
167 if ($frontend_admin == 'hide') {
168 add_filter('show_admin_bar', '__return_false');
169 }
170 }
171 }
172
173 public function before_secondary_menu()
174 {
175 ?>
176 <div class="wp-adminify-top-header--search--form">
177 <form class="top-header--search--form" action="$">
178 <span class="adminify-search-expand"><i class="icon-magnifier icons"></i></span>
179 <input id="top-header-search-input" class="top-header-search-input" type="search" placeholder="Search here">
180 </form>
181
182 <div id="top-header-search-results" class=" top-header-search-results" style="display: none;">
183 <div class="top-header-results-wrapper">
184 </div>
185 </div>
186 </div>
187 <?php
188 }
189
190 public function load_wp_admin_bar_class()
191 {
192 return 'PXLBSAdminify\Inc\Classes\Adminify_Admin_Bar';
193 }
194
195 public function front_bar()
196 {
197 add_action('admin_init', [$this, 'add_admin_bar']);
198 add_filter('body_class', [$this, 'admin_bar_body_class']);
199 }
200
201 public function admin_bar_front_style_init()
202 {
203 add_filter('wp_enqueue_scripts', [$this, 'admin_bar_front_style']);
204 }
205
206 // Frontend Admin bar style
207 public function admin_bar_front_style()
208 {
209 $admin_bar_css = '';
210 $admin_bar_css .= '.admin-bar-position-bottom #wpadminbar{
211 top:auto;
212 bottom: 0;
213 }
214 .admin-bar-position-bottom #wpadminbar .menupop .ab-sub-wrapper{
215 bottom: 32px;
216 }
217 @media all and (max-width:600px){
218 body.logged-in.admin-bar-position-bottom {
219 position: relative;
220 }
221 }';
222 wp_add_inline_style('admin-bar', $admin_bar_css);
223 }
224
225 // Remove Screen Options
226 public function remove_screen_options()
227 {
228 $enable_screen_tab = Utils::get_user_preference('screen_options_tab');
229 if ($enable_screen_tab) {
230 add_filter('screen_options_show_screen', '__return_false');
231 }
232 }
233
234 // Contextual Help Tab Remove
235 public function remove_help_tab()
236 {
237 $enable_screen_tab = Utils::get_user_preference('adminify_help_tab');
238 if ($enable_screen_tab) {
239 $screen = get_current_screen();
240 $screen->remove_help_tabs();
241 }
242 }
243
244 // Get All registered WP Admin Menus
245 public static function get_wp_admin_menus($thismenu, $thissubmenu)
246 {
247 $options = [];
248
249 if (!empty($thismenu) && is_array($thismenu)) {
250 foreach ($thismenu as $item) {
251 if (!empty($item[0])) {
252 // the preg_replace removes "Comments" & "Plugins" menu spans.
253 $options[$item[2]] = (preg_replace('/\<span.*?>.*?\<\/span><\/span>/s', '', $item[0]));
254 }
255 }
256 }
257
258 if (!empty($thissubmenu) && is_array($thissubmenu)) {
259 foreach ($thissubmenu as $items) {
260 foreach ($items as $item) {
261 if (!empty($item[0])) {
262 $options[$item[1]] = (preg_replace('/\<span.*?>.*?\<\/span><\/span>/s', '', $item[0]));
263 }
264 }
265 }
266 }
267
268 return $options;
269 }
270
271 public function admin_scripts()
272 {
273 global $pagenow;
274 if ($pagenow == 'wp-login.php' || $pagenow == 'wp-register.php' || $pagenow == 'customize.php') {
275 return;
276 }
277
278 // Commented on: 9-6-24
279 if (!empty($this->adminify_ui)) {
280 wp_enqueue_style('wp-adminify-admin-bar');
281 $this->admin_topbar_loader_css();
282 }
283 wp_localize_script('adminify-admin', 'PXLBSADMINIFY_ADMINBAR', $this->create_admin_bar_js_object());
284 }
285
286
287 public function create_admin_bar_js_object()
288 {
289 return [
290 'ajax_url' => admin_url('admin-ajax.php'),
291 'security_nonce' => wp_create_nonce('pxlbsadminify-admin-bar-security-nonce'),
292 'notice_nonce' => wp_create_nonce('pxlbsadminify-notice-nonce'),
293 ];
294 }
295
296 /**
297 * Preloader
298 *
299 * @return void
300 */
301 public function admin_topbar_loader_css()
302 {
303 $output_css = '';
304 $topbar_wireframe_img = PXLBSADMINIFY_ASSETS_IMAGE . 'topbar-wireframe.svg';
305 $output_css .= '.js .wp-adminify-topbar-loader{background: url(' . esc_url($topbar_wireframe_img) . '); }';
306
307 // Use wp_add_inline_style instead of echo to prevent "headers already sent" errors
308 wp_add_inline_style( 'wp-adminify-admin-bar', wp_strip_all_tags($output_css) );
309
310 $screen = get_current_screen(); // Get current screen details
311
312 if (isset($screen->base) && $screen->base === 'post') {
313 $inline_script = "window.addEventListener('load', function() {
314 const isFullscreenMode = wp.data.select('core/edit-post').isFeatureActive('fullscreenMode');
315 if (isFullscreenMode) {
316 jQuery('.adminify-top_bar').css({
317 'display': 'none !important'
318 });
319 }
320 });";
321 wp_add_inline_script( 'adminify-admin', $inline_script );
322 }
323 }
324
325 /**
326 * Save Color Mode by Ajax
327 *
328 * @return void
329 */
330 public function color_mode()
331 {
332 if (defined('DOING_AJAX') && DOING_AJAX && check_ajax_referer('pxlbsadminify-admin-bar-security-nonce', 'security') > 0) {
333 // Color mode is per-user preference; require the caller to be
334 // a logged-in user with admin-bar access.
335 if ( ! is_user_logged_in() || ! current_user_can( 'read' ) ) {
336 wp_send_json_error( array( 'mess' => __( 'You are not allowed to perform this action.', 'adminify' ) ), 403 );
337 }
338 $admin_bar_mode = AdminSettings::get_instance()->get();
339
340 if (!empty($_POST['key'])) {
341 $key = sanitize_key($_POST['key']);
342 $value = isset($_POST['value']) ? Utils::clean_ajax_input(wp_unslash($_POST['value'])) : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- sanitized via Utils::clean_ajax_input().
343
344 if ($key == '') {
345 $message = __('No Color Mode supplied to save', 'adminify');
346 echo wp_json_encode( array( 'error' => true, 'error_message' => $message ) );
347 die();
348 }
349 }
350
351 // Light/Dark Mode
352 if ($key === 'color_mode') {
353 // For User preference
354 $userid = get_current_user_id();
355 $current = get_user_meta($userid, $key, true);
356 if($current !== $value) {
357 $state = update_user_meta($userid, $key, $value);
358 }
359 die();
360 }
361
362 // Screen Options, Help Tabs and WP Hide Links
363 if ($key === 'screen_options_tab' || $key === 'hide_wp_links' || $key === 'adminify_help_tab') {
364 $userid = get_current_user_id();
365 $current = get_user_meta($userid, 'pxlbsadminify_preferences', true);
366
367 if (is_array($current)) {
368 $current[$key] = $value;
369 } else {
370 $current = [];
371 $current[$key] = $value;
372 }
373
374 $state = update_user_meta($userid, 'pxlbsadminify_preferences', $current);
375
376 if ($state) {
377 $returndata = [];
378 $returndata['success'] = true;
379 $returndata['message'] = __('Preferences saved', 'adminify');
380 echo wp_json_encode($returndata);
381 } else {
382 $message = __('Unable to save user preferences', 'adminify');
383 echo wp_json_encode( array( 'error' => true, 'error_message' => $message ) );
384 die();
385 }
386 }
387 }
388 }
389
390 /**
391 * Search Everything
392 *
393 * @return void
394 */
395 public function all_search()
396 {
397 if (defined('DOING_AJAX') && DOING_AJAX && check_ajax_referer('pxlbsadminify-admin-bar-security-nonce', 'security') > 0) {
398 // Security check - only users who can edit posts should access admin search
399 if (!current_user_can('edit_posts')) {
400 wp_send_json_error(array('message' => __('You do not have permission to perform this action.', 'adminify')));
401 }
402
403 $search_text = '';
404 if (!empty($_POST['search'])) {
405 $search_text = sanitize_text_field(wp_unslash($_POST['search']));
406 }
407
408 // Error Handling For Minimum 3 Char
409 if (strlen($search_text) < 3) {
410 wp_send_json_success(
411 [
412 'message' => 'Please Enter Minimum 3 Characters'
413 ]
414 );
415 }
416
417
418 // Search Arguments
419 $args = [
420 'numberposts' => -1,
421 's' => $search_text,
422 'post_status' => ['publish', 'pending', 'draft', 'future', 'private', 'inherit'],
423 ];
424
425 // All Post Types
426 $post_types = $this->get_post_types();
427 foreach ($post_types as $type) {
428 $args['post_type'][] = $type->name;
429 }
430
431 // All Categories/Taxonomies
432 $all_taxonomies = get_taxonomies();
433
434 // Get Comments
435 $all_comments = get_comments();
436
437 // Get All Users
438 $all_users = get_users();
439
440 // All Users
441 // $blogusers = get_users();
442 // foreach ($blogusers as $type) {
443 // $name = $type->user_login;
444 // $id = $type->ID;
445 // $args['author__in'][] = $type->ID;
446 // }
447
448 // // All Menus
449 // $all_admin_menus = self::get_wp_admin_menus();
450
451 // All Plugins
452
453 if (!function_exists('get_plugins')) {
454 require_once ABSPATH . 'wp-admin/includes/plugin.php';
455 }
456 $all_plugins = get_plugins();
457
458 $foundposts = get_posts($args);
459
460 // $count_items = '';
461 // if (count($foundposts) > 0) {
462 // $count_items .= count($foundposts);
463 // } elseif (count($all_plugins)) {
464 // $count_items .= count($all_plugins);
465 // }
466
467
468
469
470
471 $output_data = [
472 'foundposts' => $this->set_edit_url_foundposts($foundposts),
473 'all_taxonomies' => $this->filter_all_taxonomies($all_taxonomies, $search_text),
474 'all_comments' => $this->filter_all_comments($all_comments, $search_text),
475 'all_users' => $this->filter_all_users($all_users, $search_text),
476 'all_plugins' => $this->filter_all_plugins($all_plugins, $search_text),
477 ];
478
479 wp_send_json_success(
480 [
481 'data' => wp_json_encode($output_data),
482 ]
483 );
484
485 return;
486
487 ob_start();
488 ?>
489
490 <p><span class="count"></span><?php echo count($foundposts) . wp_kses_post(' item<span>s</span> found'); ?></p>
491
492 <table class="top-header-result-table" style="height:500px;">
493 <thead>
494 <tr class="has-text-left">
495 <th><?php esc_html_e('Title', 'adminify'); ?></th>
496 <th><?php esc_html_e('Type', 'adminify'); ?></th>
497 <th><?php esc_html_e('User', 'adminify'); ?></th>
498 <th><?php esc_html_e('Date', 'adminify'); ?></th>
499 </tr>
500 </thead>
501 <tbody>
502
503 <?php
504 foreach ($foundposts as $item) {
505 $author_id = $item->post_author;
506 $editurl = get_edit_post_link($item);
507 $public = get_permalink($item);
508 ?>
509 <tr>
510 <td><span class="table-title"><a href="<?php echo esc_url($editurl); ?>"><?php echo wp_kses_post(get_the_title($item)); ?></a></span></td>
511 <td><span class="type"><?php echo wp_kses_post(get_post_type($item)); ?></span></td>
512 <td><span class="user"><?php echo wp_kses_post(the_author_meta('user_login', $author_id)); ?></span></td>
513 <td><span class="date"><?php echo wp_kses_post(get_the_date(get_option('date_format'), $item)); ?></span></td>
514 </tr>
515 <?php } ?>
516
517 <?php
518 foreach ($all_taxonomies as $tax_name) {
519 $terms = get_terms(
520 [
521 'taxonomy' => $tax_name,
522 'hide_empty' => 1,
523 ]
524 );
525 foreach ($terms as $cat) {
526 if (strpos(strtolower($cat->name), strtolower($term)) === false) {
527 continue;
528 }
529 // $user = get_userdata($cat->term_id);
530 ?>
531 <tr>
532 <td>
533 <span class="table-title">
534 <a href="<?php echo esc_url(get_term_link($cat->slug, $cat->taxonomy)); ?>">
535 <?php echo esc_html($cat->name); ?>
536 </a>
537 </span>
538 </td>
539 <td>
540 <span class="type"><?php echo esc_html($cat->taxonomy); ?></span>
541 </td>
542 <td>
543 <span class="user">
544 <?php esc_html_e('N/A', 'adminify'); ?>
545 </span>
546 </td>
547 <td>
548 <span class="date">
549 <?php esc_html_e('N/A', 'adminify'); ?>
550 </span>
551 </td>
552 <td>
553 </td>
554 </tr>
555 <?php
556 }
557 }
558 ?>
559
560
561 <!-- Get Comments -->
562 <?php
563 foreach ($all_comments as $comment) {
564 if (strpos(strtolower($comment->comment_content), strtolower($term)) === false) {
565 continue;
566 }
567 ?>
568 <tr>
569 <td>
570 <span class="table-title">
571 <a href="<?php echo esc_url(admin_url('comment.php?action=editcomment&c=' . esc_attr($comment->comment_ID))); ?>">
572 <?php echo wp_kses_post($comment->comment_content); ?>
573 </a>
574 </span>
575 </td>
576 <td>
577 <span class="type">
578 <?php echo wp_kses_post(ucwords($comment->comment_type)); ?>
579 </span>
580 </td>
581 <td>
582 <span class="user">
583 <?php echo wp_kses_post(the_author_meta('display_name', $comment->user_id)); ?>
584 </span>
585 </td>
586 <td>
587 <span class="date">
588 <?php echo esc_html(get_the_date(get_option('date_format'), $comment->comment_date)); ?>
589 </span>
590 </td>
591 </tr>
592 <?php } ?>
593
594
595
596 <!-- Get Users -->
597 <?php
598
599 foreach ($all_users as $user) {
600 if (strpos(strtolower($user->user_login), strtolower($term)) === false) {
601 continue;
602 }
603 ?>
604 <tr>
605 <td>
606 <span class="table-title">
607 <a href="<?php echo esc_url(admin_url('user-edit.php?user_id=' . $user->ID)); ?>">
608 <?php echo esc_html($user->display_name); ?>
609 </a>
610 </span>
611 </td>
612 <td>
613 <span class="type">
614 <?php echo wp_kses_post(ucwords($comment->comment_type)); ?>
615 </span>
616 </td>
617 <td>
618 <span class="user">
619 <?php echo wp_kses_post(the_author_meta('display_name', $comment->user_id)); ?>
620 </span>
621 </td>
622 <td>
623 <span class="date">
624 <?php echo wp_kses_post(get_the_date(get_option('date_format'), $user->user_registered)); ?>
625 </span>
626 </td>
627 </tr>
628 <?php } ?>
629
630
631
632 <!-- Get Plugins -->
633 <?php
634 foreach ($all_plugins as $plugin) {
635 if (strpos(strtolower($plugin['Name']), strtolower($term)) === false) {
636 continue;
637 }
638 ?>
639 <tr>
640 <td>
641 <span class="table-title">
642 <a href="<?php echo esc_url(admin_url('plugins.php')); ?>">
643 <?php echo esc_html($plugin['Name']); ?>
644 </a>
645 </span>
646 </td>
647 <td>
648 <span class="type">
649 <?php esc_html_e('Plugin', 'adminify'); ?>
650 </span>
651 </td>
652 <td>
653 <span class="user">
654 <?php echo esc_html($plugin['AuthorName']); ?>
655 </span>
656 </td>
657 <td>
658 <span class="date">
659 <?php esc_html_e('N/A', 'adminify'); ?>
660 </span>
661 </td>
662 </tr>
663 <?php } ?>
664
665
666 </tbody>
667 </table>
668
669
670 <?php
671
672 // $output_data = ob_get_clean();
673
674 // $output_data = [
675 // 'foundposts' => $foundposts,
676 // 'all_taxonomies' => $all_taxonomies,
677 // 'all_comments' => $all_comments,
678 // 'all_users' => $all_users,
679 // 'all_plugins' => $all_plugins,
680 // ];
681 // echo json_encode($output_data);
682 echo wp_json_encode($foundposts);
683 wp_send_json_success(
684 [
685 'data' => $foundposts,
686 ]
687 );
688 }
689
690 die();
691 }
692
693 /**
694 * Set URL to All Post
695 */
696 public function set_edit_url_foundposts($foundposts)
697 {
698 $all_posts = [];
699 foreach ($foundposts as $key => $post) {
700 $edit_url = get_edit_post_link($post);
701 $all_posts[$key]['title'] = get_the_title($post->ID);
702 $all_posts[$key]['link'] = $edit_url;
703 }
704
705 return $all_posts;
706 }
707
708 /**
709 * Search Taxonomies
710 */
711 public function filter_all_taxonomies($all_taxonomies, $search_text)
712 {
713 $find_taxonomies = [];
714
715 foreach ($all_taxonomies as $tax_name) {
716 $terms = get_terms(
717 [
718 'taxonomy' => $tax_name,
719 'hide_empty' => 1,
720 ]
721 );
722
723 foreach ($terms as $key => $cat) {
724 if (strpos(strtolower($cat->name), strtolower($search_text)) === false) {
725 continue;
726 }
727 $find_taxonomies[$key]['name'] = $cat->name;
728 $find_taxonomies[$key]['link'] = get_edit_term_link($cat);
729 }
730 }
731
732 return $find_taxonomies;
733 }
734
735 /**
736 * Search Comments
737 */
738 public function filter_all_comments($all_comments, $search_text)
739 {
740 $find_comments = [];
741
742 foreach ($all_comments as $key => $comment) {
743 if (strpos(strtolower($comment->comment_content), strtolower($search_text)) === false) {
744 continue;
745 }
746 $find_comments[$key]['content'] = $comment->comment_content;
747 $find_comments[$key]['link'] = admin_url('comment.php?action=editcomment&c=' . esc_attr($comment->comment_ID));
748 }
749
750 return $find_comments;
751 }
752
753 /**
754 * Search Users
755 */
756 public function filter_all_users($all_users, $search_text)
757 {
758 $find_users = [];
759
760 foreach ($all_users as $key => $user) {
761 if (str_contains(strtolower($user->data->user_login), strtolower($search_text)) || str_contains(strtolower($user->data->display_name), strtolower($search_text))) {
762 $find_users[$key]['name'] = $user->data->user_login;
763 $find_users[$key]['display_name'] = $user->data->display_name;
764 $find_users[$key]['link'] = admin_url('user-edit.php?user_id=' . $user->ID);
765 }
766 }
767
768 return $find_users;
769 }
770
771 /**
772 * Search Plugins
773 */
774 public function filter_all_plugins($all_plugins, $search_text)
775 {
776 $find_plugins = [];
777
778 foreach ($all_plugins as $key => $plugin) {
779 if (strpos(strtolower($plugin['Name']), strtolower($search_text)) === false) {
780 continue;
781 }
782
783 $find_plugins[] = [
784 'name' => $plugin['Name'],
785 'link' => admin_url('plugins.php')
786 ];
787 }
788
789 return $find_plugins;
790 }
791
792 // Admin Bar Body Class
793 public function admin_bar_body_class($classes)
794 {
795 if (is_admin()) {
796 $classes .= ' wp-adminify-admin-bar';
797
798 $admin_bar_position = !empty($this->options['admin_bar_position']) ? $this->options['admin_bar_position'] : 'top';
799 if ($admin_bar_position === 'top') {
800 $classes .= ' position-top';
801 } elseif ($admin_bar_position === 'bottom') {
802 $classes .= ' position-bottom';
803 }
804
805 if (!empty($this->options['enable_admin_bar'])) {
806 $classes .= ' topbar-disabled';
807 }
808 } else {
809 global $pagenow;
810
811 if (!is_user_logged_in() && $pagenow != 'wp-login.php') {
812 return $classes;
813 }
814
815 $classes[] = 'wp-adminify-admin-bar';
816
817 $admin_bar_position = !empty($this->options['admin_bar_position']) ? $this->options['admin_bar_position'] : 'top';
818 if ($admin_bar_position === 'top') {
819 $classes[] = 'admin-bar-position-top';
820 } elseif ($admin_bar_position === 'bottom') {
821 $classes[] = 'admin-bar-position-bottom';
822 }
823
824 if (!empty($this->options['enable_admin_bar'])) {
825 $classes[] = 'topbar-disabled';
826 }
827 }
828
829 return $classes;
830 }
831
832 public function get_post_types()
833 {
834 if (is_array($this->post_types)) {
835 return $this->post_types;
836 } else {
837 $args = ['public' => true];
838 $output = 'objects';
839 $post_types = get_post_types($args, $output);
840 $this->post_types = $post_types;
841 return $post_types;
842 }
843 }
844
845 public function legacy_admin_bar_positon()
846 {
847 if (!empty($this->options['admin_bar_position']) && $this->options['admin_bar_position'] == 'bottom') {
848
849 $pxlbsadminify_thirdparty_css = '';
850 $pxlbsadminify_thirdparty_css .= 'body.wp-adminify.position-bottom {
851 margin-top: -28px;
852 padding-bottom: 28px;
853 }
854
855 body.wp-adminify.position-bottom.admin-bar #wphead {
856 padding-top: 0;
857 }
858
859 body.wp-adminify.position-bottom.admin-bar #footer {
860 padding-bottom: 28px;
861 }
862
863 body.wp-adminify.position-bottom #wpadminbar {
864 top: auto !important;
865 bottom: 0;
866 }
867
868 body.wp-adminify.position-bottom #wpadminbar .quicklinks .ab-top-menu .menupop .ab-sub-wrapper {
869 bottom: 32px;
870 }
871
872 body.wp-adminify.position-bottom #wpadminbar .quicklinks .ab-top-menu .menupop .ab-sub-wrapper .ab-submenu .menupop .ab-sub-wrapper {
873 bottom: -9px;
874 }';
875 echo '<style>' . esc_html(wp_strip_all_tags($pxlbsadminify_thirdparty_css)) . '</style>';
876 }
877 }
878
879 public function add_admin_bar()
880 {
881 // For Testing Admin Bar on Setup Wizard
882 // add_action('admin_head', [$this, 'render_admin_bar']);
883
884 add_action('in_admin_header', [$this, 'render_admin_bar'], -999999999);
885 // on frontend area
886 add_action('wp_head', [$this, 'render_admin_bar']);
887 }
888
889
890 public function render_admin_bar()
891 {
892
893 global $pagenow;
894 if (!is_user_logged_in() && $pagenow != 'wp-login.php') {
895 return;
896 }
897
898 // Check Gutenberg Editor Page
899 // if (Utils::is_block_editor_page()) {
900 // return;
901 // }
902
903 // if (!is_admin_bar_showing()) {
904 // return false;
905 // }
906
907 // Remove Adminbar from Gutenberg Block Editor Page
908 // if (function_exists('is_gutenberg_page') && is_gutenberg_page()) {
909 // // The Gutenberg plugin is on.
910 // return;
911 // }
912 // if (function_exists('get_current_screen')) {
913 // $current_screen = get_current_screen();
914 // if (!empty($current_screen->is_block_editor)) {
915 // return;
916 // }
917 // }
918
919 global $wp_admin_bar;
920
921 if (empty($wp_admin_bar)) {
922 return false;
923 }
924
925 $admin_bar_mode = empty($admin_bar_mode['light_dark_mode']['admin_ui_mode']) ? 'light' : $admin_bar_mode['light_dark_mode']['admin_ui_mode'];
926
927 // Light/Dark Mode
928 $enable_dark_mode = $admin_bar_mode != 'light';
929
930 // Screen Option && Hide WP Links
931 $enable_screen_tab = Utils::get_user_preference('screen_options_tab');
932 $enable_help_tab = Utils::get_user_preference('adminify_help_tab');
933 // $enable_hide_wp_links = Utils::get_user_preference( 'hide_wp_links' );
934
935 // Admin Bar Position
936 if (!empty($this->options['admin_bar_position']) && $this->options['admin_bar_position'] === 'top') {
937 $admin_bar_position = 'top_bar';
938 } elseif (!empty($this->options['admin_bar_position']) && $this->options['admin_bar_position'] === 'bottom') {
939 $admin_bar_position = 'bottom_bar is-fixed-bottom';
940 } else {
941 $admin_bar_position = 'top_bar';
942 }
943
944 $current_user = wp_get_current_user();
945
946 ob_start();
947
948 // Temporarily removing Topbar
949 // <div class="wp-adminify-topbar-loader"></div>
950
951 // 17-7-23, removed opacity for Conflicting Opacity Issue
952 // <div class="wp-adminify adminify-top_bar" style="opacity: 0;">
953 ?>
954
955
956
957 <div class="wp-adminify adminify-top_bar">
958 <nav class="navbar adminify-top-navbar <?php echo esc_attr($admin_bar_position); ?>">
959
960 <?php $this->logo(); ?>
961 <div class="adminify-admin-wrapper">
962 <div class="adminify-legacy-admin">
963 <div class="adminify-hamburger navbar-burger" data-target="wp-adminify-top-adminbar">
964 <svg width="11" height="8" viewBox="0 0 11 8" fill="none" xmlns="http://www.w3.org/2000/svg">
965 <path d="M7 0H0V1H7V0Z" fill="#48455F" />
966 <path d="M7 7H0V8H7V7Z" fill="#48455F" />
967 <path d="M4.67 3.5H0V4.5H4.67V3.5Z" fill="#48455F" />
968 <path d="M9.65 7.35L6.29 4L9.65 0.65L10.35 1.35L7.71 4L10.35 6.65L9.65 7.35Z" fill="#48455F" />
969 </svg>
970 </div>
971 <?php wp_admin_bar_render(); ?>
972 </div>
973
974 <div id="wp-adminify-top-adminbar" class="navbar-menu">
975
976 <div class="navbar-end">
977 <div class="field is-grouped">
978
979 <?php echo wp_kses_post($this->dark_mode_switcher_dom()) ?>
980
981 <?php if (!empty($this->options['admin_bar_notif'])) { ?>
982 <div class="wp-adminify--top--comment">
983 <button class="comment-trigger is-clickable">
984 <div class="topbar-icon">
985 <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
986 <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)" />
987 </svg>
988 </div>
989 <span class="comment-counter">
990 <?php
991 $comments_count = wp_count_comments();
992 echo esc_html($comments_count->moderated);
993 ?>
994 </span>
995 </button>
996 </div>
997
998 <?php
999 }
1000 ?>
1001
1002 <div class="wp-adminify--preview">
1003 <a class="preview-trigger is-clickable" href="<?php echo esc_url(get_home_url()); ?>" target="_blank">
1004 <i class="dashicons dashicons-visibility"></i>
1005 </a>
1006 </div>
1007
1008 <div class="wp-adminify--user--account">
1009 <button class="user-avatar is-clickable">
1010 <div class="image is-45x45">
1011 <?php echo get_avatar($current_user->user_email, 45, '', '', ['class' => 'is-rounded']); ?>
1012 </div>
1013 <span class="user-status tag p-0 is-rounded"></span>
1014 </button>
1015
1016 <?php if (!empty($this->adminify_ui)) { ?>
1017 <div class="wp-adminify--user--wrapper">
1018 <div class="wp-adminify-user-info">
1019 <h3 class="wp-adminify-user-name">
1020 <?php echo esc_html($current_user->display_name); ?>
1021 </h3>
1022 <span><?php echo wp_kses_post(is_email($current_user->user_email)); ?></span>
1023
1024 <ul>
1025 <hr>
1026 <li>
1027 <a href="<?php echo esc_url(admin_url('profile.php')); ?>">
1028 <svg class="wp-adminify-profile-icon" width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
1029 <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>
1030 </svg>
1031 <span><?php esc_html_e('View Profile', 'adminify'); ?></span>
1032 </a>
1033 </li>
1034 <hr>
1035 <li>
1036 <a href="<?php echo esc_url(wp_logout_url(home_url())); ?>" class="wp-adminify-logout">
1037 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
1038 <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>
1039 </svg>
1040 <span><?php echo esc_html__('Log Out', 'adminify'); ?></span>
1041 </a>
1042 </li>
1043 </ul>
1044 </div>
1045 </div>
1046 <?php } ?>
1047 </div>
1048 </div>
1049 </div>
1050 </div>
1051 </div>
1052 </nav>
1053 </div>
1054
1055 <?php
1056 $output_wp_admin_bar = ob_get_clean();
1057 echo wp_kses( $output_wp_admin_bar, Utils::kses_allowed_html() );
1058 }
1059
1060 public function logo()
1061 {
1062 global $wp_admin_bar;
1063 $adminurl = get_admin_url();
1064 $homeurl = $adminurl;
1065
1066 // Light Logo
1067 // menu_layout_settings.layout_type / .menu_mode were read here
1068 // previously but the resulting locals were never used
1069 // downstream. Removed because layout_type === 'horizontal' is
1070 // a Pro-only feature whose handler now lives in
1071 // Pro/Classes/OutputCSS_Body_Pro.php.
1072 $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';
1073
1074 $light_mode = !empty($this->options['light_dark_mode']['admin_ui_light_mode']) ? $this->options['light_dark_mode']['admin_ui_light_mode'] : '';
1075
1076 $light_logo = '';
1077 $light_mini_logo = '';
1078 if ($admin_ui_logo_type == 'image_logo') {
1079 if (isset($light_mode['mini_admin_ui_light_logo']['url']) && $light_mode['mini_admin_ui_light_logo']['url']) {
1080 $light_mini_logo = $light_mode['mini_admin_ui_light_logo']['url'];
1081 } else {
1082 $light_mini_logo = PXLBSADMINIFY_ASSETS_IMAGE . 'logos/mini-logo-light.svg';
1083 }
1084
1085 // Logo Image
1086 if (!empty($light_mode['admin_ui_light_logo']['url'])) {
1087 $light_logo = $light_mode['admin_ui_light_logo']['url'];
1088 } else {
1089 $light_logo = PXLBSADMINIFY_ASSETS_IMAGE . 'logos/logo-text-light.svg';
1090 }
1091 } elseif ($admin_ui_logo_type == 'text_logo') {
1092 // Text Logo
1093 if ($this->options['light_dark_mode']['admin_ui_mode'] == 'light') {
1094 $text_logo = $light_mode['admin_ui_light_logo_text'];
1095 }
1096 }
1097
1098 // Logo Size
1099 $light_width = !empty($light_mode['light_logo_size']['width']) ? $light_mode['light_logo_size']['width'] : '120';
1100 $light_height = !empty($light_mode['light_logo_size']['height']) ? $light_mode['light_logo_size']['height'] : '32';
1101
1102 // Dark Logo
1103 $dark_mode = !empty($this->options['light_dark_mode']['admin_ui_dark_mode']) ? $this->options['light_dark_mode']['admin_ui_dark_mode'] : '';
1104
1105 $dark_logo = '';
1106 $dark_mini_logo = '';
1107 if ($admin_ui_logo_type == 'image_logo') {
1108 if (isset($dark_mode['mini_admin_ui_dark_logo']['url']) && $dark_mode['mini_admin_ui_dark_logo']['url']) {
1109 $dark_mini_logo = $dark_mode['mini_admin_ui_dark_logo']['url'];
1110 } else {
1111 $dark_mini_logo = PXLBSADMINIFY_ASSETS_IMAGE . 'logos/mini-logo-dark.svg';
1112 }
1113 // Dark Logo Image
1114 if (isset($dark_mode['admin_ui_dark_logo']['url']) && $dark_mode['admin_ui_dark_logo']['url']) {
1115 $dark_logo = $dark_mode['admin_ui_dark_logo']['url'];
1116 } else {
1117 $dark_logo = PXLBSADMINIFY_ASSETS_IMAGE . 'logos/logo-text-dark.svg';
1118 }
1119 } elseif ($admin_ui_logo_type == 'text_logo') {
1120 // Text Logo
1121 if ($this->options['light_dark_mode']['admin_ui_mode'] == 'dark') {
1122 $text_logo = $dark_mode['admin_ui_dark_logo_text'];
1123 }
1124 }
1125
1126 // Dark Logo Size
1127 $dark_width = !empty($dark_mode['dark_logo_size']['width']) ? $dark_mode['dark_logo_size']['width'] : '120';
1128 $dark_height = !empty($dark_mode['dark_logo_size']['height']) ? $dark_mode['dark_logo_size']['height'] : '32';
1129
1130 ?>
1131
1132 <div class="navbar-brand">
1133 <a class="navbar-item p-0" href="<?php echo esc_url($homeurl); ?>">
1134 <?php if ($admin_ui_logo_type == 'image_logo') { ?>
1135 <!-- Light Logo -->
1136 <img alt="<?php echo esc_attr(get_bloginfo('name')); ?>" class="logo-light" src="<?php echo esc_url($light_logo); ?>" width="<?php echo esc_attr($light_width); ?>" height="<?php echo esc_attr($light_height); ?>">
1137 <img alt="<?php echo esc_attr(get_bloginfo('name')); ?>" class="mini-logo-light" src="<?php echo esc_url($light_mini_logo); ?>" width="36" height="36">
1138 <!-- Dark Logo -->
1139 <img alt="<?php echo esc_attr(get_bloginfo('name')); ?>" class="logo-dark" src="<?php echo esc_url($dark_logo); ?>" width="<?php echo esc_attr($dark_width); ?>" height="<?php echo esc_attr($dark_height); ?>">
1140 <img alt="<?php echo esc_attr(get_bloginfo('name')); ?>" class="mini-logo-dark" src="<?php echo esc_url($dark_mini_logo); ?>" width="36" height="36">
1141 <?php } elseif ($admin_ui_logo_type == 'text_logo') { ?>
1142 <span class="wp-adminify-site-name">
1143 <?php echo esc_html($text_logo); ?>
1144 </span>
1145 <?php } ?>
1146 </a>
1147
1148 <!-- <div class="navbar-burger" data-target="wp-adminify-top-adminbar">
1149 <img src="<?php // echo PXLBSADMINIFY_ASSETS_IMAGE . 'icons/toggol.svg';
1150 ?>" alt="Toggol icon"/>
1151 </div> -->
1152
1153 </div>
1154
1155 <?php
1156 }
1157
1158
1159 /* Remove from the administration bar */
1160 public function remove_admin_bar_menus()
1161 {
1162 global $wp_admin_bar;
1163 $wp_admin_bar->remove_menu('wp-logo');
1164 $wp_admin_bar->remove_menu('site-name');
1165 $wp_admin_bar->remove_menu('updates');
1166 $wp_admin_bar->remove_menu('menu-toggle');
1167 }
1168 }
1169