123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- <?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
- );
- }
- }
|