C:\xampp\htdocs\landing\wp-content\plugins\wordpress-seo\admin\menu\class-replacevar-editor.php


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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
/**
 * WPSEO plugin file.
 *
 * @package WPSEO\Admin\Menu
 */

/**
 * Renders a replacement variable editor.
 */
class WPSEO_Replacevar_Editor {

    
/**
     * Yoast Forms instance.
     *
     * @var Yoast_Form
     */
    
private $yform;

    
/**
     * The arguments required for the div to render.
     *
     * @var array {
     *      @type string $title                 The title field id.
     *      @type string $description           The description field id.
     *      @type string $page_type_recommended The page type for the context of the recommended replace vars.
     *      @type string $page_type_specific    The page type for the context of the editor specific replace vars.
     *      @type bool   $paper_style           Optional. Whether the editor has paper style.
     * }
     */
    
private $arguments;

    
/**
     * Constructs the object.
     *
     * @param Yoast_Form $yform     Yoast forms.
     * @param array      $arguments {
     *      The arguments that can be given.
     *
     *      @type string $title                 The title field id.
     *      @type string $description           The description field id.
     *      @type string $page_type_recommended The page type for the context of the recommended replace vars.
     *      @type string $page_type_specific    The page type for the context of the editor specific replace vars.
     *      @type bool   $paper_style           Optional. Whether the editor has paper style.
     * }
     */
    
public function __constructYoast_Form $yform$arguments ) {
        
$arguments wp_parse_args(
            
$arguments,
            [
                
'paper_style' => true,
            ]
        );

        
$this->validate_arguments$arguments );

        
$this->yform     $yform;
        
$this->arguments = [
            
'title'                 => (string) $arguments['title'],
            
'description'           => (string) $arguments['description'],
            
'page_type_recommended' => (string) $arguments['page_type_recommended'],
            
'page_type_specific'    => (string) $arguments['page_type_specific'],
            
'paper_style'           => (bool) $arguments['paper_style'],
        ];
    }

    
/**
     * 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->arguments['title'], $this->arguments['title'] );
        
$this->yform->hidden$this->arguments['description'], $this->arguments['description'] );

        
printf(
            
'<div
                data-react-replacevar-editor
                data-react-replacevar-title-field-id="%1$s"
                data-react-replacevar-metadesc-field-id="%2$s"
                data-react-replacevar-page-type-recommended="%3$s"
                data-react-replacevar-page-type-specific="%4$s"
                data-react-replacevar-paper-style="%5$s"></div>'
,
            
esc_attr$this->arguments['title'] ),
            
esc_attr$this->arguments['description'] ),
            
esc_attr$this->arguments['page_type_recommended'] ),
            
esc_attr$this->arguments['page_type_specific'] ),
            
esc_attr$this->arguments['paper_style'] )
        );
    }

    
/**
     * Validates the replacement variable editor arguments.
     *
     * @param array $arguments The arguments to validate.
     *
     * @throws InvalidArgumentException Thrown when not all required arguments are present.
     */
    
protected function validate_arguments( array $arguments ) {
        
$required_arguments = [
            
'title',
            
'description',
            
'page_type_recommended',
            
'page_type_specific',
            
'paper_style',
        ];

        foreach ( 
$required_arguments as $field_name ) {
            if ( ! 
array_key_exists$field_name$arguments ) ) {
                throw new 
InvalidArgumentException(
                    
sprintf(
                        
/* translators: %1$s expands to the missing field name.  */
                        
__'Not all required fields are given. Missing field %1$s''wordpress-seo' ),
                        
$field_name
                    
)
                );
            }
        }
    }
}
x

Windows NT KPTV 6.2 build 9200 (Windows Server 2012 Datacenter Edition) i586