98 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * WPSEO plugin file.
 | 
						|
 *
 | 
						|
 * @package WPSEO\Admin\Menu
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * Network Admin Menu handler.
 | 
						|
 */
 | 
						|
class WPSEO_Network_Admin_Menu extends WPSEO_Base_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', [ $this, 'register_settings_page' ], 5 );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Register the settings page for the Network settings.
 | 
						|
	 *
 | 
						|
	 * @return void
 | 
						|
	 */
 | 
						|
	public function register_settings_page() {
 | 
						|
		if ( ! $this->check_manage_capability() ) {
 | 
						|
			return;
 | 
						|
		}
 | 
						|
 | 
						|
		add_menu_page(
 | 
						|
			__( 'Network Settings', 'wordpress-seo' ) . ' - Yoast SEO',
 | 
						|
			'Yoast SEO',
 | 
						|
			$this->get_manage_capability(),
 | 
						|
			$this->get_page_identifier(),
 | 
						|
			[ $this, 'network_config_page' ],
 | 
						|
			$this->get_icon_svg()
 | 
						|
		);
 | 
						|
 | 
						|
		$submenu_pages = $this->get_submenu_pages();
 | 
						|
		$this->register_submenu_pages( $submenu_pages );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Returns the list of registered submenu pages.
 | 
						|
	 *
 | 
						|
	 * @return array List of registered submenu pages.
 | 
						|
	 */
 | 
						|
	public function get_submenu_pages() {
 | 
						|
 | 
						|
		// Submenu pages.
 | 
						|
		$submenu_pages = [
 | 
						|
			$this->get_submenu_page(
 | 
						|
				__( 'General', 'wordpress-seo' ),
 | 
						|
				$this->get_page_identifier(),
 | 
						|
				[ $this, 'network_config_page' ]
 | 
						|
			),
 | 
						|
		];
 | 
						|
 | 
						|
		if ( WPSEO_Utils::allow_system_file_edit() === true ) {
 | 
						|
			$submenu_pages[] = $this->get_submenu_page( __( 'Edit Files', 'wordpress-seo' ), 'wpseo_files' );
 | 
						|
		}
 | 
						|
 | 
						|
		$submenu_pages[] = $this->get_submenu_page( __( 'Extensions', 'wordpress-seo' ), 'wpseo_licenses' );
 | 
						|
 | 
						|
		return $submenu_pages;
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Loads the form for the network configuration page.
 | 
						|
	 *
 | 
						|
	 * @return void
 | 
						|
	 */
 | 
						|
	public function network_config_page() {
 | 
						|
		require_once WPSEO_PATH . 'admin/pages/network.php';
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Checks whether the current user has capabilities to manage all options.
 | 
						|
	 *
 | 
						|
	 * @return bool True if capabilities are sufficient, false otherwise.
 | 
						|
	 */
 | 
						|
	protected function check_manage_capability() {
 | 
						|
		return current_user_can( $this->get_manage_capability() );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Returns the capability that is required to manage all options.
 | 
						|
	 *
 | 
						|
	 * @return string Capability to check against.
 | 
						|
	 */
 | 
						|
	protected function get_manage_capability() {
 | 
						|
		return 'wpseo_manage_network_options';
 | 
						|
	}
 | 
						|
}
 |