You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
1.5 KiB

<?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,
array(
'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;
}
}