85 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * WPSEO plugin file.
 | 
						|
 *
 | 
						|
 * @package WPSEO\Admin
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * Generates the HTML for a metabox tab.
 | 
						|
 */
 | 
						|
class WPSEO_Metabox_Collapsible implements WPSEO_Metabox_Tab {
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The collapsible's unique identifier.
 | 
						|
	 *
 | 
						|
	 * @var string
 | 
						|
	 */
 | 
						|
	private $name;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The content to be displayed inside the collapsible.
 | 
						|
	 *
 | 
						|
	 * @var string
 | 
						|
	 */
 | 
						|
	private $content;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The label.
 | 
						|
	 *
 | 
						|
	 * @var string
 | 
						|
	 */
 | 
						|
	private $link_content;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Constructor.
 | 
						|
	 *
 | 
						|
	 * @param string $name         The name of the tab, used as an identifier in the html.
 | 
						|
	 * @param string $content      The tab content.
 | 
						|
	 * @param string $link_content The text content of the tab link.
 | 
						|
	 */
 | 
						|
	public function __construct( $name, $content, $link_content ) {
 | 
						|
		$this->name         = $name;
 | 
						|
		$this->content      = $content;
 | 
						|
		$this->link_content = $link_content;
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Returns the html for the tab link.
 | 
						|
	 *
 | 
						|
	 * @return string
 | 
						|
	 */
 | 
						|
	public function link() {
 | 
						|
		return $this->link_content;
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Returns the html for the tab content.
 | 
						|
	 *
 | 
						|
	 * @return string
 | 
						|
	 */
 | 
						|
	public function content() {
 | 
						|
		$collapsible_paper = new WPSEO_Paper_Presenter(
 | 
						|
			$this->link(),
 | 
						|
			null,
 | 
						|
			[
 | 
						|
				'content'      => $this->content,
 | 
						|
				'collapsible'  => true,
 | 
						|
				'class'        => 'metabox wpseo-form wpseo-collapsible-container',
 | 
						|
				'paper_id'     => 'collapsible-' . $this->name,
 | 
						|
			]
 | 
						|
		);
 | 
						|
 | 
						|
		return $collapsible_paper->get_output();
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Returns the collapsible's unique identifier.
 | 
						|
	 *
 | 
						|
	 * @return string
 | 
						|
	 */
 | 
						|
	public function get_name() {
 | 
						|
		return $this->name;
 | 
						|
	}
 | 
						|
}
 |