get(); // } return (isset($options[$option])) ? $options[$option] : $default; } } function is_site_wide($plugin) { if (!is_multisite()) { return false; } $plugins = get_site_option('active_sitewide_plugins'); if (isset($plugins[$plugin])) { return true; } return false; } /** * Check if the request is coming from an iframe. * * @param None * @throws None * @return bool */ function is_iframe() { return isset($_SERVER["HTTP_SEC_FETCH_DEST"]) && strtolower($_SERVER["HTTP_SEC_FETCH_DEST"]) === "iframe"; // $isIframe = isset($_SERVER["HTTP_SEC_FETCH_DEST"]) && strtolower($_SERVER["HTTP_SEC_FETCH_DEST"]) === "iframe"; // if ( $isIframe ) return true; // if ( isset($_GET['adminify-iframe']) ) return true; // return false; } /** * Load a template file. * * @param string $template_name The name of the template file to load. * @throws None * @return void */ function adminify_load_template($template_name) { require_once WP_ADMINIFY_PATH . 'Inc/Admin/Frames/Templates/' . $template_name; } function maybe_network_admin_url($url) { if ( is_network_admin() ) { return network_admin_url($url); } return admin_url($url); } function build_menu($menu, $submenu) { $admin_menu = []; foreach ($menu as $key => $item) { $menu_slug = $item[2]; $menu_title = $item[0]; $menu_name = isset($item[5]) ? $item[5] : ''; $menu_icon = isset($item[6]) ? $item[6] : ''; $menu_hook = get_plugin_page_hook($menu_slug, 'admin.php'); $menu_file = $menu_slug; $pos = strpos($menu_file, '?'); if (false !== $pos) { $menu_file = substr($menu_file, 0, $pos); } $url = ''; $arrParsedUrl = parse_url($menu_slug); if (!empty($arrParsedUrl['scheme'])) { if ($arrParsedUrl['scheme'] === "http" || $arrParsedUrl['scheme'] === "https") { $url = $menu_slug; } } else { $url = ( ! empty($menu_hook) || ( ( 'index.php' !== $menu_slug ) && file_exists(WP_PLUGIN_DIR . "/$menu_file") && ! file_exists(ABSPATH . "/wp-admin/$menu_file") ) ) ? maybe_network_admin_url('admin.php?page=' . $menu_slug) : maybe_network_admin_url($menu_slug); } $admin_menu[$menu_slug] = [ 'key' => $menu_slug, 'title' => $menu_title, 'url' => $url, 'name' => $menu_name, 'icon' => $menu_icon, 'children' => [], 'separator' => !empty( $item['separator'] ) ? $item['separator'] : '' ]; if (!empty($submenu[$menu_slug])) { foreach ($submenu[$menu_slug] as $sub_key => $sub_item) { $sub_slug = $sub_item[2]; $sub_title = $sub_item[0]; $sub_name = isset($sub_item[5]) ? $sub_item[5] : ''; $sub_icon = isset($sub_item[6]) ? $sub_item[6] : ''; $sub_menu_hook = get_plugin_page_hook($sub_slug, $menu_slug); $sub_file = $sub_slug; $pos = strpos($sub_file, '?'); if (false !== $pos) { $sub_file = substr($sub_file, 0, $pos); } $sub_url = ''; $arrParsedUrl = parse_url($sub_slug); if (!empty($arrParsedUrl['scheme'])) { if ($arrParsedUrl['scheme'] === "http" || $arrParsedUrl['scheme'] === "https") { $sub_url = $sub_slug; } } else { $sub_url = ( ! empty($sub_menu_hook) || ( ( 'index.php' !== $sub_slug ) && file_exists(WP_PLUGIN_DIR . "/$sub_file") && ! file_exists(ABSPATH . "/wp-admin/$sub_file") ) ) ? maybe_network_admin_url('admin.php?page=' . $sub_slug) : maybe_network_admin_url($sub_slug); } $admin_menu[$menu_slug]['children'][$sub_slug] = [ 'key' => $sub_slug, 'title' => $sub_title, 'url' => $sub_url, 'name' => $sub_name, 'icon' => $sub_icon, ]; } } } return $admin_menu; }