class-menu.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?php
  2. /**
  3. * WPSEO plugin file.
  4. *
  5. * @package WPSEO\Admin\Menu
  6. */
  7. /**
  8. * Registers the regular admin menu and network admin menu implementations.
  9. */
  10. class WPSEO_Menu implements WPSEO_WordPress_Integration {
  11. /**
  12. * The page identifier used in WordPress to register the admin page.
  13. *
  14. * !DO NOT CHANGE THIS!
  15. *
  16. * @var string
  17. */
  18. const PAGE_IDENTIFIER = 'wpseo_dashboard';
  19. /**
  20. * List of classes that add admin functionality.
  21. *
  22. * @var array
  23. */
  24. protected $admin_features;
  25. /**
  26. * Registers all hooks to WordPress.
  27. *
  28. * @return void
  29. */
  30. public function register_hooks() {
  31. $admin_menu = new WPSEO_Admin_Menu( $this );
  32. $admin_menu->register_hooks();
  33. if ( WPSEO_Utils::is_plugin_network_active() ) {
  34. $network_admin_menu = new WPSEO_Network_Admin_Menu( $this );
  35. $network_admin_menu->register_hooks();
  36. }
  37. $capability_normalizer = new WPSEO_Submenu_Capability_Normalize();
  38. $capability_normalizer->register_hooks();
  39. }
  40. /**
  41. * Returns the main menu page identifier.
  42. *
  43. * @return string Page identifier to use.
  44. */
  45. public function get_page_identifier() {
  46. return self::PAGE_IDENTIFIER;
  47. }
  48. /**
  49. * Loads the requested admin settings page.
  50. *
  51. * @return void
  52. */
  53. public function load_page() {
  54. $page = filter_input( INPUT_GET, 'page' );
  55. $this->show_page( $page );
  56. }
  57. /**
  58. * Shows an admin settings page.
  59. *
  60. * @param string $page Page to display.
  61. *
  62. * @return void
  63. */
  64. protected function show_page( $page ) {
  65. switch ( $page ) {
  66. case 'wpseo_tools':
  67. require_once WPSEO_PATH . 'admin/pages/tools.php';
  68. break;
  69. case 'wpseo_titles':
  70. require_once WPSEO_PATH . 'admin/pages/metas.php';
  71. break;
  72. case 'wpseo_social':
  73. require_once WPSEO_PATH . 'admin/pages/social.php';
  74. break;
  75. case 'wpseo_licenses':
  76. require_once WPSEO_PATH . 'admin/pages/licenses.php';
  77. break;
  78. case 'wpseo_files':
  79. require_once WPSEO_PATH . 'admin/views/tool-file-editor.php';
  80. break;
  81. case 'wpseo_configurator':
  82. require_once WPSEO_PATH . 'admin/config-ui/class-configuration-page.php';
  83. break;
  84. default:
  85. require_once WPSEO_PATH . 'admin/pages/dashboard.php';
  86. break;
  87. }
  88. }
  89. }