name = $name;
foreach ( $tabs as $tab ) {
$this->add_tab( $tab );
}
$this->link_content = $link_content;
$this->link_title = isset( $options['link_title'] ) ? $options['link_title'] : '';
}
/**
* Outputs the section link if any tab has been added.
*/
public function display_link() {
if ( $this->has_tabs() ) {
printf(
'
%3$s',
esc_attr( $this->name ),
( '' !== $this->link_title ) ? ' title="' . esc_attr( $this->link_title ) . '"' : '',
$this->link_content
);
}
}
/**
* Outputs the section content if any tab has been added.
*/
public function display_content() {
if ( $this->has_tabs() ) {
$html = '';
printf( $html, esc_attr( $this->name ), $this->tab_links(), $this->tab_content() );
}
}
/**
* Add a `WPSEO_Metabox_Tab` object to the tabs.
*
* @param WPSEO_Metabox_Tab $tab Tab to add.
*/
public function add_tab( WPSEO_Metabox_Tab $tab ) {
$this->tabs[] = $tab;
}
/**
* Checks if any tabs have been added to the section.
*
* @return bool
*/
protected function has_tabs() {
return ! empty( $this->tabs );
}
/**
* Concatenates all tabs' links into one html string.
*
* @return string
*/
private function tab_links() {
$links = '';
foreach ( $this->tabs as $tab ) {
$links .= $tab->link();
}
return $links;
}
/**
* Concatenates all tabs' content into one html string.
*
* @return string
*/
private function tab_content() {
$content = '';
foreach ( $this->tabs as $tab ) {
$content .= $tab->content();
}
return $content;
}
}