| @@ -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('adminify_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,9 +94,9 @@ | ||
| 183 | 94 | * @return void |
| 184 | 95 | */ |
| 185 | 96 | public function load_template() |
| 186 | 97 | { |
| 187 | - Utils::load_template('Templates.php'); | |
| 98 | + adminify_load_template('Templates.php'); | |
| 188 | 99 | } |
| 189 | 100 | |
| 190 | 101 | public function capture_wp_menu($parent_file) |
| 191 | 102 | { |
| @@ -190,9 +101,9 @@ | ||
| 190 | 101 | public function capture_wp_menu($parent_file) |
| 191 | 102 | { |
| 192 | 103 | global $menu, $submenu; |
| 193 | 104 | |
| 194 | - $menu_build = pxlbsadminify_build_menu($menu, $submenu, $this->menu_settings); | |
| 105 | + $menu_build = build_menu($menu, $submenu); | |
| 195 | 106 | |
| 196 | 107 | $this->enqueue_menu($menu_build); |
| 197 | 108 | |
| 198 | 109 | return $parent_file; |
| @@ -202,41 +113,13 @@ | ||
| 202 | 113 | { |
| 203 | 114 | $outputter = function () use ($menu) { |
| 204 | 115 | |
| 205 | 116 | $current_user = wp_get_current_user(); |
| 206 | - $light_dark_mode = $this->options['light_dark_mode']; | |
| 207 | - if( !isset($light_dark_mode['admin_ui_mode']) ) { | |
| 208 | - $default_light_dark_mode = [ | |
| 209 | - 'admin_ui_mode' => 'light', | |
| 210 | - 'admin_ui_logo_type' => 'image_logo', | |
| 211 | - 'admin_ui_light_mode' => [ | |
| 212 | - 'admin_ui_light_logo_text' => 'Adminify', | |
| 213 | - 'admin_ui_light_logo_text_typo' => array_fill_keys( | |
| 214 | - ['font-family', 'font-weight', 'font-style', 'font-size', 'letter-spacing', 'color', 'type', 'unit'], '' | |
| 215 | - ) + ['unit' => 'px'], | |
| 216 | - 'admin_ui_light_logo' => array_fill_keys(['url', 'id', 'width', 'height', 'thumbnail', 'alt', 'title', 'description'], ''), | |
| 217 | - 'light_logo_size' => ['width' => 120, 'height' => 32, 'unit' => 'px'], | |
| 218 | - 'mini_admin_ui_light_logo' => array_fill_keys(['url', 'id', 'width', 'height', 'thumbnail', 'alt', 'title', 'description'], ''), | |
| 219 | - ], | |
| 220 | - 'admin_ui_dark_mode' => [ | |
| 221 | - 'admin_ui_dark_logo_text' => 'Adminify', | |
| 222 | - 'admin_ui_dark_logo_text_typo' => array_fill_keys( | |
| 223 | - ['font-family', 'font-weight', 'font-style', 'font-size', 'letter-spacing', 'color', 'type', 'unit'], '' | |
| 224 | - ) + ['unit' => 'px'], | |
| 225 | - 'admin_ui_dark_logo' => array_fill_keys(['url', 'id', 'width', 'height', 'thumbnail', 'alt', 'title', 'description'], ''), | |
| 226 | - 'dark_logo_size' => ['width' => 150, 'height' => 45, 'unit' => 'px'], | |
| 227 | - 'mini_admin_ui_dark_logo' => array_fill_keys(['url', 'id', 'width', 'height', 'thumbnail', 'alt', 'title', 'description'], ''), | |
| 228 | - 'schedule_dark_mode' => array_fill_keys(['enable_schedule_dark_mode', 'schedule_dark_mode_type', 'schedule_dark_mode_start_time', 'schedule_dark_mode_end_time'], ''), | |
| 229 | - ], | |
| 230 | - ]; | |
| 231 | - $light_dark_mode = array_merge($default_light_dark_mode, $light_dark_mode); | |
| 232 | - }else{ | |
| 233 | - $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); | |
| 234 | - } | |
| 117 | + | |
| 235 | 118 | $menu_settings = [ |
| 236 | 119 | 'menu' => $menu, |
| 237 | 120 | 'admin_bar_dark_light_btn' => $this->options['admin_bar_dark_light_btn'], |
| 238 | - 'light_dark_mode' => $light_dark_mode , | |
| 121 | + 'light_dark_mode' => $this->options['light_dark_mode'], | |
| 239 | 122 | 'menu_layout_settings' => $this->options['menu_layout_settings'], |
| 240 | 123 | 'user_info' => [ |
| 241 | 124 | 'img' => get_avatar($current_user->user_email, 72, '', ''), |
| 242 | 125 | 'display_name' => esc_html($current_user->display_name), |
| @@ -243,13 +126,13 @@ | ||
| 243 | 126 | 'profile_url' => esc_url(admin_url('profile.php')), |
| 244 | 127 | 'username' => esc_html($current_user->user_login), |
| 245 | 128 | 'email' => wp_kses_post(is_email($current_user->user_email)), |
| 246 | 129 | ], |
| 247 | - 'image_path' => PXLBSADMINIFY_ASSETS_IMAGE, | |
| 248 | - '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 | |
| 249 | 132 | ]; |
| 250 | 133 | |
| 251 | - $data = "var frame_adminify_menu=" . wp_json_encode($menu_settings); | |
| 134 | + $data = "var frame_adminify_menu=" . json_encode($menu_settings); | |
| 252 | 135 | wp_print_inline_script_tag($data, ["id" => "frame_adminify_menu"]); |
| 253 | 136 | }; |
| 254 | 137 | |
| 255 | 138 | add_action("admin_footer", $outputter, 0); |
| @@ -259,28 +142,28 @@ | ||
| 259 | 142 | |
| 260 | 143 | public function get_admin_bar_menu_list() |
| 261 | 144 | { |
| 262 | 145 | global $wp_admin_bar; |
| 146 | + | |
| 263 | 147 | $admin_bar_data = $this->nodes_to_array($wp_admin_bar->get_nodes()); |
| 264 | 148 | $admin_bar_data_nested = $this->format_to_nested($admin_bar_data); |
| 265 | 149 | |
| 150 | + | |
| 266 | 151 | $admin_bar_menu_data = []; |
| 267 | - | |
| 268 | - // Admin Bar Exits | |
| 269 | - 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')) { | |
| 270 | 154 | $admin_bar_items = get_option('_jltadminbar_settings'); |
| 155 | + | |
| 156 | + if( empty($admin_bar_items) ) return; | |
| 271 | 157 | |
| 272 | - // Only build the customized admin bar when settings exist. | |
| 273 | - // Otherwise fall through so the default admin bar data is still | |
| 274 | - // printed and `adminify_admin_bar_data` is always defined. | |
| 275 | - if ( !empty($admin_bar_items) ) { | |
| 276 | - | |
| 277 | 158 | $existing_admin_bar = !empty($admin_bar_items['existing_admin_bar']) ? $admin_bar_items['existing_admin_bar'] : ''; |
| 278 | 159 | $saved_admin_bar = !empty($admin_bar_items['saved_admin_bar']) ? $admin_bar_items['saved_admin_bar'] : []; |
| 279 | 160 | |
| 280 | 161 | $parsed_admin_bar_backend = empty($saved_admin_bar) ? $existing_admin_bar : $this->parse_menu_items($saved_admin_bar, $existing_admin_bar, 'backend'); |
| 162 | + | |
| 281 | 163 | $nested_admin_bar = $this->format_to_nested($parsed_admin_bar_backend); |
| 282 | 164 | $formated_admin_menu = $this->associative_to_index_array($nested_admin_bar); |
| 165 | + | |
| 283 | 166 | $remove_admin_menu = []; |
| 284 | 167 | foreach ($formated_admin_menu as $key => $value) { |
| 285 | 168 | if($value['id'] === 'wp-logo' || $value['id'] === 'site-name'|| $value['id'] === 'updates'|| $value['id'] === 'menu-toggle'|| $value['id'] === 'comments') { |
| 286 | 169 | continue; |
| @@ -286,19 +169,10 @@ | ||
| 286 | 169 | continue; |
| 287 | 170 | } |
| 288 | 171 | $remove_admin_menu[$key] = $value; |
| 289 | 172 | } |
| 290 | - | |
| 173 | + | |
| 291 | 174 | $admin_bar_menu_data = $this->nodes_to_array_for_admin_bar($remove_admin_menu); |
| 292 | - foreach($admin_bar_menu_data as $key => $value){ | |
| 293 | - if( array_key_exists($value['id'],$admin_bar_data_nested)){ | |
| 294 | - $value['href'] = $admin_bar_data_nested[$value['id']]['href']; | |
| 295 | - $value = $this->return_original_admin_bar_item_url($value, $admin_bar_data_nested[$value['id']]); | |
| 296 | - } | |
| 297 | - $admin_bar_menu_data[$key] = $value; | |
| 298 | - } | |
| 299 | - | |
| 300 | - } // end if ( !empty($admin_bar_items) ) | |
| 301 | 175 | } |
| 302 | 176 | |
| 303 | 177 | unset($admin_bar_data_nested['wp-logo']); |
| 304 | 178 | unset($admin_bar_data_nested['site-name']); |
| @@ -305,61 +179,31 @@ | ||
| 305 | 179 | unset($admin_bar_data_nested['updates']); |
| 306 | 180 | unset($admin_bar_data_nested['menu-toggle']); |
| 307 | 181 | unset($admin_bar_data_nested['comments']); |
| 308 | 182 | |
| 309 | - $admin_bar_data_nested = pxlbsadminify_replaceAmpersandInHref($admin_bar_data_nested); | |
| 310 | 183 | |
| 311 | - // WP Adminify Pricing/Upgrade - open in new tab | |
| 312 | - if (isset($admin_bar_data_nested['wp-adminify-settings']['submenu'])) { | |
| 313 | - foreach ($admin_bar_data_nested['wp-adminify-settings']['submenu'] as $key => &$bar_item) { | |
| 314 | - if (isset($bar_item['href']) && strpos($bar_item['href'], 'wp-adminify-settings-pricing') !== false) { | |
| 315 | - $bar_item['href'] = 'https://wpadminify.com/pricing'; | |
| 316 | - $bar_item['meta']['target'] = '_blank'; | |
| 317 | - break; | |
| 318 | - } | |
| 319 | - } | |
| 320 | - unset($bar_item); | |
| 321 | - } | |
| 322 | - | |
| 323 | 184 | $outputter = function () use ($admin_bar_data_nested, $admin_bar_menu_data) { |
| 324 | 185 | $extra_data = [ |
| 325 | 186 | 'data' => !empty($admin_bar_menu_data) ? $admin_bar_menu_data : array_values($admin_bar_data_nested), |
| 326 | 187 | 'logout_url' => wp_logout_url(home_url('/')), |
| 327 | - // 'site_url' => site_url('/'), | |
| 328 | - 'site_url' => home_url(), | |
| 188 | + 'site_url' => site_url(), | |
| 329 | 189 | 'admin_url' => admin_url(), |
| 330 | 190 | 'search' => $this->options['admin_bar_search'], |
| 331 | 191 | 'notification' => $this->options['admin_bar_notif'], |
| 332 | 192 | 'light_dark_switcher' => $this->options['admin_bar_dark_light_btn'], |
| 333 | 193 | ]; |
| 334 | - $data = "var adminify_admin_bar_data=" . wp_json_encode($extra_data); | |
| 194 | + $data = "var adminify_admin_bar_data=" . json_encode($extra_data); | |
| 335 | 195 | wp_print_inline_script_tag($data, ["id" => "adminify_admin_bar_data"]); |
| 336 | 196 | }; |
| 337 | 197 | |
| 338 | 198 | add_action("admin_footer", $outputter, 0); |
| 339 | 199 | add_action("wp_footer", $outputter, 0); |
| 200 | + | |
| 340 | 201 | return $admin_bar_data; |
| 341 | 202 | } |
| 342 | 203 | |
| 343 | - public function return_original_admin_bar_item_url( $value ,$admin_bar_data_nested ){ | |
| 344 | - if( array_key_exists('submenu',$value) ){ | |
| 345 | - foreach($value['submenu'] as $submenuKey => $submenuItem){ | |
| 346 | - $submenuId = $submenuItem['id'] ?? null; | |
| 347 | - if( $submenuId && isset($admin_bar_data_nested['submenu'][$submenuId]) ){ | |
| 348 | - $submenuItem = $this->return_original_admin_bar_item_url($submenuItem, $admin_bar_data_nested['submenu'][$submenuId]); | |
| 349 | - $submenuItem['href'] = $admin_bar_data_nested['submenu'][$submenuId]['href'] ?? $submenuItem['href']; | |
| 350 | - } | |
| 351 | - $value['submenu'][$submenuKey] = $submenuItem; | |
| 352 | - } | |
| 353 | - } | |
| 354 | - return $value; | |
| 355 | - } | |
| 356 | - | |
| 357 | 204 | public function adminify_adminbar_localize_script(){ |
| 358 | - // get_admin_bar_menu_list() returns an array and prints its script via | |
| 359 | - // wp_print_inline_script_tag() on the footer hook, so call it for that side effect | |
| 360 | - // rather than echoing the return value. | |
| 361 | - $this->get_admin_bar_menu_list(); | |
| 205 | + echo $this->get_admin_bar_menu_list(); | |
| 362 | 206 | } |
| 363 | 207 | |
| 364 | 208 | /** |
| 365 | 209 | * Turn admin bar items object to array |
| @@ -424,9 +268,9 @@ | ||
| 424 | 268 | 'submenu' => $this->nodes_to_array_for_admin_bar($node['submenu']), |
| 425 | 269 | // 'hidden_for' => '', |
| 426 | 270 | // 'newly_created' => 0, |
| 427 | 271 | 'menu_level' => 0, |
| 428 | - 'menu_status' => !empty( $node['menu_status'] ) ? true : false, | |
| 272 | + 'menu_status' => true, | |
| 429 | 273 | ); |
| 430 | 274 | } |
| 431 | 275 | |
| 432 | 276 | return array_values($admin_bar_array); |
| @@ -474,28 +318,8 @@ | ||
| 474 | 318 | $nested_array = []; |
| 475 | 319 | |
| 476 | 320 | // Third, get the parent menu items. |
| 477 | 321 | foreach ($flat_array as $menu_id => $menu) { |
| 478 | - | |
| 479 | - if( !empty($menu['hidden_for']) ) { | |
| 480 | - $disable_for = []; | |
| 481 | - | |
| 482 | - foreach($menu['hidden_for'] as $hidden_key => $hidden_user){ | |
| 483 | - $disable_for[$hidden_key] = strtolower($hidden_user['value']); | |
| 484 | - | |
| 485 | - } | |
| 486 | - | |
| 487 | - if (\PXLBSAdminify\Inc\Utils::restrict_for($disable_for)) { | |
| 488 | - unset($flat_array[$menu_id]); | |
| 489 | - continue; | |
| 490 | - } | |
| 491 | - } | |
| 492 | - | |
| 493 | - if ( isset($menu['parent']) && $menu['parent'] && !isset($flat_array[$menu['parent']]) ) { | |
| 494 | - unset($flat_array[$menu_id]); | |
| 495 | - continue; | |
| 496 | - } | |
| 497 | - | |
| 498 | 322 | if (!isset($menu['parent']) || !$menu['parent'] || !isset($flat_array[$menu['parent']])) { |
| 499 | 323 | $nested_array[$menu_id] = $menu; |
| 500 | 324 | |
| 501 | 325 | $additional = array( |