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.
104 lines
2.7 KiB
104 lines
2.7 KiB
<?php |
|
/** |
|
* WPSEO plugin file. |
|
* |
|
* @package WPSEO\Admin |
|
*/ |
|
|
|
/** |
|
* Generates the HTML for an inline Help Button and Panel. |
|
*/ |
|
class WPSEO_Admin_Help_Panel { |
|
|
|
/** |
|
* Unique identifier of the element the inline help refers to, used as an identifier in the html. |
|
* |
|
* @var string |
|
*/ |
|
private $id; |
|
|
|
/** |
|
* The Help Button text. Needs a properly escaped string. |
|
* |
|
* @var string |
|
*/ |
|
private $help_button_text; |
|
|
|
/** |
|
* The Help Panel content. Needs a properly escaped string (might contain HTML). |
|
* |
|
* @var string |
|
*/ |
|
private $help_content; |
|
|
|
/** |
|
* Optional Whether to print out a container div element for the Help Panel, used for styling. |
|
* |
|
* @var string |
|
*/ |
|
private $wrapper; |
|
|
|
/** |
|
* Constructor. |
|
* |
|
* @param string $id Unique identifier of the element the inline help refers to, used as |
|
* an identifier in the html. |
|
* @param string $help_button_text The Help Button text. Needs a properly escaped string. |
|
* @param string $help_content The Help Panel content. Needs a properly escaped string (might contain HTML). |
|
* @param string $wrapper Optional Whether to print out a container div element for the Help Panel, |
|
* used for styling. |
|
* Pass a `has-wrapper` value to print out the container. Default: no container. |
|
*/ |
|
public function __construct( $id, $help_button_text, $help_content, $wrapper = '' ) { |
|
$this->id = $id; |
|
$this->help_button_text = $help_button_text; |
|
$this->help_content = $help_content; |
|
$this->wrapper = $wrapper; |
|
} |
|
|
|
/** |
|
* Returns the html for the Help Button. |
|
* |
|
* @return string |
|
*/ |
|
public function get_button_html() { |
|
|
|
if ( ! $this->id || ! $this->help_button_text || ! $this->help_content ) { |
|
return ''; |
|
} |
|
|
|
return sprintf( |
|
' <button type="button" class="yoast_help yoast-help-button dashicons" id="%1$s-help-toggle" aria-expanded="false" aria-controls="%1$s-help"><span class="yoast-help-icon" aria-hidden="true"></span><span class="screen-reader-text">%2$s</span></button>', |
|
esc_attr( $this->id ), |
|
$this->help_button_text |
|
); |
|
} |
|
|
|
/** |
|
* Returns the html for the Help Panel. |
|
* |
|
* @return string |
|
*/ |
|
public function get_panel_html() { |
|
|
|
if ( ! $this->id || ! $this->help_button_text || ! $this->help_content ) { |
|
return ''; |
|
} |
|
|
|
$wrapper_start = ''; |
|
$wrapper_end = ''; |
|
|
|
if ( 'has-wrapper' === $this->wrapper ) { |
|
$wrapper_start = '<div class="yoast-seo-help-container">'; |
|
$wrapper_end = '</div>'; |
|
} |
|
|
|
return sprintf( |
|
'%1$s<p id="%2$s-help" class="yoast-help-panel">%3$s</p>%4$s', |
|
$wrapper_start, |
|
esc_attr( $this->id ), |
|
$this->help_content, |
|
$wrapper_end |
|
); |
|
} |
|
}
|
|
|