113 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * WPSEO plugin file.
 | 
						|
 *
 | 
						|
 * @package WPSEO\Admin\Options\Tabs
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * Class WPSEO_Option_Tab.
 | 
						|
 */
 | 
						|
class WPSEO_Option_Tab {
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Name of the tab.
 | 
						|
	 *
 | 
						|
	 * @var string
 | 
						|
	 */
 | 
						|
	private $name;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Label of the tab.
 | 
						|
	 *
 | 
						|
	 * @var string
 | 
						|
	 */
 | 
						|
	private $label;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Optional arguments.
 | 
						|
	 *
 | 
						|
	 * @var array
 | 
						|
	 */
 | 
						|
	private $arguments;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * WPSEO_Option_Tab constructor.
 | 
						|
	 *
 | 
						|
	 * @param string $name      Name of the tab.
 | 
						|
	 * @param string $label     Localized label of the tab.
 | 
						|
	 * @param array  $arguments Optional arguments.
 | 
						|
	 */
 | 
						|
	public function __construct( $name, $label, array $arguments = [] ) {
 | 
						|
		$this->name      = sanitize_title( $name );
 | 
						|
		$this->label     = $label;
 | 
						|
		$this->arguments = $arguments;
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Gets the name.
 | 
						|
	 *
 | 
						|
	 * @return string The name.
 | 
						|
	 */
 | 
						|
	public function get_name() {
 | 
						|
		return $this->name;
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Gets the label.
 | 
						|
	 *
 | 
						|
	 * @return string The label.
 | 
						|
	 */
 | 
						|
	public function get_label() {
 | 
						|
		return $this->label;
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Retrieves whether the tab needs a save button.
 | 
						|
	 *
 | 
						|
	 * @return bool True whether the tabs needs a save button.
 | 
						|
	 */
 | 
						|
	public function has_save_button() {
 | 
						|
		return (bool) $this->get_argument( 'save_button', true );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Retrieves whether the tab hosts beta functionalities.
 | 
						|
	 *
 | 
						|
	 * @return bool True whether the tab hosts beta functionalities.
 | 
						|
	 */
 | 
						|
	public function is_beta() {
 | 
						|
		return (bool) $this->get_argument( 'beta', false );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Retrieves whether the tab hosts premium functionalities.
 | 
						|
	 *
 | 
						|
	 * @return bool True whether the tab hosts premium functionalities.
 | 
						|
	 */
 | 
						|
	public function is_premium() {
 | 
						|
		return (bool) $this->get_argument( 'premium', false );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Gets the option group.
 | 
						|
	 *
 | 
						|
	 * @return string The option group.
 | 
						|
	 */
 | 
						|
	public function get_opt_group() {
 | 
						|
		return $this->get_argument( 'opt_group' );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Retrieves the variable from the supplied arguments.
 | 
						|
	 *
 | 
						|
	 * @param string       $variable      Variable to retrieve.
 | 
						|
	 * @param string|mixed $default_value Default to use when variable not found.
 | 
						|
	 *
 | 
						|
	 * @return mixed|string The retrieved variable.
 | 
						|
	 */
 | 
						|
	protected function get_argument( $variable, $default_value = '' ) {
 | 
						|
		return array_key_exists( $variable, $this->arguments ) ? $this->arguments[ $variable ] : $default_value;
 | 
						|
	}
 | 
						|
}
 |