PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.0.1.2
Adminify – White Label, Admin Menu Editor, Login Customizer v4.0.1.2
4.3.2 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 All 165 releases
← All changes | Inc/Admin/Frames/Admin.php +30 -212 4.2.21 → 4.0.1.2 View file →
@@ -1,11 +1,10 @@
1 1 <?php
2 2
3 -namespace PXLBSAdminify\Inc\Admin\Frames;
3 +namespace WPAdminify\Inc\Admin\Frames;
4 4
5 -use PXLBSAdminify\Inc\Utils;
6 -use PXLBSAdminify\Inc\Modules\MenuEditor\MenuEditorOptions;
7 -use PXLBSAdminify\Inc\Admin\AdminSettings;
5 +use WPAdminify\Inc\Utils;
6 +use WPAdminify\Inc\Admin\AdminSettings;
8 7
9 8 // no direct access allowed
10 9 if (!defined('ABSPATH')) {
11 10 exit;
@@ -21,9 +20,8 @@
21 20 class Admin
22 21 {
23 22
24 23 public $options;
25 - public $menu_settings;
26 24
27 25 /**
28 26 * Constructor for the class.
29 27 *
@@ -33,9 +31,8 @@
33 31 */
34 32 public function __construct()
35 33 {
36 34 $this->options = (array) AdminSettings::get_instance()->get();
37 - $this->menu_settings = (new MenuEditorOptions())->get();
38 35 $this->init_hooks();
39 36 }
40 37
41 38 /**
@@ -65,106 +62,20 @@
65 62 * @return void
66 63 */
67 64 public function load_scripts()
68 65 {
69 - wp_enqueue_style('frame-adminify--admin', PXLBSADMINIFY_ASSETS . 'admin/css/admin' . Utils::assets_ext('.css'), [], PXLBSADMINIFY_VER);
70 - wp_enqueue_script('frame-adminify--admin', PXLBSADMINIFY_ASSETS . 'admin/js/frame' . Utils::assets_ext('.js'), ['jquery', 'react'], PXLBSADMINIFY_VER, true);
66 + wp_enqueue_style('frame-adminify--admin', WP_ADMINIFY_ASSETS . 'admin/css/admin' . Utils::assets_ext('.css'), [], WP_ADMINIFY_VER);
67 + wp_enqueue_script('frame-adminify--admin', WP_ADMINIFY_ASSETS . 'admin/js/frame' . Utils::assets_ext('.js'), ['jquery', 'react'], WP_ADMINIFY_VER, true);
71 68
69 +
70 +
72 71 $localize_array_data = [
73 72 'ajax_url' => admin_url('admin-ajax.php'),
74 - 'security_nonce' => wp_create_nonce('pxlbsadminify_frame_nonce')
73 + 'security_nonce' => wp_create_nonce('adminify_nonce'),
75 74 ];
76 -
77 - wp_localize_script( 'frame-adminify--admin', 'PXLBSADMINIFY_FRAME', $localize_array_data );
78 - wp_localize_script( 'frame-adminify--admin', 'PXLBSADMINIFY_FRAME_NOT_ALLOWED_URLS', self::get_not_allowed_urls() );
75 + wp_localize_script( 'frame-adminify--admin', 'WPAdminify', $localize_array_data );
79 76 }
80 77
81 - public static function get_not_allowed_urls() {
82 -
83 - $not_allowed_urls = [
84 - '/wp-admin/customize.php',
85 - '/wp-admin/site-editor.php',
86 - [
87 - 'url' => '*',
88 - 'query_params' => ['fl_builder', 'fl_builder_ui']
89 - ],
90 - [
91 - 'url' => '*',
92 - 'query_params' => ['action' => 'elementor']
93 - ],
94 - [
95 - 'url' => '*',
96 - 'query_params' => ['action' => 'architect'] // Added for thrive page builder
97 - ],
98 - [
99 - 'url' => '*',
100 - 'query_params' => ['bricks' => 'true']
101 - ],
102 - [
103 - 'url' => '*',
104 - 'query_params' => ['ct_builder' => 'true', 'oxygen_iframe!']
105 - ],
106 - [
107 - 'url' => '*',
108 - 'query_params' => ['page' => 'latepoint'] // added for latepoint
109 - ],
110 - [
111 - 'url' => '*',
112 - 'query_params' => ['page' => 'sbi-setup']
113 - ],
114 - [
115 - 'url' => '*',
116 - 'query_params' => ['page' => 'sbtt']
117 - ],
118 - [
119 - 'url' => '*',
120 - 'query_params' => ['page' => 'cff-setup']
121 - ],
122 - [
123 - 'url' => '*',
124 - 'query_params' => ['page' => 'rank-math-registration']
125 - ],
126 - [
127 - 'url' => '*',
128 - 'query_params' => ['page' => 'googlesitekit-splash']
129 - ],
130 - [
131 - 'url' => '*',
132 - 'query_params' => ['page' => 'cff-feed-builder']
133 - ],
134 - [
135 - 'url' => '*',
136 - 'query_params' => ['page' => 'sbi-feed-builder']
137 - ],
138 - [
139 - 'url' => '*',
140 - 'query_params' => ['page' => 'sbr']
141 - ],
142 - [
143 - 'url' => '*',
144 - 'query_params' => ['page' => 'ctf-feed-builder']
145 - ],
146 - [
147 - 'url' => '*',
148 - 'query_params' => ['page' => 'sby-feed-builder']
149 - ],
150 - [
151 - 'url' => '*',
152 - 'query_params' => ['page' => 'suretriggers']
153 - ],
154 - // [
155 - // 'url' => '/wp-admin/post-new.php',
156 - // 'post_type' => ['post', 'page']
157 - // ],
158 - // [
159 - // 'url' => '/wp-admin/post.php',
160 - // 'post_type' => ['post', 'page']
161 - // ]
162 - ];
163 -
164 - return apply_filters( 'pxlbsadminify_frame_not_allowed_urls', $not_allowed_urls );
165 - }
166 -
167 78 /**
168 79 * Adds the 'frame-adminify-app="true"' attribute to the given attribute string.
169 80 *
170 81 * @param string $attr The original attribute string.
@@ -183,15 +94,9 @@
183 94 * @return void
184 95 */
185 96 public function load_template()
186 97 {
187 - // async-upload.php & friends fire admin_init but answer with a raw payload,
188 - // so the frame markup would be read as part of the response.
189 - if ( ! Utils::is_admin_page_request() ) {
190 - return;
191 - }
192 -
193 - Utils::load_template('Templates.php');
98 + adminify_load_template('Templates.php');
194 99 }
195 100
196 101 public function capture_wp_menu($parent_file)
197 102 {
@@ -196,9 +101,9 @@
196 101 public function capture_wp_menu($parent_file)
197 102 {
198 103 global $menu, $submenu;
199 104
200 - $menu_build = pxlbsadminify_build_menu($menu, $submenu, $this->menu_settings);
105 + $menu_build = build_menu($menu, $submenu);
201 106
202 107 $this->enqueue_menu($menu_build);
203 108
204 109 return $parent_file;
@@ -208,41 +113,13 @@
208 113 {
209 114 $outputter = function () use ($menu) {
210 115
211 116 $current_user = wp_get_current_user();
212 - $light_dark_mode = $this->options['light_dark_mode'];
213 - if( !isset($light_dark_mode['admin_ui_mode']) ) {
214 - $default_light_dark_mode = [
215 - 'admin_ui_mode' => 'light',
216 - 'admin_ui_logo_type' => 'image_logo',
217 - 'admin_ui_light_mode' => [
218 - 'admin_ui_light_logo_text' => 'Adminify',
219 - 'admin_ui_light_logo_text_typo' => array_fill_keys(
220 - ['font-family', 'font-weight', 'font-style', 'font-size', 'letter-spacing', 'color', 'type', 'unit'], ''
221 - ) + ['unit' => 'px'],
222 - 'admin_ui_light_logo' => array_fill_keys(['url', 'id', 'width', 'height', 'thumbnail', 'alt', 'title', 'description'], ''),
223 - 'light_logo_size' => ['width' => 120, 'height' => 32, 'unit' => 'px'],
224 - 'mini_admin_ui_light_logo' => array_fill_keys(['url', 'id', 'width', 'height', 'thumbnail', 'alt', 'title', 'description'], ''),
225 - ],
226 - 'admin_ui_dark_mode' => [
227 - 'admin_ui_dark_logo_text' => 'Adminify',
228 - 'admin_ui_dark_logo_text_typo' => array_fill_keys(
229 - ['font-family', 'font-weight', 'font-style', 'font-size', 'letter-spacing', 'color', 'type', 'unit'], ''
230 - ) + ['unit' => 'px'],
231 - 'admin_ui_dark_logo' => array_fill_keys(['url', 'id', 'width', 'height', 'thumbnail', 'alt', 'title', 'description'], ''),
232 - 'dark_logo_size' => ['width' => 150, 'height' => 45, 'unit' => 'px'],
233 - 'mini_admin_ui_dark_logo' => array_fill_keys(['url', 'id', 'width', 'height', 'thumbnail', 'alt', 'title', 'description'], ''),
234 - 'schedule_dark_mode' => array_fill_keys(['enable_schedule_dark_mode', 'schedule_dark_mode_type', 'schedule_dark_mode_start_time', 'schedule_dark_mode_end_time'], ''),
235 - ],
236 - ];
237 - $light_dark_mode = array_merge($default_light_dark_mode, $light_dark_mode);
238 - }else{
239 - $light_dark_mode['admin_ui_mode'] = empty(get_user_meta(get_current_user_id(), 'color_mode', true)) ? $light_dark_mode['admin_ui_mode'] : get_user_meta(get_current_user_id(), 'color_mode', true);
240 - }
117 +
241 118 $menu_settings = [
242 119 'menu' => $menu,
243 120 'admin_bar_dark_light_btn' => $this->options['admin_bar_dark_light_btn'],
244 - 'light_dark_mode' => $light_dark_mode ,
121 + 'light_dark_mode' => $this->options['light_dark_mode'],
245 122 'menu_layout_settings' => $this->options['menu_layout_settings'],
246 123 'user_info' => [
247 124 'img' => get_avatar($current_user->user_email, 72, '', ''),
248 125 'display_name' => esc_html($current_user->display_name),
@@ -249,13 +126,13 @@
249 126 'profile_url' => esc_url(admin_url('profile.php')),
250 127 'username' => esc_html($current_user->user_login),
251 128 'email' => wp_kses_post(is_email($current_user->user_email)),
252 129 ],
253 - 'image_path' => PXLBSADMINIFY_ASSETS_IMAGE,
254 - 'is_pro' => (class_exists('\\PXLBSAdminify\\Pro\\Adminify_Pro') && !empty(\PXLBSAdminify\Pro\Adminify_Pro::is_premium())) ? true : false
130 + 'image_path' => WP_ADMINIFY_ASSETS_IMAGE,
131 + 'is_pro' => (class_exists('\\WPAdminify\\Pro\\Adminify_Pro') && !empty(\WPAdminify\Pro\Adminify_Pro::is_premium())) ? true : false
255 132 ];
256 133
257 - $data = "var frame_adminify_menu=" . wp_json_encode($menu_settings);
134 + $data = "var frame_adminify_menu=" . json_encode($menu_settings);
258 135 wp_print_inline_script_tag($data, ["id" => "frame_adminify_menu"]);
259 136 };
260 137
261 138 add_action("admin_footer", $outputter, 0);
@@ -265,28 +142,28 @@
265 142
266 143 public function get_admin_bar_menu_list()
267 144 {
268 145 global $wp_admin_bar;
146 +
269 147 $admin_bar_data = $this->nodes_to_array($wp_admin_bar->get_nodes());
270 148 $admin_bar_data_nested = $this->format_to_nested($admin_bar_data);
271 149
150 +
272 151 $admin_bar_menu_data = [];
273 -
274 - // Admin Bar Exits
275 - if ( Utils::is_plugin_active('admin-bar/admin-bar.php') ) {
152 + // Admin Bar Exits
153 + if(Utils::is_plugin_active('admin-bar/admin-bar.php')) {
276 154 $admin_bar_items = get_option('_jltadminbar_settings');
155 +
156 + if( empty($admin_bar_items) ) return;
277 157
278 - // Only build the customized admin bar when settings exist.
279 - // Otherwise fall through so the default admin bar data is still
280 - // printed and `adminify_admin_bar_data` is always defined.
281 - if ( !empty($admin_bar_items) ) {
282 -
283 158 $existing_admin_bar = !empty($admin_bar_items['existing_admin_bar']) ? $admin_bar_items['existing_admin_bar'] : '';
284 159 $saved_admin_bar = !empty($admin_bar_items['saved_admin_bar']) ? $admin_bar_items['saved_admin_bar'] : [];
285 160
286 161 $parsed_admin_bar_backend = empty($saved_admin_bar) ? $existing_admin_bar : $this->parse_menu_items($saved_admin_bar, $existing_admin_bar, 'backend');
162 +
287 163 $nested_admin_bar = $this->format_to_nested($parsed_admin_bar_backend);
288 164 $formated_admin_menu = $this->associative_to_index_array($nested_admin_bar);
165 +
289 166 $remove_admin_menu = [];
290 167 foreach ($formated_admin_menu as $key => $value) {
291 168 if($value['id'] === 'wp-logo' || $value['id'] === 'site-name'|| $value['id'] === 'updates'|| $value['id'] === 'menu-toggle'|| $value['id'] === 'comments') {
292 169 continue;
@@ -292,19 +169,10 @@
292 169 continue;
293 170 }
294 171 $remove_admin_menu[$key] = $value;
295 172 }
296 -
173 +
297 174 $admin_bar_menu_data = $this->nodes_to_array_for_admin_bar($remove_admin_menu);
298 - foreach($admin_bar_menu_data as $key => $value){
299 - if( array_key_exists($value['id'],$admin_bar_data_nested)){
300 - $value['href'] = $admin_bar_data_nested[$value['id']]['href'];
301 - $value = $this->return_original_admin_bar_item_url($value, $admin_bar_data_nested[$value['id']]);
302 - }
303 - $admin_bar_menu_data[$key] = $value;
304 - }
305 -
306 - } // end if ( !empty($admin_bar_items) )
307 175 }
308 176
309 177 unset($admin_bar_data_nested['wp-logo']);
310 178 unset($admin_bar_data_nested['site-name']);
@@ -311,61 +179,31 @@
311 179 unset($admin_bar_data_nested['updates']);
312 180 unset($admin_bar_data_nested['menu-toggle']);
313 181 unset($admin_bar_data_nested['comments']);
314 182
315 - $admin_bar_data_nested = pxlbsadminify_replaceAmpersandInHref($admin_bar_data_nested);
316 183
317 - // WP Adminify Pricing/Upgrade - open in new tab
318 - if (isset($admin_bar_data_nested['wp-adminify-settings']['submenu'])) {
319 - foreach ($admin_bar_data_nested['wp-adminify-settings']['submenu'] as $key => &$bar_item) {
320 - if (isset($bar_item['href']) && strpos($bar_item['href'], 'wp-adminify-settings-pricing') !== false) {
321 - $bar_item['href'] = 'https://wpadminify.com/pricing';
322 - $bar_item['meta']['target'] = '_blank';
323 - break;
324 - }
325 - }
326 - unset($bar_item);
327 - }
328 -
329 184 $outputter = function () use ($admin_bar_data_nested, $admin_bar_menu_data) {
330 185 $extra_data = [
331 186 'data' => !empty($admin_bar_menu_data) ? $admin_bar_menu_data : array_values($admin_bar_data_nested),
332 187 'logout_url' => wp_logout_url(home_url('/')),
333 - // 'site_url' => site_url('/'),
334 - 'site_url' => home_url(),
188 + 'site_url' => site_url(),
335 189 'admin_url' => admin_url(),
336 190 'search' => $this->options['admin_bar_search'],
337 191 'notification' => $this->options['admin_bar_notif'],
338 192 'light_dark_switcher' => $this->options['admin_bar_dark_light_btn'],
339 193 ];
340 - $data = "var adminify_admin_bar_data=" . wp_json_encode($extra_data);
194 + $data = "var adminify_admin_bar_data=" . json_encode($extra_data);
341 195 wp_print_inline_script_tag($data, ["id" => "adminify_admin_bar_data"]);
342 196 };
343 197
344 198 add_action("admin_footer", $outputter, 0);
345 199 add_action("wp_footer", $outputter, 0);
200 +
346 201 return $admin_bar_data;
347 202 }
348 203
349 - public function return_original_admin_bar_item_url( $value ,$admin_bar_data_nested ){
350 - if( array_key_exists('submenu',$value) ){
351 - foreach($value['submenu'] as $submenuKey => $submenuItem){
352 - $submenuId = $submenuItem['id'] ?? null;
353 - if( $submenuId && isset($admin_bar_data_nested['submenu'][$submenuId]) ){
354 - $submenuItem = $this->return_original_admin_bar_item_url($submenuItem, $admin_bar_data_nested['submenu'][$submenuId]);
355 - $submenuItem['href'] = $admin_bar_data_nested['submenu'][$submenuId]['href'] ?? $submenuItem['href'];
356 - }
357 - $value['submenu'][$submenuKey] = $submenuItem;
358 - }
359 - }
360 - return $value;
361 - }
362 -
363 204 public function adminify_adminbar_localize_script(){
364 - // get_admin_bar_menu_list() returns an array and prints its script via
365 - // wp_print_inline_script_tag() on the footer hook, so call it for that side effect
366 - // rather than echoing the return value.
367 - $this->get_admin_bar_menu_list();
205 + echo $this->get_admin_bar_menu_list();
368 206 }
369 207
370 208 /**
371 209 * Turn admin bar items object to array
@@ -430,9 +268,9 @@
430 268 'submenu' => $this->nodes_to_array_for_admin_bar($node['submenu']),
431 269 // 'hidden_for' => '',
432 270 // 'newly_created' => 0,
433 271 'menu_level' => 0,
434 - 'menu_status' => !empty( $node['menu_status'] ) ? true : false,
272 + 'menu_status' => true,
435 273 );
436 274 }
437 275
438 276 return array_values($admin_bar_array);
@@ -480,28 +318,8 @@
480 318 $nested_array = [];
481 319
482 320 // Third, get the parent menu items.
483 321 foreach ($flat_array as $menu_id => $menu) {
484 -
485 - if( !empty($menu['hidden_for']) ) {
486 - $disable_for = [];
487 -
488 - foreach($menu['hidden_for'] as $hidden_key => $hidden_user){
489 - $disable_for[$hidden_key] = strtolower($hidden_user['value']);
490 -
491 - }
492 -
493 - if (\PXLBSAdminify\Inc\Utils::restrict_for($disable_for)) {
494 - unset($flat_array[$menu_id]);
495 - continue;
496 - }
497 - }
498 -
499 - if ( isset($menu['parent']) && $menu['parent'] && !isset($flat_array[$menu['parent']]) ) {
500 - unset($flat_array[$menu_id]);
501 - continue;
502 - }
503 -
504 322 if (!isset($menu['parent']) || !$menu['parent'] || !isset($flat_array[$menu['parent']])) {
505 323 $nested_array[$menu_id] = $menu;
506 324
507 325 $additional = array(