ldc-sbv/wp-content/plugins/wordpress-seo/admin/menu/class-network-admin-menu.php
2021-09-21 15:01:08 +02:00

84 lines
1.9 KiB
PHP

<?php
/**
* WPSEO plugin file.
*
* @package WPSEO\Admin\Menu
*/
/**
* Network Admin Menu handler.
*/
class WPSEO_Network_Admin_Menu implements WPSEO_WordPress_Integration {
/** @var WPSEO_Menu Menu */
protected $menu;
/**
* WPSEO_Network_Admin_Menu constructor.
*
* @param WPSEO_Menu $menu Menu to use.
*/
public function __construct( WPSEO_Menu $menu ) {
$this->menu = $menu;
}
/**
* Registers all hooks to WordPress.
*
* @return void
*/
public function register_hooks() {
// Needs the lower than default priority so other plugins can hook underneath it without issue.
add_action( 'network_admin_menu', array( $this, 'register_settings_page' ), 5 );
}
/**
* Register the settings page for the Network settings.
*
* @return void
*/
public function register_settings_page() {
if ( ! WPSEO_Capability_Utils::current_user_can( 'wpseo_manage_options' ) ) {
return;
}
$page_callback = array( $this->menu, 'load_page' );
add_menu_page(
'Yoast SEO: ' . __( 'MultiSite Settings', 'wordpress-seo' ),
__( 'SEO', 'wordpress-seo' ),
'delete_users',
$this->menu->get_page_identifier(),
array( $this, 'network_config_page' ),
WPSEO_Utils::get_icon_svg()
);
if ( WPSEO_Utils::allow_system_file_edit() === true ) {
add_submenu_page(
$this->menu->get_page_identifier(),
'Yoast SEO: ' . __( 'Edit Files', 'wordpress-seo' ),
__( 'Edit Files', 'wordpress-seo' ),
'delete_users', 'wpseo_files',
$page_callback
);
}
// Add Extension submenu page.
add_submenu_page(
$this->menu->get_page_identifier(),
'Yoast SEO: ' . __( 'Extensions', 'wordpress-seo' ),
__( 'Extensions', 'wordpress-seo' ),
'delete_users',
'wpseo_licenses',
$page_callback
);
}
/**
* Loads the form for the network configuration page.
*
* @return void
*/
public function network_config_page() {
require_once WPSEO_PATH . 'admin/pages/network.php';
}
}