array( 'condition' => '', 'parent_slug' => 'alpus', 'page_title' => esc_html__( 'Dashboard', 'alpus' ), 'menu_title' => esc_html__( 'Dashboard', 'alpus' ), 'capability' => 'administrator', 'menu_slug' => 'alpus', 'callback' => array( $this, 'panel_activate' ), 'position' => 1, ), 'theme-options' => array( 'condition' => '', 'parent_slug' => 'alpus', 'page_title' => esc_html__( 'Theme Options', 'alpus' ), 'menu_title' => esc_html__( 'Theme Options', 'alpus' ), 'capability' => 'administrator', 'menu_slug' => 'customize.php', 'callback' => '', 'position' => 2, ), 'setup-wizard' => array( 'condition' => class_exists( 'Alpus_Setup_Wizard' ), 'class' => 'Alpus_Setup_Wizard', 'parent_slug' => 'alpus', 'page_title' => esc_html__( 'Setup Wizard', 'alpus' ), 'menu_title' => esc_html__( 'Setup Wizard', 'alpus' ), 'capability' => 'manage_options', 'menu_slug' => 'alpus-setup-wizard', 'callback' => 'view_setup_wizard', 'position' => 3, ), 'optimize-wizard' => array( 'condition' => class_exists( 'Alpus_Optimize_Wizard' ), 'class' => 'Alpus_Optimize_Wizard', 'parent_slug' => 'alpus', 'page_title' => esc_html__( 'Optimize Wizard', 'alpus' ), 'menu_title' => esc_html__( 'Optimize Wizard', 'alpus' ), 'capability' => 'manage_options', 'menu_slug' => 'alpus-optimize-wizard', 'callback' => 'view_optimize_wizard', 'position' => 4, ), 'layout-builder' => array( 'condition' => class_exists( 'Alpus_Layout_Builder_Admin' ), 'class' => 'Alpus_Layout_Builder_Admin', 'parent_slug' => 'alpus', 'page_title' => esc_html__( 'Layout Builder', 'alpus' ), 'menu_title' => esc_html__( 'Layout Builder', 'alpus' ), 'capability' => 'manage_options', 'menu_slug' => 'alpus-layout-builder', 'callback' => 'view_layout_builder', 'position' => 5, ), 'templates' => array( 'condition' => class_exists( 'Alpus_Builders' ), 'parent_slug' => 'alpus', 'page_title' => esc_html__( 'Templates', 'alpus' ), 'menu_title' => esc_html__( 'Templates', 'alpus' ), 'capability' => 'administrator', 'menu_slug' => 'edit.php?post_type=' . ALPUS_NAME . '_template', 'callback' => '', 'position' => 8, ), 'sidebars' => array( 'condition' => class_exists( 'Alpus_Sidebar_Builder' ), 'class' => 'Alpus_Sidebar_Builder', 'parent_slug' => 'alpus', 'page_title' => esc_html__( 'Sidebars', 'alpus' ), 'menu_title' => esc_html__( 'Sidebars', 'alpus' ), 'capability' => 'administrator', 'menu_slug' => 'alpus-sidebar', 'callback' => 'sidebar_view', 'position' => 10, ), 'tools' => array( 'condition' => class_exists( 'Alpus_Tools' ), 'class' => 'Alpus_Tools', 'parent_slug' => 'alpus', 'page_title' => esc_html__( 'Tools', 'alpus' ), 'menu_title' => esc_html__( 'Tools', 'alpus' ), 'capability' => 'manage_options', 'menu_slug' => 'alpus-tools', 'callback' => 'view_tools', 'position' => 13, ), 'critical' => array( 'condition' => class_exists( 'Alpus_Critical' ) && alpus_get_option( 'resource_critical_css' ), 'class' => 'Alpus_Critical', 'parent_slug' => 'alpus', 'page_title' => esc_html__( 'Critical CSS', 'alpus' ), 'menu_title' => '' . esc_html__( 'Critical CSS', 'alpus' ) . '', 'capability' => 'manage_options', 'menu_slug' => 'alpus-critical', 'callback' => 'view_critical', 'position' => 14, ), 'patcher' => array( 'condition' => class_exists( 'Alpus_Patcher' ), 'class' => 'Alpus_Patcher', 'parent_slug' => 'alpus', 'page_title' => esc_html__( 'Patcher', 'alpus' ), 'menu_title' => '' . esc_html__( 'Patcher', 'alpus' ) . '', 'capability' => 'manage_options', 'menu_slug' => 'alpus-patcher', 'callback' => 'view_patcher', 'position' => 15, ), 'version' => array( 'condition' => class_exists( 'Alpus_Rollback' ), 'class' => 'Alpus_Rollback', 'parent_slug' => 'alpus', 'page_title' => esc_html__( 'Rollback', 'alpus' ), 'menu_title' => '' . esc_html__( 'Rollback', 'alpus' ) . '', 'capability' => 'manage_options', 'menu_slug' => 'alpus-rollback', 'callback' => 'view_tools', 'position' => 16, ), ) ); foreach ( $admin_menus as $key => $args ) { if ( '' === $args['condition'] || $args['condition'] ) { if ( ! empty( $args['class'] ) ) { $callback = array( $args['class']::get_instance(), $args['callback'] ); } else { $callback = $args['callback']; } add_submenu_page( $args['parent_slug'], $args['page_title'], $args['menu_title'], $args['capability'], $args['menu_slug'], $callback, $args['position'] ); } } } /** * Load header template for admin panel. * * @since 1.0 */ public function view_header( $active_page, $admin_config = array(), $title = array() ) { require_once alpus_framework_path( ALPUS_FRAMEWORK_ADMIN . '/panel/views/header.php' ); } /** * Load footer template for admin panel. * * @since 1.0 */ public function view_footer( $active_page = 'dashboard', $admin_config = array() ) { require_once alpus_framework_path( ALPUS_FRAMEWORK_ADMIN . '/panel/views/footer.php' ); } /** * Load dashboard panel template. * * @since 1.0 */ public function panel_activate() { $admin_config = Alpus_Admin::get_instance()->admin_config; $this->view_header( 'dashboard', $admin_config ); require_once alpus_framework_path( ALPUS_FRAMEWORK_ADMIN . '/panel/views/dashboard.php' ); $this->view_footer( 'dashboard', $admin_config ); } } } Alpus_Admin_Panel::get_instance();