File manager - Edit - /home/adiance/public_html/beta/wp-content/plugins/goodlayers-core/framework/function/admin-menu.php
Back
<?php /* * Goodlayers Admin Menu * --------------------------------------------------------------------- * This file creates the admin menu for easier recognition * --------------------------------------------------------------------- */ if( !class_exists('gdlr_core_admin_menu') ){ class gdlr_core_admin_menu{ static $sub_menu = array(); static $main_menu = array(); static function register_menu($settings){ if( !empty($settings['main-menu']) ){ // main-menu-title, page-title, menu-title, capability, menu-slug, function, icon-url, $position self::$main_menu[$settings['menu-slug']] = $settings; }else{ // parent-slug, $page-title, menu-title, capability, menu-slug, function self::$sub_menu[$settings['menu-slug']] = $settings; } } // init the action for wordpress static function init(){ // action for creating menu add_action('admin_menu', 'gdlr_core_admin_menu::register_admin_menu', 9999); // action for changing the menu active state add_filter('submenu_file', 'gdlr_core_admin_menu::submenu_file', 10, 2); } // register the menu based on elements registered to this class static function register_admin_menu(){ // wp-admin/menu.php global $menu, $submenu; // register main menu if( !empty(self::$main_menu) ){ foreach( self::$main_menu as $settings ){ add_menu_page( $settings['page-title'], $settings['menu-title'], $settings['capability'], $settings['menu-slug'], $settings['function'], $settings['icon-url'], $settings['position'] ); // overwrite menu title ( to be different than sub menu ) if( !empty($settings['main-menu-title']) ){ $menu[$settings['position']][0] = $settings['main-menu-title']; } } } // register submenu if( !empty(self::$sub_menu) ){ foreach( self::$sub_menu as $submenu_key => $settings ){ if( empty($settings['function']) ){ // unset original menu if defined $menu_exists = false; if( !empty($submenu[$settings['menu-parent-slug']]) ){ foreach( $submenu[$settings['menu-parent-slug']] as $key => $menu_item ){ if( $menu_item[2] == $settings['menu-slug'] ){ $menu_exists = true; if( !empty($settings['unset-original']) ){ unset($submenu[$settings['menu-parent-slug']][$key]); } } } }else{ foreach( $menu as $key => $menu_item ){ if( $menu_item[2] == $settings['menu-slug'] ){ $menu_exists = true; if( !empty($settings['unset-original']) ){ unset($menu[$key]); } } } } // if menu does not exists, continue if( !$menu_exists ){ continue; } // create first submenu (parent) if hasn't initiate yet if( empty($submenu[$settings['parent-slug']]) ){ $submenu[$settings['parent-slug']][] = array( self::$main_menu[$settings['parent-slug']]['menu-title'], self::$main_menu[$settings['parent-slug']]['capability'], self::$main_menu[$settings['parent-slug']]['menu-slug'], self::$main_menu[$settings['parent-slug']]['page-title'] ); } // add the submenu $submenu[$settings['parent-slug']][] = array( $settings['menu-title'], $settings['capability'], empty($settings['menu-url'])? $settings['menu-slug']: $settings['menu-url'], $settings['page-title'] ); }else{ // adding new sub menu page add_submenu_page( $settings['parent-slug'], $settings['page-title'], $settings['menu-title'], $settings['capability'], $settings['menu-slug'], $settings['function'] ); } } } } // register_admin_menu // action for changing the menu active state static function submenu_file($submenu_file, $p_file){ global $parent_file, $plugin_page, $pagenow, $self, $_wp_real_parent_file; foreach( self::$sub_menu as $settings ){ if( empty($settings['function']) && !empty(self::$main_menu[$settings['parent-slug']]) && !empty($settings['menu-url']) && $plugin_page == $settings['menu-slug'] ){ $pagenow = 'admin.php'; $_wp_real_parent_file[$parent_file] = $settings['parent-slug']; $parent_file = $self = $settings['parent-slug']; return $settings['menu-url']; } } return $submenu_file; } // submenu_file } // gdlr_core_admin_menu } // class_exists
| ver. 1.4 |
Github
|
.
| PHP 7.3.33 | Generation time: 0.08 |
proxy
|
phpinfo
|
Settings