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
|
<?php /** * WPSEO plugin file. * * @package WPSEO\Admin\Menu */
/** * Renders a single replacement variable field. */ class WPSEO_Replacevar_Field {
/** * Forms instance. * * @var Yoast_Form Yoast */ private $yform;
/** * The id for the hidden field. * * @var string */ private $field_id;
/** * The label for the field. * * @var string */ private $label;
/** * The page type for the context of the recommended replace vars. * * @var string */ private $page_type_recommended;
/** * The page type for the context of the editor specific replace vars. * * @var string */ private $page_type_specific;
/** * Constructs the object. * * @param Yoast_Form $yform Yoast forms. * @param string $field_id The field id. * @param string $label The field label. * @param string $page_type_recommended The page type for the context of the recommended replace vars. * @param string $page_type_specific The page type for the context of the editor specific replace vars. */ public function __construct( Yoast_Form $yform, $field_id, $label, $page_type_recommended, $page_type_specific ) { $this->yform = $yform; $this->field_id = $field_id; $this->label = $label; $this->page_type_recommended = $page_type_recommended; $this->page_type_specific = $page_type_specific; }
/** * Renders a div for the react application to mount to, and hidden inputs where * the app should store it's value so they will be properly saved when the form * is submitted. * * @return void */ public function render() { $this->yform->hidden( $this->field_id, $this->field_id );
printf( '<div data-react-replacevar-field data-react-replacevar-field-id="%1$s" data-react-replacevar-field-label="%2$s" data-react-replacevar-page-type-recommended="%3$s" data-react-replacevar-page-type-specific="%4$s"></div>', esc_attr( $this->field_id ), esc_attr( $this->label ), esc_attr( $this->page_type_recommended ), esc_attr( $this->page_type_specific ) ); } }
|