File manager - Edit - /home/premiey/www/wp-includes/images/media/menu.tar
Back
admin-menu-manager.php 0000666 00000005032 15165557640 0010741 0 ustar 00 <?php namespace Elementor\Core\Admin\Menu; use Elementor\Core\Admin\Menu\Interfaces\Admin_Menu_Item; use Elementor\Core\Admin\Menu\Interfaces\Admin_Menu_Item_With_Page; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } class Admin_Menu_Manager { /** * @var Admin_Menu_Item[] */ private $items = []; public function register( $item_slug, Admin_Menu_Item $item ) { $this->items[ $item_slug ] = $item; } public function unregister( $item_slug ) { unset( $this->items[ $item_slug ] ); } public function get( $item_slug ) { if ( empty( $this->items[ $item_slug ] ) ) { return null; } return $this->items[ $item_slug ]; } public function get_all() { return $this->items; } public function register_actions() { add_action( 'admin_menu', function () { $this->register_wp_menus(); }, 20 ); add_action( 'admin_head', function () { $this->hide_invisible_menus(); } ); } private function register_wp_menus() { do_action( 'elementor/admin/menu/register', $this ); $hooks = []; foreach ( $this->get_all() as $item_slug => $item ) { $is_top_level = empty( $item->get_parent_slug() ); if ( $is_top_level ) { $hooks[ $item_slug ] = $this->register_top_level_menu( $item_slug, $item ); } else { $hooks[ $item_slug ] = $this->register_sub_menu( $item_slug, $item ); } } do_action( 'elementor/admin/menu/after_register', $this, $hooks ); } private function register_top_level_menu( $item_slug, Admin_Menu_Item $item ) { $has_page = ( $item instanceof Admin_Menu_Item_With_Page ); $page_title = $has_page ? $item->get_page_title() : ''; $callback = $has_page ? [ $item, 'render' ] : ''; return add_menu_page( $page_title, $item->get_label(), $item->get_capability(), $item_slug, $callback ); } private function register_sub_menu( $item_slug, Admin_Menu_Item $item ) { $has_page = ( $item instanceof Admin_Menu_Item_With_Page ); $page_title = $has_page ? $item->get_page_title() : ''; $callback = $has_page ? [ $item, 'render' ] : ''; return add_submenu_page( $item->get_parent_slug(), $page_title, $item->get_label(), $item->get_capability(), $item_slug, $callback ); } private function hide_invisible_menus() { foreach ( $this->get_all() as $item_slug => $item ) { if ( $item->is_visible() ) { continue; } $is_top_level = empty( $item->get_parent_slug() ); if ( $is_top_level ) { remove_menu_page( $item_slug ); } else { remove_submenu_page( $item->get_parent_slug(), $item_slug ); } } } } interfaces/admin-menu-item.php 0000666 00000000444 15165557640 0012412 0 ustar 00 <?php namespace Elementor\Core\Admin\Menu\Interfaces; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } interface Admin_Menu_Item { public function get_capability(); public function get_label(); public function get_parent_slug(); public function is_visible(); } interfaces/admin-menu-item-with-page.php 0000666 00000000376 15165557640 0014301 0 ustar 00 <?php namespace Elementor\Core\Admin\Menu\Interfaces; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } interface Admin_Menu_Item_With_Page extends Admin_Menu_Item { public function get_page_title(); public function render(); } base.php 0000666 00000007040 15165557640 0006212 0 ustar 00 <?php namespace Elementor\Core\Admin\Menu; use Elementor\Core\Base\Base_Object; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } abstract class Base extends Base_Object { private $args; private $options; private $submenus = []; abstract protected function get_init_args(); public function __construct() { $this->init_args(); $this->init_options(); add_action( 'admin_menu', function() { $this->register(); } ); if ( $this->options['separator'] ) { add_action( 'admin_menu', function() { $this->add_menu_separator(); } ); add_filter( 'custom_menu_order', '__return_true' ); add_filter( 'menu_order', function( $menu_order ) { return $this->rearrange_menu_separator( $menu_order ); } ); } } public function get_args( $arg = null ) { return self::get_items( $this->args, $arg ); } public function add_submenu( $submenu_args ) { $default_submenu_args = [ 'page_title' => '', 'capability' => $this->args['capability'], 'function' => null, 'index' => null, ]; $this->submenus[] = array_merge( $default_submenu_args, $submenu_args ); } protected function get_init_options() { return []; } protected function register_default_submenus() {} protected function register() { $args = $this->args; add_menu_page( $args['page_title'], $args['menu_title'], $args['capability'], $args['menu_slug'], $args['function'], $args['icon_url'], $args['position'] ); $this->register_default_submenus(); do_action( 'elementor/admin/menu_registered/' . $args['menu_slug'], $this ); usort( $this->submenus, function( $a, $b ) { return $a['index'] - $b['index']; } ); foreach ( $this->submenus as $index => $submenu_item ) { $submenu_args = [ $args['menu_slug'], $submenu_item['page_title'], $submenu_item['menu_title'], $submenu_item['capability'], $submenu_item['menu_slug'], $submenu_item['function'], ]; if ( 0 === $submenu_item['index'] ) { $submenu_args[] = 0; } add_submenu_page( ...$submenu_args ); if ( ! empty( $submenu_item['class'] ) ) { global $submenu; $submenu[ $args['menu_slug'] ][ $index + 1 ][4] = $submenu_item['class']; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited } } } private function init_args() { $default_args = [ 'function' => null, 'icon_url' => null, 'position' => null, ]; $this->args = array_merge( $default_args, $this->get_init_args() ); } private function init_options() { $default_options = [ 'separator' => false, ]; $this->options = array_merge( $default_options, $this->get_init_options() ); } private function add_menu_separator() { global $menu; $slug = $this->args['menu_slug']; $menu[] = [ '', 'read', 'separator-' . $slug, '', 'wp-menu-separator ' . $slug ]; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited } private function rearrange_menu_separator( $menu_order ) { // Initialize our custom order array. $custom_menu_order = []; $slug = $this->args['menu_slug']; $separator_name = 'separator-' . $slug; // Get the index of our custom separator. $custom_separator = array_search( $separator_name, $menu_order, true ); // Loop through menu order and do some rearranging. foreach ( $menu_order as $item ) { if ( $slug === $item ) { $custom_menu_order[] = $separator_name; $custom_menu_order[] = $item; unset( $menu_order[ $custom_separator ] ); } elseif ( $separator_name !== $item ) { $custom_menu_order[] = $item; } } // Return order. return $custom_menu_order; } } main.php 0000666 00000004011 15165557640 0006217 0 ustar 00 <?php namespace Elementor\Core\Admin\Menu; use Elementor\Plugin; use Elementor\TemplateLibrary\Source_Local; use Elementor\Tools; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } class Main extends Base { protected function get_init_args() { return [ 'page_title' => esc_html__( 'Elementor', 'elementor' ), 'menu_title' => esc_html__( 'Elementor', 'elementor' ), 'capability' => 'manage_options', 'menu_slug' => 'elementor', 'function' => [ Plugin::$instance->settings, 'display_settings_page' ], 'position' => 58.5, ]; } protected function get_init_options() { return [ 'separator' => true, ]; } protected function register_default_submenus() { $this->add_submenu( [ 'page_title' => esc_html_x( 'Templates', 'Template Library', 'elementor' ), 'menu_title' => esc_html_x( 'Templates', 'Template Library', 'elementor' ), 'menu_slug' => Source_Local::ADMIN_MENU_SLUG, 'index' => 0, ] ); $this->add_submenu( [ 'menu_title' => esc_html__( 'Help', 'elementor' ), 'menu_slug' => 'go_knowledge_base_site', 'function' => [ Plugin::$instance->settings, 'handle_external_redirects' ], 'index' => 150, ] ); } protected function register() { parent::register(); $this->rearrange_elementor_submenu(); } private function rearrange_elementor_submenu() { global $submenu; $elementor_menu_slug = $this->get_args( 'menu_slug' ); $elementor_submenu_old_index = null; $tools_submenu_index = null; foreach ( $submenu[ $elementor_menu_slug ] as $index => $submenu_item ) { if ( $elementor_menu_slug === $submenu_item[2] ) { $elementor_submenu_old_index = $index; } elseif ( Tools::PAGE_ID === $submenu_item[2] ) { $tools_submenu_index = $index; break; } } $elementor_submenu = array_splice( $submenu[ $elementor_menu_slug ], $elementor_submenu_old_index, 1 ); $elementor_submenu[0][0] = esc_html__( 'Settings', 'elementor' ); array_splice( $submenu[ $elementor_menu_slug ], $tools_submenu_index, 0, $elementor_submenu ); } }
| ver. 1.4 |
Github
|
.
| PHP 5.4.45 | Generation time: 0 |
proxy
|
phpinfo
|
Settings