1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
<?php /** * WPSEO plugin file. * * @package WPSEO\Admin */
/** * Generates the HTML for an inline Help Button and Panel. */ class WPSEO_Admin_Help_Panel {
/** * @var string */ private $id;
/** * @var string */ private $help_button_text;
/** * @var string */ private $help_content;
/** * @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 ); } }
|