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

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