options = (array) AdminSettings::get_instance()->get(); add_filter('parent_file', [$this, 'render_adminify_admin_menu'], 999); add_action('adminmenu', [$this, 'render_output_adminify_admin_menu']); add_filter('admin_body_class', [$this, 'admin_menu_body_class']); } // Body Class public function admin_menu_body_class($classes) { $classes .= ' adminify_admin_menu '; return $classes; } /** * Render Admin Menu * @package WP Adminify * @return void */ public function render_adminify_admin_menu($parent_file) { global $menu, $pagenow, $wp_adminify_menu; $current_user = wp_get_current_user(); $this->original_menu = $menu; $this->options = (array) AdminSettings::get_instance()->get(); // Disable Default Menu $menu = array(); ob_start(); ?> original_submenu = $submenu; foreach ($the_menu as $menu_item) { $menu_name = $menu_item[0]; $menu_link = $menu_item[2]; $divider = false; if (strpos($menu_link, "separator") !== false) { $divider = true; $this->render_divider($menu_item); continue; } if (!$menu_name) { continue; } if (isset($submenu[$menu_link])) { $sub_menu_items = $submenu[$menu_link]; } else { $sub_menu_items = false; } $link = $this->get_menu_link($menu_item); $classes = $this->get_menu_clases($menu_item, $submenu); ?>
  • get_icon($menu_item) ?> "> render_sub_level_menu_items($sub_menu_items); } ?>
  • check_if_active($menu_item, $sub_menu[$menu_link]); } else { $classes = $classes . ' ' . $this->check_if_single_active($menu_item); } return $classes; } /** * Checks if we are on an active link or sub link * @since 1.4 */ public function check_if_active($menu_item, $sub_menu) { if (!is_array($sub_menu)) { return ""; } global $pagenow; $currentquery = $_SERVER['QUERY_STRING']; if ($currentquery) { $currentquery = '?' . $currentquery; } $wholestring = $pagenow . $currentquery; $visibility = 'hidden'; $open = 'wp-not-current-submenu'; $files = $this->files; foreach ($sub_menu as $sub) { if (strpos($sub[2], '.php') !== false) { $link = $sub[2]; $querypieces = explode("?", $link); $temp = $querypieces[0]; if (!in_array($temp, $files)) { $link = 'admin.php?page=' . $sub[2]; } } else { $link = 'admin.php?page=' . $sub[2]; } $linkclass = ''; if ($wholestring == $link) { $linkclass = "wp-has-current-submenu wp-menu-open"; $open = 'wp-adminify-active wp-adminify-open wp-menu-open wp-has-current-submenu'; $visibility = ''; break; } } return $open; } /** * Render Divider * @package WP Adminify * @return void */ public function render_divider($divider) { if (isset($divider['name'])) { ?>
  • files; if (strpos($sub_menu_item[2], '.php') !== false) { $link = $sub_menu_item[2]; $querypieces = explode("?", $link); $temp = $querypieces[0]; if (!in_array($temp, $files)) { $link = 'admin.php?page=' . $sub_menu_item[2]; } } else { $link = 'admin.php?page=' . $sub_menu_item[2]; } $linkclass = ''; if ($wholestring == $link) { $linkclass = "wp-adminify-active current"; } return $linkclass; } /** * Scans admin directory for menu links * @since 1.4 */ public function get_admin_files() { $absolutepath = ABSPATH . '/wp-admin' . "/"; $files = array_diff(scandir($absolutepath), array('.', '..')); if (is_multisite()) { $pathtonetwork = ABSPATH . '/wp-admin' . "/network/"; $networkfiles = array_diff(scandir($pathtonetwork), array('.', '..')); $files = array_merge($files, $networkfiles); } return $files; } /** * Gets correct link for menu item * @since 1.4 */ public function get_menu_link($menu_item) { $menu_link = $menu_item[2]; $files = $this->get_admin_files(); $this->files = $files; if (strpos($menu_link, 'admin.php') !== false) { $link = $menu_link; } else if (strpos($menu_link, '.php') !== false) { $link = $menu_link; if (strpos($menu_link, '/') !== false) { $pieces = explode("/", $menu_link); if (strpos($pieces[0], '.php') !== true || !file_exists(get_admin_url() . $menu_link)) { $link = 'admin.php?page=' . $menu_link; } } $querypieces = explode("?", $link); $temp = $querypieces[0]; if (!in_array($temp, $files)) { $link = 'admin.php?page=' . $menu_link; } } else { $link = 'admin.php?page=' . $menu_link; } if (strpos($menu_link, "/wp-content/") !== false) { $link = 'admin.php?page=' . $menu_link; } //CHECK IF INTERNAL URL if (strpos($menu_link, get_site_url()) !== false) { $link = $menu_link; } ///CHECK IF EXTERNAL LINK if (strpos($menu_link, 'https://') !== false || strpos($menu_link, 'http://') !== false) { $link = $menu_link; } return $link; } /** * Gets top level menu item icon * @since 1.4 */ public function get_icon($menu_item) { /// LIST OF AVAILABLE MENU ICONS $icons = array( 'dashicons-dashboard' => 'dashicons dashicons-dashboard', 'dashicons-admin-post' => 'dashicons dashicons-admin-post', 'dashicons-database' => 'dashicons dashicons-database', 'dashicons-admin-media' => 'dashicons dashicons-admin-media', 'dashicons-admin-page' => 'dashicons dashicons-admin-page', 'dashicons-admin-comments' => 'dashicons dashicons-admin-comments', 'dashicons-admin-appearance' => 'dashicons dashicons-admin-appearance', 'dashicons-admin-plugins' => 'dashicons dashicons-admin-plugins', 'dashicons-admin-users' => 'dashicons dashicons-admin-users', 'dashicons-admin-tools' => 'dashicons dashicons-admin-tools', 'dashicons-chart-bar' => 'dashicons dashicons-chart-bar', 'dashicons-admin-settings' => 'dashicons dashicons-admin-settings' ); // SET MENU ICON $theicon = ''; // $wpicon = $menu_item; $wpicon = (isset($menu_item)) ? $menu_item[6] : ''; if (isset($menu_item['icon'])) { if ($menu_item['icon'] != "") { ?> original_menu; $submenu = $this->original_submenu; } }