2023-01-23 11:03:31 +01:00

113 lines
2.0 KiB
PHP

<?php
/**
* WPSEO plugin file.
*
* @package WPSEO\Admin\Options\Tabs
*/
/**
* Class WPSEO_Help_Center_Item.
*/
class WPSEO_Help_Center_Item {
/**
* Identifier for this tab.
*
* @var string
*/
private $identifier;
/**
* Label to display.
*
* @var string
*/
private $label;
/**
* The dashicon classname to display in front of the label.
*
* @var string
*/
private $dashicon;
/**
* Optional arguments.
*
* @var array
*/
private $args = array();
/**
* WPSEO_Help_Center_Item constructor.
*
* @param string $identifier Unique identifier for this tab.
* @param string $label Label to display.
* @param array $args Optional. Settings for this tab.
* @param string $dashicon Optional. The classname of the dahsicon to put in front of the label.
*/
public function __construct( $identifier, $label, $args = array(), $dashicon = '' ) {
$this->identifier = $identifier;
$this->label = $label;
$this->dashicon = $dashicon;
$this->args = $args;
}
/**
* Get the label.
*
* @return string
*/
public function get_label() {
return $this->label;
}
/**
* Get the identifier.
*
* @return string
*/
public function get_identifier() {
return $this->identifier;
}
/**
* Get the dashicon.
*
* @return string
*/
public function get_dashicon() {
return $this->dashicon;
}
/**
* Get the content of this tab.
*
* @return mixed|string
*/
public function get_content() {
if ( ! empty( $this->args['content'] ) ) {
return $this->args['content'];
}
if ( ! empty( $this->args['callback'] ) ) {
return call_user_func_array( $this->args['callback'], array( $this ) );
}
if ( ! empty( $this->args['view'] ) ) {
$view = $this->args['view'];
if ( substr( $view, - 4 ) === '.php' ) {
$view = substr( $view, 0, - 4 );
}
if ( ! empty( $this->args['view_arguments'] ) ) {
extract( $this->args['view_arguments'] );
}
include WPSEO_PATH . 'admin/views/' . $view . '.php';
}
return '';
}
}