97 lines
2.1 KiB
PHP
97 lines
2.1 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* WPSEO plugin file.
|
||
|
*
|
||
|
* @package WPSEO\Admin\Menu
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Registers the regular admin menu and network admin menu implementations.
|
||
|
*/
|
||
|
class WPSEO_Menu implements WPSEO_WordPress_Integration {
|
||
|
|
||
|
/**
|
||
|
* The page identifier used in WordPress to register the admin page.
|
||
|
*
|
||
|
* !DO NOT CHANGE THIS!
|
||
|
*
|
||
|
* @var string
|
||
|
*/
|
||
|
const PAGE_IDENTIFIER = 'wpseo_dashboard';
|
||
|
|
||
|
/**
|
||
|
* List of classes that add admin functionality.
|
||
|
*
|
||
|
* @var array
|
||
|
*/
|
||
|
protected $admin_features;
|
||
|
|
||
|
/**
|
||
|
* Registers all hooks to WordPress.
|
||
|
*
|
||
|
* @return void
|
||
|
*/
|
||
|
public function register_hooks() {
|
||
|
$admin_menu = new WPSEO_Admin_Menu( $this );
|
||
|
$admin_menu->register_hooks();
|
||
|
|
||
|
if ( WPSEO_Utils::is_plugin_network_active() ) {
|
||
|
$network_admin_menu = new WPSEO_Network_Admin_Menu( $this );
|
||
|
$network_admin_menu->register_hooks();
|
||
|
}
|
||
|
|
||
|
$capability_normalizer = new WPSEO_Submenu_Capability_Normalize();
|
||
|
$capability_normalizer->register_hooks();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the main menu page identifier.
|
||
|
*
|
||
|
* @return string Page identifier to use.
|
||
|
*/
|
||
|
public function get_page_identifier() {
|
||
|
return self::PAGE_IDENTIFIER;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Loads the requested admin settings page.
|
||
|
*
|
||
|
* @return void
|
||
|
*/
|
||
|
public function load_page() {
|
||
|
// phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Reason: We are not processing form information.
|
||
|
if ( isset( $_GET['page'] ) && is_string( $_GET['page'] ) ) {
|
||
|
// phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Reason: We are not processing form information.
|
||
|
$page = sanitize_text_field( wp_unslash( $_GET['page'] ) );
|
||
|
$this->show_page( $page );
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Shows an admin settings page.
|
||
|
*
|
||
|
* @param string $page Page to display.
|
||
|
*
|
||
|
* @return void
|
||
|
*/
|
||
|
protected function show_page( $page ) {
|
||
|
switch ( $page ) {
|
||
|
case 'wpseo_tools':
|
||
|
require_once WPSEO_PATH . 'admin/pages/tools.php';
|
||
|
break;
|
||
|
|
||
|
case 'wpseo_licenses':
|
||
|
require_once WPSEO_PATH . 'admin/pages/licenses.php';
|
||
|
break;
|
||
|
|
||
|
case 'wpseo_files':
|
||
|
require_once WPSEO_PATH . 'admin/views/tool-file-editor.php';
|
||
|
break;
|
||
|
|
||
|
default:
|
||
|
require_once WPSEO_PATH . 'admin/pages/dashboard.php';
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|