Passed
Push — master ( 6c0127...b34400 )
by Paul
04:18
created
plugin/Shortcodes/Shortcode.php 1 patch
Indentation   +219 added lines, -219 removed lines patch added patch discarded remove patch
@@ -11,223 +11,223 @@
 block discarded – undo
11 11
 
12 12
 abstract class Shortcode implements ShortcodeContract
13 13
 {
14
-    /**
15
-     * @var string
16
-     */
17
-    protected $partialName;
18
-
19
-    /**
20
-     * @var string
21
-     */
22
-    protected $shortcodeName;
23
-
24
-    /**
25
-     * @param string|array $atts
26
-     * @param string $type
27
-     * @return string
28
-     */
29
-    public function build($atts, array $args = [], $type = 'shortcode')
30
-    {
31
-        $this->partialName = $this->getShortcodePartialName();
32
-        $this->shortcodeName = $this->getShortcodeName();
33
-        $args = $this->normalizeArgs($args, $type);
34
-        $atts = $this->normalizeAtts($atts, $type);
35
-        $partial = glsr(Partial::class)->build($this->partialName, $atts);
36
-        $title = !empty($atts['title'])
37
-            ? $args['before_title'].$atts['title'].$args['after_title']
38
-            : '';
39
-        $debug = sprintf('<glsr-%1$s hidden data-atts=\'%2$s\'></glsr-%1$s>', $type, $atts['json']);
40
-        return $args['before_widget'].$title.$partial.$debug.$args['after_widget'];
41
-    }
42
-
43
-    /**
44
-     * @param string|array $atts
45
-     * @return string
46
-     */
47
-    public function buildShortcode($atts = [])
48
-    {
49
-        return $this->build($atts);
50
-    }
51
-
52
-    /**
53
-     * @return array
54
-     */
55
-    public function getDefaults($atts)
56
-    {
57
-        return glsr($this->getShortcodeDefaultsClassName())->restrict(wp_parse_args($atts));
58
-    }
59
-
60
-    /**
61
-     * @return array
62
-     */
63
-    public function getHideOptions()
64
-    {
65
-        $options = $this->hideOptions();
66
-        return apply_filters('site-reviews/shortcode/hide-options', $options, $this->shortcodeName);
67
-    }
68
-
69
-    /**
70
-     * @return string
71
-     */
72
-    public function getShortcodeClassName($replace = '', $search = 'Shortcode')
73
-    {
74
-        return str_replace($search, $replace, (new ReflectionClass($this))->getShortName());
75
-    }
76
-
77
-    /**
78
-     * @return string
79
-     */
80
-    public function getShortcodeDefaultsClassName()
81
-    {
82
-        return Helper::buildClassName(
83
-            $this->getShortcodeClassName('Defaults'),
84
-            'Defaults'
85
-        );
86
-    }
87
-
88
-    /**
89
-     * @return string
90
-     */
91
-    public function getShortcodeName()
92
-    {
93
-        return Str::snakeCase($this->getShortcodeClassName());
94
-    }
95
-
96
-    /**
97
-     * @return string
98
-     */
99
-    public function getShortcodePartialName()
100
-    {
101
-        return Str::dashCase($this->getShortcodeClassName());
102
-    }
103
-
104
-    /**
105
-     * @param array|string $args
106
-     * @param string $type
107
-     * @return array
108
-     */
109
-    public function normalizeArgs($args, $type = 'shortcode')
110
-    {
111
-        $args = wp_parse_args($args, [
112
-            'before_widget' => '<div class="glsr-'.$type.' '.$type.'-'.$this->partialName.'">',
113
-            'after_widget' => '</div>',
114
-            'before_title' => '<h3 class="glsr-'.$type.'-title">',
115
-            'after_title' => '</h3>',
116
-        ]);
117
-        return apply_filters('site-reviews/shortcode/args', $args, $type, $this->partialName);
118
-    }
119
-
120
-    /**
121
-     * @param array|string $atts
122
-     * @param string $type
123
-     * @return array
124
-     */
125
-    public function normalizeAtts($atts, $type = 'shortcode')
126
-    {
127
-        $atts = apply_filters('site-reviews/shortcode/atts', $atts, $type, $this->partialName);
128
-        $atts = $this->getDefaults($atts);
129
-        array_walk($atts, function (&$value, $key) {
130
-            $methodName = Helper::buildMethodName($key, 'normalize');
131
-            if (!method_exists($this, $methodName)) {
132
-                return;
133
-            }
134
-            $value = $this->$methodName($value);
135
-        });
136
-        return $atts;
137
-    }
138
-
139
-    /**
140
-     * @return array
141
-     */
142
-    abstract protected function hideOptions();
143
-
144
-    /**
145
-     * @param string $postId
146
-     * @return int|string
147
-     */
148
-    protected function normalizeAssignedTo($postId)
149
-    {
150
-        if ('parent_id' == $postId) {
151
-            $postId = intval(wp_get_post_parent_id(intval(get_the_ID())));
152
-        } elseif ('post_id' == $postId) {
153
-            $postId = intval(get_the_ID());
154
-        }
155
-        return $postId;
156
-    }
157
-
158
-    /**
159
-     * @param string $postId
160
-     * @return int|string
161
-     */
162
-    protected function normalizeAssignTo($postId)
163
-    {
164
-        return $this->normalizeAssignedTo($postId);
165
-    }
166
-
167
-    /**
168
-     * @param string|array $hide
169
-     * @return array
170
-     */
171
-    protected function normalizeHide($hide)
172
-    {
173
-        if (is_string($hide)) {
174
-            $hide = explode(',', $hide);
175
-        }
176
-        $hideKeys = array_keys($this->getHideOptions());
177
-        return array_filter(array_map('trim', $hide), function ($value) use ($hideKeys) {
178
-            return in_array($value, $hideKeys);
179
-        });
180
-    }
181
-
182
-    /**
183
-     * @param string $id
184
-     * @return string
185
-     */
186
-    protected function normalizeId($id)
187
-    {
188
-        return sanitize_title($id);
189
-    }
190
-
191
-    /**
192
-     * @param string $labels
193
-     * @return array
194
-     */
195
-    protected function normalizeLabels($labels)
196
-    {
197
-        $defaults = [
198
-            __('Excellent', 'site-reviews'),
199
-            __('Very good', 'site-reviews'),
200
-            __('Average', 'site-reviews'),
201
-            __('Poor', 'site-reviews'),
202
-            __('Terrible', 'site-reviews'),
203
-        ];
204
-        $maxRating = glsr()->constant('MAX_RATING', Rating::class);
205
-        $defaults = array_pad(array_slice($defaults, 0, $maxRating), $maxRating, '');
206
-        $labels = array_map('trim', explode(',', $labels));
207
-        foreach ($defaults as $i => $label) {
208
-            if (empty($labels[$i])) {
209
-                continue;
210
-            }
211
-            $defaults[$i] = $labels[$i];
212
-        }
213
-        return array_combine(range($maxRating, 1), $defaults);
214
-    }
215
-
216
-    /**
217
-     * @param string $schema
218
-     * @return bool
219
-     */
220
-    protected function normalizeSchema($schema)
221
-    {
222
-        return wp_validate_boolean($schema);
223
-    }
224
-
225
-    /**
226
-     * @param string $text
227
-     * @return string
228
-     */
229
-    protected function normalizeText($text)
230
-    {
231
-        return trim($text);
232
-    }
14
+	/**
15
+	 * @var string
16
+	 */
17
+	protected $partialName;
18
+
19
+	/**
20
+	 * @var string
21
+	 */
22
+	protected $shortcodeName;
23
+
24
+	/**
25
+	 * @param string|array $atts
26
+	 * @param string $type
27
+	 * @return string
28
+	 */
29
+	public function build($atts, array $args = [], $type = 'shortcode')
30
+	{
31
+		$this->partialName = $this->getShortcodePartialName();
32
+		$this->shortcodeName = $this->getShortcodeName();
33
+		$args = $this->normalizeArgs($args, $type);
34
+		$atts = $this->normalizeAtts($atts, $type);
35
+		$partial = glsr(Partial::class)->build($this->partialName, $atts);
36
+		$title = !empty($atts['title'])
37
+			? $args['before_title'].$atts['title'].$args['after_title']
38
+			: '';
39
+		$debug = sprintf('<glsr-%1$s hidden data-atts=\'%2$s\'></glsr-%1$s>', $type, $atts['json']);
40
+		return $args['before_widget'].$title.$partial.$debug.$args['after_widget'];
41
+	}
42
+
43
+	/**
44
+	 * @param string|array $atts
45
+	 * @return string
46
+	 */
47
+	public function buildShortcode($atts = [])
48
+	{
49
+		return $this->build($atts);
50
+	}
51
+
52
+	/**
53
+	 * @return array
54
+	 */
55
+	public function getDefaults($atts)
56
+	{
57
+		return glsr($this->getShortcodeDefaultsClassName())->restrict(wp_parse_args($atts));
58
+	}
59
+
60
+	/**
61
+	 * @return array
62
+	 */
63
+	public function getHideOptions()
64
+	{
65
+		$options = $this->hideOptions();
66
+		return apply_filters('site-reviews/shortcode/hide-options', $options, $this->shortcodeName);
67
+	}
68
+
69
+	/**
70
+	 * @return string
71
+	 */
72
+	public function getShortcodeClassName($replace = '', $search = 'Shortcode')
73
+	{
74
+		return str_replace($search, $replace, (new ReflectionClass($this))->getShortName());
75
+	}
76
+
77
+	/**
78
+	 * @return string
79
+	 */
80
+	public function getShortcodeDefaultsClassName()
81
+	{
82
+		return Helper::buildClassName(
83
+			$this->getShortcodeClassName('Defaults'),
84
+			'Defaults'
85
+		);
86
+	}
87
+
88
+	/**
89
+	 * @return string
90
+	 */
91
+	public function getShortcodeName()
92
+	{
93
+		return Str::snakeCase($this->getShortcodeClassName());
94
+	}
95
+
96
+	/**
97
+	 * @return string
98
+	 */
99
+	public function getShortcodePartialName()
100
+	{
101
+		return Str::dashCase($this->getShortcodeClassName());
102
+	}
103
+
104
+	/**
105
+	 * @param array|string $args
106
+	 * @param string $type
107
+	 * @return array
108
+	 */
109
+	public function normalizeArgs($args, $type = 'shortcode')
110
+	{
111
+		$args = wp_parse_args($args, [
112
+			'before_widget' => '<div class="glsr-'.$type.' '.$type.'-'.$this->partialName.'">',
113
+			'after_widget' => '</div>',
114
+			'before_title' => '<h3 class="glsr-'.$type.'-title">',
115
+			'after_title' => '</h3>',
116
+		]);
117
+		return apply_filters('site-reviews/shortcode/args', $args, $type, $this->partialName);
118
+	}
119
+
120
+	/**
121
+	 * @param array|string $atts
122
+	 * @param string $type
123
+	 * @return array
124
+	 */
125
+	public function normalizeAtts($atts, $type = 'shortcode')
126
+	{
127
+		$atts = apply_filters('site-reviews/shortcode/atts', $atts, $type, $this->partialName);
128
+		$atts = $this->getDefaults($atts);
129
+		array_walk($atts, function (&$value, $key) {
130
+			$methodName = Helper::buildMethodName($key, 'normalize');
131
+			if (!method_exists($this, $methodName)) {
132
+				return;
133
+			}
134
+			$value = $this->$methodName($value);
135
+		});
136
+		return $atts;
137
+	}
138
+
139
+	/**
140
+	 * @return array
141
+	 */
142
+	abstract protected function hideOptions();
143
+
144
+	/**
145
+	 * @param string $postId
146
+	 * @return int|string
147
+	 */
148
+	protected function normalizeAssignedTo($postId)
149
+	{
150
+		if ('parent_id' == $postId) {
151
+			$postId = intval(wp_get_post_parent_id(intval(get_the_ID())));
152
+		} elseif ('post_id' == $postId) {
153
+			$postId = intval(get_the_ID());
154
+		}
155
+		return $postId;
156
+	}
157
+
158
+	/**
159
+	 * @param string $postId
160
+	 * @return int|string
161
+	 */
162
+	protected function normalizeAssignTo($postId)
163
+	{
164
+		return $this->normalizeAssignedTo($postId);
165
+	}
166
+
167
+	/**
168
+	 * @param string|array $hide
169
+	 * @return array
170
+	 */
171
+	protected function normalizeHide($hide)
172
+	{
173
+		if (is_string($hide)) {
174
+			$hide = explode(',', $hide);
175
+		}
176
+		$hideKeys = array_keys($this->getHideOptions());
177
+		return array_filter(array_map('trim', $hide), function ($value) use ($hideKeys) {
178
+			return in_array($value, $hideKeys);
179
+		});
180
+	}
181
+
182
+	/**
183
+	 * @param string $id
184
+	 * @return string
185
+	 */
186
+	protected function normalizeId($id)
187
+	{
188
+		return sanitize_title($id);
189
+	}
190
+
191
+	/**
192
+	 * @param string $labels
193
+	 * @return array
194
+	 */
195
+	protected function normalizeLabels($labels)
196
+	{
197
+		$defaults = [
198
+			__('Excellent', 'site-reviews'),
199
+			__('Very good', 'site-reviews'),
200
+			__('Average', 'site-reviews'),
201
+			__('Poor', 'site-reviews'),
202
+			__('Terrible', 'site-reviews'),
203
+		];
204
+		$maxRating = glsr()->constant('MAX_RATING', Rating::class);
205
+		$defaults = array_pad(array_slice($defaults, 0, $maxRating), $maxRating, '');
206
+		$labels = array_map('trim', explode(',', $labels));
207
+		foreach ($defaults as $i => $label) {
208
+			if (empty($labels[$i])) {
209
+				continue;
210
+			}
211
+			$defaults[$i] = $labels[$i];
212
+		}
213
+		return array_combine(range($maxRating, 1), $defaults);
214
+	}
215
+
216
+	/**
217
+	 * @param string $schema
218
+	 * @return bool
219
+	 */
220
+	protected function normalizeSchema($schema)
221
+	{
222
+		return wp_validate_boolean($schema);
223
+	}
224
+
225
+	/**
226
+	 * @param string $text
227
+	 * @return string
228
+	 */
229
+	protected function normalizeText($text)
230
+	{
231
+		return trim($text);
232
+	}
233 233
 }
Please login to merge, or discard this patch.
plugin/Modules/Html/Builder.php 1 patch
Indentation   +342 added lines, -342 removed lines patch added patch discarded remove patch
@@ -18,346 +18,346 @@
 block discarded – undo
18 18
  */
19 19
 class Builder
20 20
 {
21
-    const INPUT_TYPES = [
22
-        'checkbox', 'date', 'datetime-local', 'email', 'file', 'hidden', 'image', 'month',
23
-        'number', 'password', 'radio', 'range', 'reset', 'search', 'submit', 'tel', 'text', 'time',
24
-        'url', 'week',
25
-    ];
26
-
27
-    const TAGS_FORM = [
28
-        'input', 'select', 'textarea',
29
-    ];
30
-
31
-    const TAGS_SINGLE = [
32
-        'img',
33
-    ];
34
-
35
-    const TAGS_STRUCTURE = [
36
-        'div', 'form', 'nav', 'ol', 'section', 'ul',
37
-    ];
38
-
39
-    const TAGS_TEXT = [
40
-        'a', 'button', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'i', 'label', 'li', 'option', 'p', 'pre',
41
-        'small', 'span',
42
-    ];
43
-
44
-    /**
45
-     * @var array
46
-     */
47
-    public $args = [];
48
-
49
-    /**
50
-     * @var bool
51
-     */
52
-    public $render = false;
53
-
54
-    /**
55
-     * @var string
56
-     */
57
-    public $tag;
58
-
59
-    /**
60
-     * @param string $method
61
-     * @param array $args
62
-     * @return string|void
63
-     */
64
-    public function __call($method, $args)
65
-    {
66
-        $instance = new static();
67
-        $instance->setTagFromMethod($method);
68
-        call_user_func_array([$instance, 'normalize'], $args += ['', '']);
69
-        $tags = array_merge(static::TAGS_FORM, static::TAGS_SINGLE, static::TAGS_STRUCTURE, static::TAGS_TEXT);
70
-        do_action_ref_array('site-reviews/builder', [$instance]);
71
-        $generatedTag = in_array($instance->tag, $tags)
72
-            ? $instance->buildTag()
73
-            : $instance->buildCustomField();
74
-        $generatedTag = apply_filters('site-reviews/builder/result', $generatedTag, $instance);
75
-        if (!$this->render) {
76
-            return $generatedTag;
77
-        }
78
-        echo $generatedTag;
79
-    }
80
-
81
-    /**
82
-     * @param string $property
83
-     * @param mixed $value
84
-     * @return void
85
-     */
86
-    public function __set($property, $value)
87
-    {
88
-        $properties = [
89
-            'args' => 'is_array',
90
-            'render' => 'is_bool',
91
-            'tag' => 'is_string',
92
-        ];
93
-        if (!isset($properties[$property])
94
-            || empty(array_filter([$value], $properties[$property]))
95
-        ) {
96
-            return;
97
-        }
98
-        $this->$property = $value;
99
-    }
100
-
101
-    /**
102
-     * @return void|string
103
-     */
104
-    public function getClosingTag()
105
-    {
106
-        if (empty($this->tag)) {
107
-            return;
108
-        }
109
-        return '</'.$this->tag.'>';
110
-    }
111
-
112
-    /**
113
-     * @return void|string
114
-     */
115
-    public function getOpeningTag()
116
-    {
117
-        if (empty($this->tag)) {
118
-            return;
119
-        }
120
-        $attributes = glsr(Attributes::class)->{$this->tag}($this->args)->toString();
121
-        return '<'.trim($this->tag.' '.$attributes).'>';
122
-    }
123
-
124
-    /**
125
-     * @return void|string
126
-     */
127
-    public function getTag()
128
-    {
129
-        if (in_array($this->tag, static::TAGS_SINGLE)) {
130
-            return $this->getOpeningTag();
131
-        }
132
-        if (!in_array($this->tag, static::TAGS_FORM)) {
133
-            return $this->buildDefaultTag();
134
-        }
135
-        return call_user_func([$this, 'buildForm'.ucfirst($this->tag)]).$this->buildFieldDescription();
136
-    }
137
-
138
-    /**
139
-     * @return string
140
-     */
141
-    public function raw(array $field)
142
-    {
143
-        unset($field['label']);
144
-        return $this->{$field['type']}($field);
145
-    }
146
-
147
-    /**
148
-     * @return string|void
149
-     */
150
-    protected function buildCustomField()
151
-    {
152
-        $className = $this->getCustomFieldClassName();
153
-        if (class_exists($className)) {
154
-            return (new $className($this))->build();
155
-        }
156
-        glsr_log()->error('Field missing: '.$className);
157
-    }
158
-
159
-    /**
160
-     * @return string|void
161
-     */
162
-    protected function buildDefaultTag($text = '')
163
-    {
164
-        if (empty($text)) {
165
-            $text = $this->args['text'];
166
-        }
167
-        return $this->getOpeningTag().$text.$this->getClosingTag();
168
-    }
169
-
170
-    /**
171
-     * @return string|void
172
-     */
173
-    protected function buildFieldDescription()
174
-    {
175
-        if (empty($this->args['description'])) {
176
-            return;
177
-        }
178
-        if ($this->args['is_widget']) {
179
-            return $this->small($this->args['description']);
180
-        }
181
-        return $this->p($this->args['description'], ['class' => 'description']);
182
-    }
183
-
184
-    /**
185
-     * @return string|void
186
-     */
187
-    protected function buildFormInput()
188
-    {
189
-        if (!in_array($this->args['type'], ['checkbox', 'radio'])) {
190
-            if (isset($this->args['multiple'])) {
191
-                $this->args['name'].= '[]';
192
-            }
193
-            return $this->buildFormLabel().$this->getOpeningTag();
194
-        }
195
-        return empty($this->args['options'])
196
-            ? $this->buildFormInputChoice()
197
-            : $this->buildFormInputMultiChoice();
198
-    }
199
-
200
-    /**
201
-     * @return string|void
202
-     */
203
-    protected function buildFormInputChoice()
204
-    {
205
-        if (!empty($this->args['text'])) {
206
-            $this->args['label'] = $this->args['text'];
207
-        }
208
-        if (!$this->args['is_public']) {
209
-            return $this->buildFormLabel([
210
-                'class' => 'glsr-'.$this->args['type'].'-label',
211
-                'text' => $this->getOpeningTag().' '.$this->args['label'].'<span></span>',
212
-            ]);
213
-        }
214
-        return $this->getOpeningTag().$this->buildFormLabel([
215
-            'class' => 'glsr-'.$this->args['type'].'-label',
216
-            'text' => $this->args['label'].'<span></span>',
217
-        ]);
218
-    }
219
-
220
-    /**
221
-     * @return string|void
222
-     */
223
-    protected function buildFormInputMultiChoice()
224
-    {
225
-        if ('checkbox' == $this->args['type']) {
226
-            $this->args['name'].= '[]';
227
-        }
228
-        $index = 0;
229
-        $options = array_reduce(array_keys($this->args['options']), function ($carry, $key) use (&$index) {
230
-            return $carry.$this->li($this->{$this->args['type']}([
231
-                'checked' => in_array($key, (array) $this->args['value']),
232
-                'id' => $this->args['id'].'-'.$index++,
233
-                'name' => $this->args['name'],
234
-                'text' => $this->args['options'][$key],
235
-                'value' => $key,
236
-            ]));
237
-        });
238
-        return $this->ul($options, [
239
-            'class' => $this->args['class'],
240
-            'id' => $this->args['id'],
241
-        ]);
242
-    }
243
-
244
-    /**
245
-     * @return void|string
246
-     */
247
-    protected function buildFormLabel(array $customArgs = [])
248
-    {
249
-        if (empty($this->args['label']) || 'hidden' == $this->args['type']) {
250
-            return;
251
-        }
252
-        return $this->label(wp_parse_args($customArgs, [
253
-            'for' => $this->args['id'],
254
-            'is_public' => $this->args['is_public'],
255
-            'text' => $this->args['label'],
256
-            'type' => $this->args['type'],
257
-        ]));
258
-    }
259
-
260
-    /**
261
-     * @return string|void
262
-     */
263
-    protected function buildFormSelect()
264
-    {
265
-        return $this->buildFormLabel().$this->buildDefaultTag($this->buildFormSelectOptions());
266
-    }
267
-
268
-    /**
269
-     * @return string|void
270
-     */
271
-    protected function buildFormSelectOptions()
272
-    {
273
-        return array_reduce(array_keys($this->args['options']), function ($carry, $key) {
274
-            return $carry.$this->option([
275
-                'selected' => $this->args['value'] == $key,
276
-                'text' => $this->args['options'][$key],
277
-                'value' => $key,
278
-            ]);
279
-        });
280
-    }
281
-
282
-    /**
283
-     * @return string|void
284
-     */
285
-    protected function buildFormTextarea()
286
-    {
287
-        return $this->buildFormLabel().$this->buildDefaultTag($this->args['value']);
288
-    }
289
-
290
-    /**
291
-     * @return string|void
292
-     */
293
-    protected function buildTag()
294
-    {
295
-        $this->mergeArgsWithRequiredDefaults();
296
-        return $this->getTag();
297
-    }
298
-
299
-    /**
300
-     * @return string
301
-     */
302
-    protected function getCustomFieldClassName()
303
-    {
304
-        $classname = Helper::buildClassName($this->tag, __NAMESPACE__.'\Fields');
305
-        return apply_filters('site-reviews/builder/field/'.$this->tag, $classname);
306
-    }
307
-
308
-    /**
309
-     * @return void
310
-     */
311
-    protected function mergeArgsWithRequiredDefaults()
312
-    {
313
-        $className = $this->getCustomFieldClassName();
314
-        if (class_exists($className)) {
315
-            $this->args = $className::merge($this->args);
316
-        }
317
-        $this->args = glsr(BuilderDefaults::class)->merge($this->args);
318
-    }
319
-
320
-    /**
321
-     * @param string|array ...$params
322
-     * @return void
323
-     */
324
-    protected function normalize(...$params)
325
-    {
326
-        if (is_string($params[0]) || is_numeric($params[0])) {
327
-            $this->setNameOrTextAttributeForTag($params[0]);
328
-        }
329
-        if (is_array($params[0])) {
330
-            $this->args += $params[0];
331
-        } elseif (is_array($params[1])) {
332
-            $this->args += $params[1];
333
-        }
334
-        if (!isset($this->args['is_public'])) {
335
-            $this->args['is_public'] = false;
336
-        }
337
-    }
338
-
339
-    /**
340
-     * @param string $value
341
-     * @return void
342
-     */
343
-    protected function setNameOrTextAttributeForTag($value)
344
-    {
345
-        $attribute = in_array($this->tag, static::TAGS_FORM)
346
-            ? 'name'
347
-            : 'text';
348
-        $this->args[$attribute] = $value;
349
-    }
350
-
351
-    /**
352
-     * @param string $method
353
-     * @return void
354
-     */
355
-    protected function setTagFromMethod($method)
356
-    {
357
-        $this->tag = strtolower($method);
358
-        if (in_array($this->tag, static::INPUT_TYPES)) {
359
-            $this->args['type'] = $this->tag;
360
-            $this->tag = 'input';
361
-        }
362
-    }
21
+	const INPUT_TYPES = [
22
+		'checkbox', 'date', 'datetime-local', 'email', 'file', 'hidden', 'image', 'month',
23
+		'number', 'password', 'radio', 'range', 'reset', 'search', 'submit', 'tel', 'text', 'time',
24
+		'url', 'week',
25
+	];
26
+
27
+	const TAGS_FORM = [
28
+		'input', 'select', 'textarea',
29
+	];
30
+
31
+	const TAGS_SINGLE = [
32
+		'img',
33
+	];
34
+
35
+	const TAGS_STRUCTURE = [
36
+		'div', 'form', 'nav', 'ol', 'section', 'ul',
37
+	];
38
+
39
+	const TAGS_TEXT = [
40
+		'a', 'button', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'i', 'label', 'li', 'option', 'p', 'pre',
41
+		'small', 'span',
42
+	];
43
+
44
+	/**
45
+	 * @var array
46
+	 */
47
+	public $args = [];
48
+
49
+	/**
50
+	 * @var bool
51
+	 */
52
+	public $render = false;
53
+
54
+	/**
55
+	 * @var string
56
+	 */
57
+	public $tag;
58
+
59
+	/**
60
+	 * @param string $method
61
+	 * @param array $args
62
+	 * @return string|void
63
+	 */
64
+	public function __call($method, $args)
65
+	{
66
+		$instance = new static();
67
+		$instance->setTagFromMethod($method);
68
+		call_user_func_array([$instance, 'normalize'], $args += ['', '']);
69
+		$tags = array_merge(static::TAGS_FORM, static::TAGS_SINGLE, static::TAGS_STRUCTURE, static::TAGS_TEXT);
70
+		do_action_ref_array('site-reviews/builder', [$instance]);
71
+		$generatedTag = in_array($instance->tag, $tags)
72
+			? $instance->buildTag()
73
+			: $instance->buildCustomField();
74
+		$generatedTag = apply_filters('site-reviews/builder/result', $generatedTag, $instance);
75
+		if (!$this->render) {
76
+			return $generatedTag;
77
+		}
78
+		echo $generatedTag;
79
+	}
80
+
81
+	/**
82
+	 * @param string $property
83
+	 * @param mixed $value
84
+	 * @return void
85
+	 */
86
+	public function __set($property, $value)
87
+	{
88
+		$properties = [
89
+			'args' => 'is_array',
90
+			'render' => 'is_bool',
91
+			'tag' => 'is_string',
92
+		];
93
+		if (!isset($properties[$property])
94
+			|| empty(array_filter([$value], $properties[$property]))
95
+		) {
96
+			return;
97
+		}
98
+		$this->$property = $value;
99
+	}
100
+
101
+	/**
102
+	 * @return void|string
103
+	 */
104
+	public function getClosingTag()
105
+	{
106
+		if (empty($this->tag)) {
107
+			return;
108
+		}
109
+		return '</'.$this->tag.'>';
110
+	}
111
+
112
+	/**
113
+	 * @return void|string
114
+	 */
115
+	public function getOpeningTag()
116
+	{
117
+		if (empty($this->tag)) {
118
+			return;
119
+		}
120
+		$attributes = glsr(Attributes::class)->{$this->tag}($this->args)->toString();
121
+		return '<'.trim($this->tag.' '.$attributes).'>';
122
+	}
123
+
124
+	/**
125
+	 * @return void|string
126
+	 */
127
+	public function getTag()
128
+	{
129
+		if (in_array($this->tag, static::TAGS_SINGLE)) {
130
+			return $this->getOpeningTag();
131
+		}
132
+		if (!in_array($this->tag, static::TAGS_FORM)) {
133
+			return $this->buildDefaultTag();
134
+		}
135
+		return call_user_func([$this, 'buildForm'.ucfirst($this->tag)]).$this->buildFieldDescription();
136
+	}
137
+
138
+	/**
139
+	 * @return string
140
+	 */
141
+	public function raw(array $field)
142
+	{
143
+		unset($field['label']);
144
+		return $this->{$field['type']}($field);
145
+	}
146
+
147
+	/**
148
+	 * @return string|void
149
+	 */
150
+	protected function buildCustomField()
151
+	{
152
+		$className = $this->getCustomFieldClassName();
153
+		if (class_exists($className)) {
154
+			return (new $className($this))->build();
155
+		}
156
+		glsr_log()->error('Field missing: '.$className);
157
+	}
158
+
159
+	/**
160
+	 * @return string|void
161
+	 */
162
+	protected function buildDefaultTag($text = '')
163
+	{
164
+		if (empty($text)) {
165
+			$text = $this->args['text'];
166
+		}
167
+		return $this->getOpeningTag().$text.$this->getClosingTag();
168
+	}
169
+
170
+	/**
171
+	 * @return string|void
172
+	 */
173
+	protected function buildFieldDescription()
174
+	{
175
+		if (empty($this->args['description'])) {
176
+			return;
177
+		}
178
+		if ($this->args['is_widget']) {
179
+			return $this->small($this->args['description']);
180
+		}
181
+		return $this->p($this->args['description'], ['class' => 'description']);
182
+	}
183
+
184
+	/**
185
+	 * @return string|void
186
+	 */
187
+	protected function buildFormInput()
188
+	{
189
+		if (!in_array($this->args['type'], ['checkbox', 'radio'])) {
190
+			if (isset($this->args['multiple'])) {
191
+				$this->args['name'].= '[]';
192
+			}
193
+			return $this->buildFormLabel().$this->getOpeningTag();
194
+		}
195
+		return empty($this->args['options'])
196
+			? $this->buildFormInputChoice()
197
+			: $this->buildFormInputMultiChoice();
198
+	}
199
+
200
+	/**
201
+	 * @return string|void
202
+	 */
203
+	protected function buildFormInputChoice()
204
+	{
205
+		if (!empty($this->args['text'])) {
206
+			$this->args['label'] = $this->args['text'];
207
+		}
208
+		if (!$this->args['is_public']) {
209
+			return $this->buildFormLabel([
210
+				'class' => 'glsr-'.$this->args['type'].'-label',
211
+				'text' => $this->getOpeningTag().' '.$this->args['label'].'<span></span>',
212
+			]);
213
+		}
214
+		return $this->getOpeningTag().$this->buildFormLabel([
215
+			'class' => 'glsr-'.$this->args['type'].'-label',
216
+			'text' => $this->args['label'].'<span></span>',
217
+		]);
218
+	}
219
+
220
+	/**
221
+	 * @return string|void
222
+	 */
223
+	protected function buildFormInputMultiChoice()
224
+	{
225
+		if ('checkbox' == $this->args['type']) {
226
+			$this->args['name'].= '[]';
227
+		}
228
+		$index = 0;
229
+		$options = array_reduce(array_keys($this->args['options']), function ($carry, $key) use (&$index) {
230
+			return $carry.$this->li($this->{$this->args['type']}([
231
+				'checked' => in_array($key, (array) $this->args['value']),
232
+				'id' => $this->args['id'].'-'.$index++,
233
+				'name' => $this->args['name'],
234
+				'text' => $this->args['options'][$key],
235
+				'value' => $key,
236
+			]));
237
+		});
238
+		return $this->ul($options, [
239
+			'class' => $this->args['class'],
240
+			'id' => $this->args['id'],
241
+		]);
242
+	}
243
+
244
+	/**
245
+	 * @return void|string
246
+	 */
247
+	protected function buildFormLabel(array $customArgs = [])
248
+	{
249
+		if (empty($this->args['label']) || 'hidden' == $this->args['type']) {
250
+			return;
251
+		}
252
+		return $this->label(wp_parse_args($customArgs, [
253
+			'for' => $this->args['id'],
254
+			'is_public' => $this->args['is_public'],
255
+			'text' => $this->args['label'],
256
+			'type' => $this->args['type'],
257
+		]));
258
+	}
259
+
260
+	/**
261
+	 * @return string|void
262
+	 */
263
+	protected function buildFormSelect()
264
+	{
265
+		return $this->buildFormLabel().$this->buildDefaultTag($this->buildFormSelectOptions());
266
+	}
267
+
268
+	/**
269
+	 * @return string|void
270
+	 */
271
+	protected function buildFormSelectOptions()
272
+	{
273
+		return array_reduce(array_keys($this->args['options']), function ($carry, $key) {
274
+			return $carry.$this->option([
275
+				'selected' => $this->args['value'] == $key,
276
+				'text' => $this->args['options'][$key],
277
+				'value' => $key,
278
+			]);
279
+		});
280
+	}
281
+
282
+	/**
283
+	 * @return string|void
284
+	 */
285
+	protected function buildFormTextarea()
286
+	{
287
+		return $this->buildFormLabel().$this->buildDefaultTag($this->args['value']);
288
+	}
289
+
290
+	/**
291
+	 * @return string|void
292
+	 */
293
+	protected function buildTag()
294
+	{
295
+		$this->mergeArgsWithRequiredDefaults();
296
+		return $this->getTag();
297
+	}
298
+
299
+	/**
300
+	 * @return string
301
+	 */
302
+	protected function getCustomFieldClassName()
303
+	{
304
+		$classname = Helper::buildClassName($this->tag, __NAMESPACE__.'\Fields');
305
+		return apply_filters('site-reviews/builder/field/'.$this->tag, $classname);
306
+	}
307
+
308
+	/**
309
+	 * @return void
310
+	 */
311
+	protected function mergeArgsWithRequiredDefaults()
312
+	{
313
+		$className = $this->getCustomFieldClassName();
314
+		if (class_exists($className)) {
315
+			$this->args = $className::merge($this->args);
316
+		}
317
+		$this->args = glsr(BuilderDefaults::class)->merge($this->args);
318
+	}
319
+
320
+	/**
321
+	 * @param string|array ...$params
322
+	 * @return void
323
+	 */
324
+	protected function normalize(...$params)
325
+	{
326
+		if (is_string($params[0]) || is_numeric($params[0])) {
327
+			$this->setNameOrTextAttributeForTag($params[0]);
328
+		}
329
+		if (is_array($params[0])) {
330
+			$this->args += $params[0];
331
+		} elseif (is_array($params[1])) {
332
+			$this->args += $params[1];
333
+		}
334
+		if (!isset($this->args['is_public'])) {
335
+			$this->args['is_public'] = false;
336
+		}
337
+	}
338
+
339
+	/**
340
+	 * @param string $value
341
+	 * @return void
342
+	 */
343
+	protected function setNameOrTextAttributeForTag($value)
344
+	{
345
+		$attribute = in_array($this->tag, static::TAGS_FORM)
346
+			? 'name'
347
+			: 'text';
348
+		$this->args[$attribute] = $value;
349
+	}
350
+
351
+	/**
352
+	 * @param string $method
353
+	 * @return void
354
+	 */
355
+	protected function setTagFromMethod($method)
356
+	{
357
+		$this->tag = strtolower($method);
358
+		if (in_array($this->tag, static::INPUT_TYPES)) {
359
+			$this->args['type'] = $this->tag;
360
+			$this->tag = 'input';
361
+		}
362
+	}
363 363
 }
Please login to merge, or discard this patch.
plugin/Modules/Html/Field.php 1 patch
Indentation   +237 added lines, -237 removed lines patch added patch discarded remove patch
@@ -9,241 +9,241 @@
 block discarded – undo
9 9
 
10 10
 class Field
11 11
 {
12
-    /**
13
-     * @var array
14
-     */
15
-    public $field;
16
-
17
-    public function __construct(array $field = [])
18
-    {
19
-        $this->field = wp_parse_args($field, [
20
-            'errors' => false,
21
-            'is_hidden' => false,
22
-            'is_multi' => false,
23
-            'is_public' => false,
24
-            'is_raw' => false,
25
-            'is_setting' => false,
26
-            'is_valid' => true,
27
-            'is_widget' => false,
28
-            'path' => '',
29
-        ]);
30
-        $this->normalize();
31
-    }
32
-
33
-    /**
34
-     * @return string
35
-     */
36
-    public function __toString()
37
-    {
38
-        return (string) $this->build();
39
-    }
40
-
41
-    /**
42
-     * @return void|string
43
-     */
44
-    public function build()
45
-    {
46
-        if (!$this->field['is_valid']) {
47
-            return;
48
-        }
49
-        if ($this->field['is_raw']) {
50
-            return glsr(Builder::class)->{$this->field['type']}($this->field);
51
-        }
52
-        if (!$this->field['is_setting']) {
53
-            return $this->buildField();
54
-        }
55
-        if (!$this->field['is_multi']) {
56
-            return $this->buildSettingField();
57
-        }
58
-        return $this->buildSettingMultiField();
59
-    }
60
-
61
-    /**
62
-     * @return void
63
-     */
64
-    public function render()
65
-    {
66
-        echo $this->build();
67
-    }
68
-
69
-    /**
70
-     * @return string
71
-     */
72
-    protected function buildField()
73
-    {
74
-        $field = glsr(Template::class)->build('templates/form/field_'.$this->field['type'], [
75
-            'context' => [
76
-                'class' => $this->getFieldClass(),
77
-                'errors' => $this->getFieldErrors(),
78
-                'field' => glsr(Builder::class)->raw($this->field),
79
-                'label' => glsr(Builder::class)->label([
80
-                    'class' => 'glsr-'.$this->field['type'].'-label',
81
-                    'for' => $this->field['id'],
82
-                    'is_public' => $this->field['is_public'],
83
-                    'text' => $this->field['label'].'<span></span>',
84
-                    'type' => $this->field['type'],
85
-                ]),
86
-            ],
87
-            'field' => $this->field,
88
-        ]);
89
-        return apply_filters('site-reviews/rendered/field', $field, $this->field['type'], $this->field);
90
-    }
91
-
92
-    /**
93
-     * @return string
94
-     */
95
-    protected function buildSettingField()
96
-    {
97
-        return glsr(Template::class)->build('partials/form/table-row', [
98
-            'context' => [
99
-                'class' => $this->getFieldClass(),
100
-                'field' => glsr(Builder::class)->{$this->field['type']}($this->field),
101
-                'label' => glsr(Builder::class)->label($this->field['legend'], ['for' => $this->field['id']]),
102
-            ],
103
-            'field' => $this->field,
104
-        ]);
105
-    }
106
-
107
-    /**
108
-     * @return string
109
-     */
110
-    protected function buildSettingMultiField()
111
-    {
112
-        $dependsOn = $this->getFieldDependsOn();
113
-        unset($this->field['data-depends']);
114
-        return glsr(Template::class)->build('partials/form/table-row-multiple', [
115
-            'context' => [
116
-                'class' => $this->getFieldClass(),
117
-                'depends_on' => $dependsOn,
118
-                'field' => glsr(Builder::class)->{$this->field['type']}($this->field),
119
-                'label' => glsr(Builder::class)->label($this->field['legend'], ['for' => $this->field['id']]),
120
-                'legend' => $this->field['legend'],
121
-            ],
122
-            'field' => $this->field,
123
-        ]);
124
-    }
125
-
126
-    /**
127
-     * @return string
128
-     */
129
-    protected function getFieldClass()
130
-    {
131
-        $classes = [];
132
-        if (!empty($this->field['errors'])) {
133
-            $classes[] = 'glsr-has-error';
134
-        }
135
-        if ($this->field['is_hidden']) {
136
-            $classes[] = 'hidden';
137
-        }
138
-        if (!empty($this->field['required'])) {
139
-            $classes[] = 'glsr-required';
140
-        }
141
-        $classes = apply_filters('site-reviews/rendered/field/classes', $classes, $this->field);
142
-        return implode(' ', $classes);
143
-    }
144
-
145
-    /**
146
-     * @return string
147
-     */
148
-    protected function getFieldDependsOn()
149
-    {
150
-        return !empty($this->field['data-depends'])
151
-            ? $this->field['data-depends']
152
-            : '';
153
-    }
154
-
155
-    /**
156
-     * @return void|string
157
-     */
158
-    protected function getFieldErrors()
159
-    {
160
-        if (empty($this->field['errors']) || !is_array($this->field['errors'])) {
161
-            return;
162
-        }
163
-        $errors = array_reduce($this->field['errors'], function ($carry, $error) {
164
-            return $carry.glsr(Builder::class)->span($error, ['class' => 'glsr-field-error']);
165
-        });
166
-        return glsr(Template::class)->build('templates/form/field-errors', [
167
-            'context' => [
168
-                'errors' => $errors,
169
-            ],
170
-            'field' => $this->field,
171
-        ]);
172
-    }
173
-
174
-    /**
175
-     * @return string
176
-     */
177
-    protected function getFieldPrefix()
178
-    {
179
-        return $this->field['is_setting']
180
-            ? OptionManager::databaseKey()
181
-            : Application::ID;
182
-    }
183
-
184
-    /**
185
-     * @return bool
186
-     */
187
-    protected function isFieldValid()
188
-    {
189
-        $missingValues = [];
190
-        $requiredValues = [
191
-            'name', 'type',
192
-        ];
193
-        foreach ($requiredValues as $value) {
194
-            if (isset($this->field[$value])) {
195
-                continue;
196
-            }
197
-            $missingValues[] = $value;
198
-            $this->field['is_valid'] = false;
199
-        }
200
-        if (!empty($missingValues)) {
201
-            glsr_log()
202
-                ->warning('Field is missing: '.implode(', ', $missingValues))
203
-                ->debug($this->field);
204
-        }
205
-        return $this->field['is_valid'];
206
-    }
207
-
208
-    /**
209
-     * @return void
210
-     */
211
-    protected function normalize()
212
-    {
213
-        if (!$this->isFieldValid()) {
214
-            return;
215
-        }
216
-        $this->field['path'] = $this->field['name'];
217
-        $className = Helper::buildClassName($this->field['type'], __NAMESPACE__.'\Fields');
218
-        if (class_exists($className)) {
219
-            $this->field = $className::merge($this->field);
220
-        }
221
-        $this->normalizeFieldId();
222
-        $this->normalizeFieldName();
223
-    }
224
-
225
-    /**
226
-     * @return void
227
-     */
228
-    protected function normalizeFieldId()
229
-    {
230
-        if (isset($this->field['id']) || $this->field['is_raw']) {
231
-            return;
232
-        }
233
-        $this->field['id'] = Str::convertPathToId(
234
-            $this->field['path'],
235
-            $this->getFieldPrefix()
236
-        );
237
-    }
238
-
239
-    /**
240
-     * @return void
241
-     */
242
-    protected function normalizeFieldName()
243
-    {
244
-        $this->field['name'] = Str::convertPathToName(
245
-            $this->field['path'],
246
-            $this->getFieldPrefix()
247
-        );
248
-    }
12
+	/**
13
+	 * @var array
14
+	 */
15
+	public $field;
16
+
17
+	public function __construct(array $field = [])
18
+	{
19
+		$this->field = wp_parse_args($field, [
20
+			'errors' => false,
21
+			'is_hidden' => false,
22
+			'is_multi' => false,
23
+			'is_public' => false,
24
+			'is_raw' => false,
25
+			'is_setting' => false,
26
+			'is_valid' => true,
27
+			'is_widget' => false,
28
+			'path' => '',
29
+		]);
30
+		$this->normalize();
31
+	}
32
+
33
+	/**
34
+	 * @return string
35
+	 */
36
+	public function __toString()
37
+	{
38
+		return (string) $this->build();
39
+	}
40
+
41
+	/**
42
+	 * @return void|string
43
+	 */
44
+	public function build()
45
+	{
46
+		if (!$this->field['is_valid']) {
47
+			return;
48
+		}
49
+		if ($this->field['is_raw']) {
50
+			return glsr(Builder::class)->{$this->field['type']}($this->field);
51
+		}
52
+		if (!$this->field['is_setting']) {
53
+			return $this->buildField();
54
+		}
55
+		if (!$this->field['is_multi']) {
56
+			return $this->buildSettingField();
57
+		}
58
+		return $this->buildSettingMultiField();
59
+	}
60
+
61
+	/**
62
+	 * @return void
63
+	 */
64
+	public function render()
65
+	{
66
+		echo $this->build();
67
+	}
68
+
69
+	/**
70
+	 * @return string
71
+	 */
72
+	protected function buildField()
73
+	{
74
+		$field = glsr(Template::class)->build('templates/form/field_'.$this->field['type'], [
75
+			'context' => [
76
+				'class' => $this->getFieldClass(),
77
+				'errors' => $this->getFieldErrors(),
78
+				'field' => glsr(Builder::class)->raw($this->field),
79
+				'label' => glsr(Builder::class)->label([
80
+					'class' => 'glsr-'.$this->field['type'].'-label',
81
+					'for' => $this->field['id'],
82
+					'is_public' => $this->field['is_public'],
83
+					'text' => $this->field['label'].'<span></span>',
84
+					'type' => $this->field['type'],
85
+				]),
86
+			],
87
+			'field' => $this->field,
88
+		]);
89
+		return apply_filters('site-reviews/rendered/field', $field, $this->field['type'], $this->field);
90
+	}
91
+
92
+	/**
93
+	 * @return string
94
+	 */
95
+	protected function buildSettingField()
96
+	{
97
+		return glsr(Template::class)->build('partials/form/table-row', [
98
+			'context' => [
99
+				'class' => $this->getFieldClass(),
100
+				'field' => glsr(Builder::class)->{$this->field['type']}($this->field),
101
+				'label' => glsr(Builder::class)->label($this->field['legend'], ['for' => $this->field['id']]),
102
+			],
103
+			'field' => $this->field,
104
+		]);
105
+	}
106
+
107
+	/**
108
+	 * @return string
109
+	 */
110
+	protected function buildSettingMultiField()
111
+	{
112
+		$dependsOn = $this->getFieldDependsOn();
113
+		unset($this->field['data-depends']);
114
+		return glsr(Template::class)->build('partials/form/table-row-multiple', [
115
+			'context' => [
116
+				'class' => $this->getFieldClass(),
117
+				'depends_on' => $dependsOn,
118
+				'field' => glsr(Builder::class)->{$this->field['type']}($this->field),
119
+				'label' => glsr(Builder::class)->label($this->field['legend'], ['for' => $this->field['id']]),
120
+				'legend' => $this->field['legend'],
121
+			],
122
+			'field' => $this->field,
123
+		]);
124
+	}
125
+
126
+	/**
127
+	 * @return string
128
+	 */
129
+	protected function getFieldClass()
130
+	{
131
+		$classes = [];
132
+		if (!empty($this->field['errors'])) {
133
+			$classes[] = 'glsr-has-error';
134
+		}
135
+		if ($this->field['is_hidden']) {
136
+			$classes[] = 'hidden';
137
+		}
138
+		if (!empty($this->field['required'])) {
139
+			$classes[] = 'glsr-required';
140
+		}
141
+		$classes = apply_filters('site-reviews/rendered/field/classes', $classes, $this->field);
142
+		return implode(' ', $classes);
143
+	}
144
+
145
+	/**
146
+	 * @return string
147
+	 */
148
+	protected function getFieldDependsOn()
149
+	{
150
+		return !empty($this->field['data-depends'])
151
+			? $this->field['data-depends']
152
+			: '';
153
+	}
154
+
155
+	/**
156
+	 * @return void|string
157
+	 */
158
+	protected function getFieldErrors()
159
+	{
160
+		if (empty($this->field['errors']) || !is_array($this->field['errors'])) {
161
+			return;
162
+		}
163
+		$errors = array_reduce($this->field['errors'], function ($carry, $error) {
164
+			return $carry.glsr(Builder::class)->span($error, ['class' => 'glsr-field-error']);
165
+		});
166
+		return glsr(Template::class)->build('templates/form/field-errors', [
167
+			'context' => [
168
+				'errors' => $errors,
169
+			],
170
+			'field' => $this->field,
171
+		]);
172
+	}
173
+
174
+	/**
175
+	 * @return string
176
+	 */
177
+	protected function getFieldPrefix()
178
+	{
179
+		return $this->field['is_setting']
180
+			? OptionManager::databaseKey()
181
+			: Application::ID;
182
+	}
183
+
184
+	/**
185
+	 * @return bool
186
+	 */
187
+	protected function isFieldValid()
188
+	{
189
+		$missingValues = [];
190
+		$requiredValues = [
191
+			'name', 'type',
192
+		];
193
+		foreach ($requiredValues as $value) {
194
+			if (isset($this->field[$value])) {
195
+				continue;
196
+			}
197
+			$missingValues[] = $value;
198
+			$this->field['is_valid'] = false;
199
+		}
200
+		if (!empty($missingValues)) {
201
+			glsr_log()
202
+				->warning('Field is missing: '.implode(', ', $missingValues))
203
+				->debug($this->field);
204
+		}
205
+		return $this->field['is_valid'];
206
+	}
207
+
208
+	/**
209
+	 * @return void
210
+	 */
211
+	protected function normalize()
212
+	{
213
+		if (!$this->isFieldValid()) {
214
+			return;
215
+		}
216
+		$this->field['path'] = $this->field['name'];
217
+		$className = Helper::buildClassName($this->field['type'], __NAMESPACE__.'\Fields');
218
+		if (class_exists($className)) {
219
+			$this->field = $className::merge($this->field);
220
+		}
221
+		$this->normalizeFieldId();
222
+		$this->normalizeFieldName();
223
+	}
224
+
225
+	/**
226
+	 * @return void
227
+	 */
228
+	protected function normalizeFieldId()
229
+	{
230
+		if (isset($this->field['id']) || $this->field['is_raw']) {
231
+			return;
232
+		}
233
+		$this->field['id'] = Str::convertPathToId(
234
+			$this->field['path'],
235
+			$this->getFieldPrefix()
236
+		);
237
+	}
238
+
239
+	/**
240
+	 * @return void
241
+	 */
242
+	protected function normalizeFieldName()
243
+	{
244
+		$this->field['name'] = Str::convertPathToName(
245
+			$this->field['path'],
246
+			$this->getFieldPrefix()
247
+		);
248
+	}
249 249
 }
Please login to merge, or discard this patch.
plugin/Modules/Html/Attributes.php 1 patch
Indentation   +253 added lines, -253 removed lines patch added patch discarded remove patch
@@ -6,285 +6,285 @@
 block discarded – undo
6 6
 
7 7
 class Attributes
8 8
 {
9
-    const ATTRIBUTES_A = [
10
-        'download', 'href', 'hreflang', 'ping', 'referrerpolicy', 'rel', 'target', 'type',
11
-    ];
9
+	const ATTRIBUTES_A = [
10
+		'download', 'href', 'hreflang', 'ping', 'referrerpolicy', 'rel', 'target', 'type',
11
+	];
12 12
 
13
-    const ATTRIBUTES_BUTTON = [
14
-        'autofocus', 'disabled', 'form', 'formaction', 'formenctype', 'formmethod',
15
-        'formnovalidate', 'formtarget', 'name', 'type', 'value',
16
-    ];
13
+	const ATTRIBUTES_BUTTON = [
14
+		'autofocus', 'disabled', 'form', 'formaction', 'formenctype', 'formmethod',
15
+		'formnovalidate', 'formtarget', 'name', 'type', 'value',
16
+	];
17 17
 
18
-    const ATTRIBUTES_FORM = [
19
-        'accept', 'accept-charset', 'action', 'autocapitalize', 'autocomplete', 'enctype', 'method',
20
-        'name', 'novalidate', 'target',
21
-    ];
18
+	const ATTRIBUTES_FORM = [
19
+		'accept', 'accept-charset', 'action', 'autocapitalize', 'autocomplete', 'enctype', 'method',
20
+		'name', 'novalidate', 'target',
21
+	];
22 22
 
23
-    const ATTRIBUTES_IMG = [
24
-        'alt', 'crossorigin', 'decoding', 'height', 'ismap', 'referrerpolicy', 'sizes', 'src',
25
-        'srcset', 'width', 'usemap',
26
-    ];
23
+	const ATTRIBUTES_IMG = [
24
+		'alt', 'crossorigin', 'decoding', 'height', 'ismap', 'referrerpolicy', 'sizes', 'src',
25
+		'srcset', 'width', 'usemap',
26
+	];
27 27
 
28
-    const ATTRIBUTES_INPUT = [
29
-        'accept', 'autocomplete', 'autocorrect', 'autofocus', 'capture', 'checked', 'disabled',
30
-        'form', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget', 'height',
31
-        'incremental', 'inputmode', 'list', 'max', 'maxlength', 'min', 'minlength', 'multiple',
32
-        'name', 'pattern', 'placeholder', 'readonly', 'results', 'required', 'selectionDirection',
33
-        'selectionEnd', 'selectionStart', 'size', 'spellcheck', 'src', 'step', 'tabindex', 'type',
34
-        'value', 'webkitdirectory', 'width',
35
-    ];
28
+	const ATTRIBUTES_INPUT = [
29
+		'accept', 'autocomplete', 'autocorrect', 'autofocus', 'capture', 'checked', 'disabled',
30
+		'form', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget', 'height',
31
+		'incremental', 'inputmode', 'list', 'max', 'maxlength', 'min', 'minlength', 'multiple',
32
+		'name', 'pattern', 'placeholder', 'readonly', 'results', 'required', 'selectionDirection',
33
+		'selectionEnd', 'selectionStart', 'size', 'spellcheck', 'src', 'step', 'tabindex', 'type',
34
+		'value', 'webkitdirectory', 'width',
35
+	];
36 36
 
37
-    const ATTRIBUTES_LABEL = [
38
-        'for',
39
-    ];
37
+	const ATTRIBUTES_LABEL = [
38
+		'for',
39
+	];
40 40
 
41
-    const ATTRIBUTES_OPTION = [
42
-        'disabled', 'label', 'selected', 'value',
43
-    ];
41
+	const ATTRIBUTES_OPTION = [
42
+		'disabled', 'label', 'selected', 'value',
43
+	];
44 44
 
45
-    const ATTRIBUTES_SELECT = [
46
-        'autofocus', 'disabled', 'form', 'multiple', 'name', 'required', 'size',
47
-    ];
45
+	const ATTRIBUTES_SELECT = [
46
+		'autofocus', 'disabled', 'form', 'multiple', 'name', 'required', 'size',
47
+	];
48 48
 
49
-    const ATTRIBUTES_TEXTAREA = [
50
-        'autocapitalize', 'autocomplete', 'autofocus', 'cols', 'disabled', 'form', 'maxlength',
51
-        'minlength', 'name', 'placeholder', 'readonly', 'required', 'rows', 'spellcheck', 'wrap',
52
-    ];
49
+	const ATTRIBUTES_TEXTAREA = [
50
+		'autocapitalize', 'autocomplete', 'autofocus', 'cols', 'disabled', 'form', 'maxlength',
51
+		'minlength', 'name', 'placeholder', 'readonly', 'required', 'rows', 'spellcheck', 'wrap',
52
+	];
53 53
 
54
-    const BOOLEAN_ATTRIBUTES = [
55
-        'autofocus', 'capture', 'checked', 'disabled', 'draggable', 'formnovalidate', 'hidden',
56
-        'multiple', 'novalidate', 'readonly', 'required', 'selected', 'spellcheck',
57
-        'webkitdirectory',
58
-    ];
54
+	const BOOLEAN_ATTRIBUTES = [
55
+		'autofocus', 'capture', 'checked', 'disabled', 'draggable', 'formnovalidate', 'hidden',
56
+		'multiple', 'novalidate', 'readonly', 'required', 'selected', 'spellcheck',
57
+		'webkitdirectory',
58
+	];
59 59
 
60
-    const GLOBAL_ATTRIBUTES = [
61
-        'accesskey', 'class', 'contenteditable', 'contextmenu', 'dir', 'draggable', 'dropzone',
62
-        'hidden', 'id', 'lang', 'spellcheck', 'style', 'tabindex', 'title',
63
-    ];
60
+	const GLOBAL_ATTRIBUTES = [
61
+		'accesskey', 'class', 'contenteditable', 'contextmenu', 'dir', 'draggable', 'dropzone',
62
+		'hidden', 'id', 'lang', 'spellcheck', 'style', 'tabindex', 'title',
63
+	];
64 64
 
65
-    const GLOBAL_WILDCARD_ATTRIBUTES = [
66
-        'aria-', 'data-', 'item', 'on',
67
-    ];
65
+	const GLOBAL_WILDCARD_ATTRIBUTES = [
66
+		'aria-', 'data-', 'item', 'on',
67
+	];
68 68
 
69
-    const INPUT_TYPES = [
70
-        'button', 'checkbox', 'color', 'date', 'datetime-local', 'email', 'file', 'hidden', 'image',
71
-        'month', 'number', 'password', 'radio', 'range', 'reset', 'search', 'submit', 'tel', 'text',
72
-        'time', 'url', 'week',
73
-    ];
69
+	const INPUT_TYPES = [
70
+		'button', 'checkbox', 'color', 'date', 'datetime-local', 'email', 'file', 'hidden', 'image',
71
+		'month', 'number', 'password', 'radio', 'range', 'reset', 'search', 'submit', 'tel', 'text',
72
+		'time', 'url', 'week',
73
+	];
74 74
 
75
-    /**
76
-     * @var array
77
-     */
78
-    protected $attributes = [];
75
+	/**
76
+	 * @var array
77
+	 */
78
+	protected $attributes = [];
79 79
 
80
-    /**
81
-     * @param string $method
82
-     * @param array $args
83
-     * @return static
84
-     */
85
-    public function __call($method, $args)
86
-    {
87
-        $args += [[], false];
88
-        $constant = 'static::ATTRIBUTES_'.strtoupper($method);
89
-        $allowedAttributeKeys = defined($constant)
90
-            ? constant($constant)
91
-            : [];
92
-        $this->normalize((array) $args[0], $allowedAttributeKeys);
93
-        $this->normalizeInputType($method);
94
-        return $this;
95
-    }
80
+	/**
81
+	 * @param string $method
82
+	 * @param array $args
83
+	 * @return static
84
+	 */
85
+	public function __call($method, $args)
86
+	{
87
+		$args += [[], false];
88
+		$constant = 'static::ATTRIBUTES_'.strtoupper($method);
89
+		$allowedAttributeKeys = defined($constant)
90
+			? constant($constant)
91
+			: [];
92
+		$this->normalize((array) $args[0], $allowedAttributeKeys);
93
+		$this->normalizeInputType($method);
94
+		return $this;
95
+	}
96 96
 
97
-    /**
98
-     * @return array
99
-     */
100
-    public function toArray()
101
-    {
102
-        return $this->attributes;
103
-    }
97
+	/**
98
+	 * @return array
99
+	 */
100
+	public function toArray()
101
+	{
102
+		return $this->attributes;
103
+	}
104 104
 
105
-    /**
106
-     * @return string
107
-     */
108
-    public function toString()
109
-    {
110
-        $attributes = [];
111
-        foreach ($this->attributes as $attribute => $value) {
112
-            $quote = $this->getQuoteChar($attribute);
113
-            $attributes[] = in_array($attribute, static::BOOLEAN_ATTRIBUTES)
114
-                ? $attribute
115
-                : $attribute.'='.$quote.implode(',', (array) $value).$quote;
116
-        }
117
-        return implode(' ', $attributes);
118
-    }
105
+	/**
106
+	 * @return string
107
+	 */
108
+	public function toString()
109
+	{
110
+		$attributes = [];
111
+		foreach ($this->attributes as $attribute => $value) {
112
+			$quote = $this->getQuoteChar($attribute);
113
+			$attributes[] = in_array($attribute, static::BOOLEAN_ATTRIBUTES)
114
+				? $attribute
115
+				: $attribute.'='.$quote.implode(',', (array) $value).$quote;
116
+		}
117
+		return implode(' ', $attributes);
118
+	}
119 119
 
120
-    /**
121
-     * @return array
122
-     */
123
-    protected function filterAttributes(array $allowedAttributeKeys)
124
-    {
125
-        return array_intersect_key($this->attributes, array_flip($allowedAttributeKeys));
126
-    }
120
+	/**
121
+	 * @return array
122
+	 */
123
+	protected function filterAttributes(array $allowedAttributeKeys)
124
+	{
125
+		return array_intersect_key($this->attributes, array_flip($allowedAttributeKeys));
126
+	}
127 127
 
128
-    /**
129
-     * @return array
130
-     */
131
-    protected function filterGlobalAttributes()
132
-    {
133
-        $globalAttributes = $this->filterAttributes(static::GLOBAL_ATTRIBUTES);
134
-        $wildcards = [];
135
-        foreach (static::GLOBAL_WILDCARD_ATTRIBUTES as $wildcard) {
136
-            $newWildcards = array_filter($this->attributes, function ($key) use ($wildcard) {
137
-                return Str::startsWith($wildcard, $key);
138
-            }, ARRAY_FILTER_USE_KEY);
139
-            $wildcards = array_merge($wildcards, $newWildcards);
140
-        }
141
-        return array_merge($globalAttributes, $wildcards);
142
-    }
128
+	/**
129
+	 * @return array
130
+	 */
131
+	protected function filterGlobalAttributes()
132
+	{
133
+		$globalAttributes = $this->filterAttributes(static::GLOBAL_ATTRIBUTES);
134
+		$wildcards = [];
135
+		foreach (static::GLOBAL_WILDCARD_ATTRIBUTES as $wildcard) {
136
+			$newWildcards = array_filter($this->attributes, function ($key) use ($wildcard) {
137
+				return Str::startsWith($wildcard, $key);
138
+			}, ARRAY_FILTER_USE_KEY);
139
+			$wildcards = array_merge($wildcards, $newWildcards);
140
+		}
141
+		return array_merge($globalAttributes, $wildcards);
142
+	}
143 143
 
144
-    /**
145
-     * @return array
146
-     */
147
-    protected function getPermanentAttributes()
148
-    {
149
-        $permanentAttributes = [];
150
-        if (array_key_exists('value', $this->attributes)) {
151
-            $permanentAttributes['value'] = $this->attributes['value'];
152
-        }
153
-        return $permanentAttributes;
154
-    }
144
+	/**
145
+	 * @return array
146
+	 */
147
+	protected function getPermanentAttributes()
148
+	{
149
+		$permanentAttributes = [];
150
+		if (array_key_exists('value', $this->attributes)) {
151
+			$permanentAttributes['value'] = $this->attributes['value'];
152
+		}
153
+		return $permanentAttributes;
154
+	}
155 155
 
156
-    /**
157
-     * @param string $attribute
158
-     * @return string
159
-     */
160
-    protected function getQuoteChar($attribute)
161
-    {
162
-        return Str::startsWith('data-', $attribute)
163
-            ? '\''
164
-            : '"';
165
-    }
156
+	/**
157
+	 * @param string $attribute
158
+	 * @return string
159
+	 */
160
+	protected function getQuoteChar($attribute)
161
+	{
162
+		return Str::startsWith('data-', $attribute)
163
+			? '\''
164
+			: '"';
165
+	}
166 166
 
167
-    /**
168
-     * @param string $key
169
-     * @param mixed $value
170
-     * @return bool
171
-     */
172
-    protected function isAttributeKeyNumeric($key, $value)
173
-    {
174
-        return is_string($value)
175
-            && is_numeric($key)
176
-            && !array_key_exists($value, $this->attributes);
177
-    }
167
+	/**
168
+	 * @param string $key
169
+	 * @param mixed $value
170
+	 * @return bool
171
+	 */
172
+	protected function isAttributeKeyNumeric($key, $value)
173
+	{
174
+		return is_string($value)
175
+			&& is_numeric($key)
176
+			&& !array_key_exists($value, $this->attributes);
177
+	}
178 178
 
179
-    /**
180
-     * @return void
181
-     */
182
-    protected function normalize(array $args, array $allowedAttributeKeys)
183
-    {
184
-        $this->attributes = array_change_key_case($args, CASE_LOWER);
185
-        $this->normalizeBooleanAttributes();
186
-        $this->normalizeDataAttributes();
187
-        $this->normalizeStringAttributes();
188
-        $this->removeEmptyAttributes();
189
-        $this->removeIndexedAttributes();
190
-        $this->attributes = array_merge(
191
-            $this->filterGlobalAttributes(),
192
-            $this->filterAttributes($allowedAttributeKeys)
193
-        );
194
-    }
179
+	/**
180
+	 * @return void
181
+	 */
182
+	protected function normalize(array $args, array $allowedAttributeKeys)
183
+	{
184
+		$this->attributes = array_change_key_case($args, CASE_LOWER);
185
+		$this->normalizeBooleanAttributes();
186
+		$this->normalizeDataAttributes();
187
+		$this->normalizeStringAttributes();
188
+		$this->removeEmptyAttributes();
189
+		$this->removeIndexedAttributes();
190
+		$this->attributes = array_merge(
191
+			$this->filterGlobalAttributes(),
192
+			$this->filterAttributes($allowedAttributeKeys)
193
+		);
194
+	}
195 195
 
196
-    /**
197
-     * @return void
198
-     */
199
-    protected function normalizeBooleanAttributes()
200
-    {
201
-        foreach ($this->attributes as $key => $value) {
202
-            if ($this->isAttributeKeyNumeric($key, $value)) {
203
-                $key = $value;
204
-                $value = true;
205
-            }
206
-            if (!in_array($key, static::BOOLEAN_ATTRIBUTES)) {
207
-                continue;
208
-            }
209
-            $this->attributes[$key] = wp_validate_boolean($value);
210
-        }
211
-    }
196
+	/**
197
+	 * @return void
198
+	 */
199
+	protected function normalizeBooleanAttributes()
200
+	{
201
+		foreach ($this->attributes as $key => $value) {
202
+			if ($this->isAttributeKeyNumeric($key, $value)) {
203
+				$key = $value;
204
+				$value = true;
205
+			}
206
+			if (!in_array($key, static::BOOLEAN_ATTRIBUTES)) {
207
+				continue;
208
+			}
209
+			$this->attributes[$key] = wp_validate_boolean($value);
210
+		}
211
+	}
212 212
 
213
-    /**
214
-     * @return void
215
-     */
216
-    protected function normalizeDataAttributes()
217
-    {
218
-        foreach ($this->attributes as $key => $value) {
219
-            if ($this->isAttributeKeyNumeric($key, $value)) {
220
-                $key = $value;
221
-                $value = '';
222
-            }
223
-            if (!Str::startsWith('data-', $key)) {
224
-                continue;
225
-            }
226
-            if (is_array($value)) {
227
-                $value = json_encode($value, JSON_HEX_APOS | JSON_NUMERIC_CHECK | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
228
-            }
229
-            $this->attributes[$key] = $value;
230
-        }
231
-    }
213
+	/**
214
+	 * @return void
215
+	 */
216
+	protected function normalizeDataAttributes()
217
+	{
218
+		foreach ($this->attributes as $key => $value) {
219
+			if ($this->isAttributeKeyNumeric($key, $value)) {
220
+				$key = $value;
221
+				$value = '';
222
+			}
223
+			if (!Str::startsWith('data-', $key)) {
224
+				continue;
225
+			}
226
+			if (is_array($value)) {
227
+				$value = json_encode($value, JSON_HEX_APOS | JSON_NUMERIC_CHECK | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
228
+			}
229
+			$this->attributes[$key] = $value;
230
+		}
231
+	}
232 232
 
233
-    /**
234
-     * @return void
235
-     */
236
-    protected function normalizeStringAttributes()
237
-    {
238
-        foreach ($this->attributes as $key => $value) {
239
-            if (!is_string($value)) {
240
-                continue;
241
-            }
242
-            $this->attributes[$key] = trim($value);
243
-        }
244
-    }
233
+	/**
234
+	 * @return void
235
+	 */
236
+	protected function normalizeStringAttributes()
237
+	{
238
+		foreach ($this->attributes as $key => $value) {
239
+			if (!is_string($value)) {
240
+				continue;
241
+			}
242
+			$this->attributes[$key] = trim($value);
243
+		}
244
+	}
245 245
 
246
-    /**
247
-     * @param string $method
248
-     * @return void
249
-     */
250
-    protected function normalizeInputType($method)
251
-    {
252
-        if ('input' != $method) {
253
-            return;
254
-        }
255
-        $attributes = wp_parse_args($this->attributes, ['type' => '']);
256
-        if (!in_array($attributes['type'], static::INPUT_TYPES)) {
257
-            $this->attributes['type'] = 'text';
258
-        }
259
-    }
246
+	/**
247
+	 * @param string $method
248
+	 * @return void
249
+	 */
250
+	protected function normalizeInputType($method)
251
+	{
252
+		if ('input' != $method) {
253
+			return;
254
+		}
255
+		$attributes = wp_parse_args($this->attributes, ['type' => '']);
256
+		if (!in_array($attributes['type'], static::INPUT_TYPES)) {
257
+			$this->attributes['type'] = 'text';
258
+		}
259
+	}
260 260
 
261
-    /**
262
-     * @return void
263
-     */
264
-    protected function removeEmptyAttributes()
265
-    {
266
-        $attributes = $this->attributes;
267
-        $permanentAttributes = $this->getPermanentAttributes();
268
-        foreach ($this->attributes as $key => $value) {
269
-            if (in_array($key, static::BOOLEAN_ATTRIBUTES) && !$value) {
270
-                unset($attributes[$key]);
271
-            }
272
-            if (Str::startsWith('data-', $key)) {
273
-                $permanentAttributes[$key] = $value;
274
-                unset($attributes[$key]);
275
-            }
276
-        }
277
-        $this->attributes = array_merge(array_filter($attributes), $permanentAttributes);
278
-    }
261
+	/**
262
+	 * @return void
263
+	 */
264
+	protected function removeEmptyAttributes()
265
+	{
266
+		$attributes = $this->attributes;
267
+		$permanentAttributes = $this->getPermanentAttributes();
268
+		foreach ($this->attributes as $key => $value) {
269
+			if (in_array($key, static::BOOLEAN_ATTRIBUTES) && !$value) {
270
+				unset($attributes[$key]);
271
+			}
272
+			if (Str::startsWith('data-', $key)) {
273
+				$permanentAttributes[$key] = $value;
274
+				unset($attributes[$key]);
275
+			}
276
+		}
277
+		$this->attributes = array_merge(array_filter($attributes), $permanentAttributes);
278
+	}
279 279
 
280
-    /**
281
-     * @return void
282
-     */
283
-    protected function removeIndexedAttributes()
284
-    {
285
-        $this->attributes = array_diff_key(
286
-            $this->attributes,
287
-            array_filter($this->attributes, 'is_numeric', ARRAY_FILTER_USE_KEY)
288
-        );
289
-    }
280
+	/**
281
+	 * @return void
282
+	 */
283
+	protected function removeIndexedAttributes()
284
+	{
285
+		$this->attributes = array_diff_key(
286
+			$this->attributes,
287
+			array_filter($this->attributes, 'is_numeric', ARRAY_FILTER_USE_KEY)
288
+		);
289
+	}
290 290
 }
Please login to merge, or discard this patch.
plugin/Modules/Html/Partial.php 1 patch
Indentation   +25 added lines, -25 removed lines patch added patch discarded remove patch
@@ -6,30 +6,30 @@
 block discarded – undo
6 6
 
7 7
 class Partial
8 8
 {
9
-    /**
10
-     * @param string $partialPath
11
-     * @return string
12
-     */
13
-    public function build($partialPath, array $args = [])
14
-    {
15
-        $className = Helper::buildClassName($partialPath, 'Modules\Html\Partials');
16
-        if (!class_exists($className)) {
17
-            glsr_log()->error('Partial missing: '.$className);
18
-            return;
19
-        }
20
-        $args = apply_filters('site-reviews/partial/args/'.$partialPath, $args);
21
-        $partial = glsr($className)->build($args);
22
-        $partial = apply_filters('site-reviews/rendered/partial', $partial, $partialPath, $args);
23
-        $partial = apply_filters('site-reviews/rendered/partial/'.$partialPath, $partial, $args);
24
-        return $partial;
25
-    }
9
+	/**
10
+	 * @param string $partialPath
11
+	 * @return string
12
+	 */
13
+	public function build($partialPath, array $args = [])
14
+	{
15
+		$className = Helper::buildClassName($partialPath, 'Modules\Html\Partials');
16
+		if (!class_exists($className)) {
17
+			glsr_log()->error('Partial missing: '.$className);
18
+			return;
19
+		}
20
+		$args = apply_filters('site-reviews/partial/args/'.$partialPath, $args);
21
+		$partial = glsr($className)->build($args);
22
+		$partial = apply_filters('site-reviews/rendered/partial', $partial, $partialPath, $args);
23
+		$partial = apply_filters('site-reviews/rendered/partial/'.$partialPath, $partial, $args);
24
+		return $partial;
25
+	}
26 26
 
27
-    /**
28
-     * @param string $partialPath
29
-     * @return void
30
-     */
31
-    public function render($partialPath, array $args = [])
32
-    {
33
-        echo $this->build($partialPath, $args);
34
-    }
27
+	/**
28
+	 * @param string $partialPath
29
+	 * @return void
30
+	 */
31
+	public function render($partialPath, array $args = [])
32
+	{
33
+		echo $this->build($partialPath, $args);
34
+	}
35 35
 }
Please login to merge, or discard this patch.
plugin/Modules/Upgrader/Upgrade_4_0_2.php 1 patch
Indentation   +50 added lines, -50 removed lines patch added patch discarded remove patch
@@ -9,67 +9,67 @@
 block discarded – undo
9 9
 
10 10
 class Upgrade_4_0_2
11 11
 {
12
-    public function __construct()
13
-    {
14
-        $this->migrateSettings();
15
-        $this->protectMetaKeys();
16
-        $this->deleteSessions();
17
-        delete_transient(Application::ID.'_cloudflare_ips');
18
-    }
12
+	public function __construct()
13
+	{
14
+		$this->migrateSettings();
15
+		$this->protectMetaKeys();
16
+		$this->deleteSessions();
17
+		delete_transient(Application::ID.'_cloudflare_ips');
18
+	}
19 19
 
20
-    /**
21
-     * @return void
22
-     */
23
-    public function deleteSessions()
24
-    {
25
-        global $wpdb;
26
-        $wpdb->query("
20
+	/**
21
+	 * @return void
22
+	 */
23
+	public function deleteSessions()
24
+	{
25
+		global $wpdb;
26
+		$wpdb->query("
27 27
             DELETE
28 28
             FROM {$wpdb->options}
29 29
             WHERE option_name LIKE '_glsr_session%'
30 30
         ");
31
-    }
31
+	}
32 32
 
33
-    /**
34
-     * @return void
35
-     */
36
-    public function migrateSettings()
37
-    {
38
-        if ($settings = get_option(OptionManager::databaseKey(3))) {
39
-            $multilingual = 'yes' == Arr::get($settings, 'settings.general.support.polylang')
40
-                ? 'polylang'
41
-                : '';
42
-            $settings = Arr::set($settings, 'settings.general.multilingual', $multilingual);
43
-            $settings = Arr::set($settings, 'settings.general.rebusify', 'no');
44
-            $settings = Arr::set($settings, 'settings.general.rebusify_email', '');
45
-            $settings = Arr::set($settings, 'settings.general.rebusify_serial', '');
46
-            $settings = Arr::set($settings, 'settings.reviews.name.format', '');
47
-            $settings = Arr::set($settings, 'settings.reviews.name.initial', '');
48
-            $settings = Arr::set($settings, 'settings.submissions.blacklist.integration', '');
49
-            $settings = Arr::set($settings, 'settings.submissions.limit', '');
50
-            $settings = Arr::set($settings, 'settings.submissions.limit_whitelist.email', '');
51
-            $settings = Arr::set($settings, 'settings.submissions.limit_whitelist.ip_address', '');
52
-            $settings = Arr::set($settings, 'settings.submissions.limit_whitelist.username', '');
53
-            unset($settings['settings']['general']['support']);
54
-            update_option(OptionManager::databaseKey(4), $settings);
55
-        }
56
-    }
33
+	/**
34
+	 * @return void
35
+	 */
36
+	public function migrateSettings()
37
+	{
38
+		if ($settings = get_option(OptionManager::databaseKey(3))) {
39
+			$multilingual = 'yes' == Arr::get($settings, 'settings.general.support.polylang')
40
+				? 'polylang'
41
+				: '';
42
+			$settings = Arr::set($settings, 'settings.general.multilingual', $multilingual);
43
+			$settings = Arr::set($settings, 'settings.general.rebusify', 'no');
44
+			$settings = Arr::set($settings, 'settings.general.rebusify_email', '');
45
+			$settings = Arr::set($settings, 'settings.general.rebusify_serial', '');
46
+			$settings = Arr::set($settings, 'settings.reviews.name.format', '');
47
+			$settings = Arr::set($settings, 'settings.reviews.name.initial', '');
48
+			$settings = Arr::set($settings, 'settings.submissions.blacklist.integration', '');
49
+			$settings = Arr::set($settings, 'settings.submissions.limit', '');
50
+			$settings = Arr::set($settings, 'settings.submissions.limit_whitelist.email', '');
51
+			$settings = Arr::set($settings, 'settings.submissions.limit_whitelist.ip_address', '');
52
+			$settings = Arr::set($settings, 'settings.submissions.limit_whitelist.username', '');
53
+			unset($settings['settings']['general']['support']);
54
+			update_option(OptionManager::databaseKey(4), $settings);
55
+		}
56
+	}
57 57
 
58
-    /**
59
-     * @return void
60
-     */
61
-    public function protectMetaKeys()
62
-    {
63
-        global $wpdb;
64
-        $keys = array_keys(glsr(CreateReviewDefaults::class)->defaults());
65
-        $keys = implode("','", $keys);
66
-        $postType = Application::POST_TYPE;
67
-        $wpdb->query("
58
+	/**
59
+	 * @return void
60
+	 */
61
+	public function protectMetaKeys()
62
+	{
63
+		global $wpdb;
64
+		$keys = array_keys(glsr(CreateReviewDefaults::class)->defaults());
65
+		$keys = implode("','", $keys);
66
+		$postType = Application::POST_TYPE;
67
+		$wpdb->query("
68 68
             UPDATE {$wpdb->postmeta} pm
69 69
             INNER JOIN {$wpdb->posts} p ON p.id = pm.post_id
70 70
             SET pm.meta_key = CONCAT('_', pm.meta_key)
71 71
             WHERE pm.meta_key IN ('{$keys}')
72 72
             AND p.post_type = '{$postType}'
73 73
         ");
74
-    }
74
+	}
75 75
 }
Please login to merge, or discard this patch.
plugin/Modules/Schema.php 1 patch
Indentation   +267 added lines, -267 removed lines patch added patch discarded remove patch
@@ -12,291 +12,291 @@
 block discarded – undo
12 12
 
13 13
 class Schema
14 14
 {
15
-    /**
16
-     * @var array
17
-     */
18
-    protected $args;
15
+	/**
16
+	 * @var array
17
+	 */
18
+	protected $args;
19 19
 
20
-    /**
21
-     * @var array
22
-     */
23
-    protected $ratingCounts;
20
+	/**
21
+	 * @var array
22
+	 */
23
+	protected $ratingCounts;
24 24
 
25
-    /**
26
-     * @return array
27
-     */
28
-    public function build(array $args = [])
29
-    {
30
-        $this->args = $args;
31
-        $schema = $this->buildSummary($args);
32
-        $reviews = [];
33
-        foreach (glsr(ReviewManager::class)->get($this->args) as $review) {
34
-            // Only include critic reviews that have been directly produced by your site, not reviews from third-party sites or syndicated reviews.
35
-            // @see https://developers.google.com/search/docs/data-types/review
36
-            if ('local' != $review->review_type) {
37
-                continue;
38
-            }
39
-            $reviews[] = $this->buildReview($review);
40
-        }
41
-        if (!empty($reviews)) {
42
-            array_walk($reviews, function (&$review) {
43
-                unset($review['@context']);
44
-                unset($review['itemReviewed']);
45
-            });
46
-            $schema['review'] = $reviews;
47
-        }
48
-        return $schema;
49
-    }
25
+	/**
26
+	 * @return array
27
+	 */
28
+	public function build(array $args = [])
29
+	{
30
+		$this->args = $args;
31
+		$schema = $this->buildSummary($args);
32
+		$reviews = [];
33
+		foreach (glsr(ReviewManager::class)->get($this->args) as $review) {
34
+			// Only include critic reviews that have been directly produced by your site, not reviews from third-party sites or syndicated reviews.
35
+			// @see https://developers.google.com/search/docs/data-types/review
36
+			if ('local' != $review->review_type) {
37
+				continue;
38
+			}
39
+			$reviews[] = $this->buildReview($review);
40
+		}
41
+		if (!empty($reviews)) {
42
+			array_walk($reviews, function (&$review) {
43
+				unset($review['@context']);
44
+				unset($review['itemReviewed']);
45
+			});
46
+			$schema['review'] = $reviews;
47
+		}
48
+		return $schema;
49
+	}
50 50
 
51
-    /**
52
-     * @param array|null $args
53
-     * @return array
54
-     */
55
-    public function buildSummary($args = null)
56
-    {
57
-        if (is_array($args)) {
58
-            $this->args = $args;
59
-        }
60
-        $buildSummary = Helper::buildMethodName($this->getSchemaOptionValue('type'), 'buildSummaryFor');
61
-        $count = array_sum($this->getRatingCounts());
62
-        $schema = method_exists($this, $buildSummary)
63
-            ? $this->$buildSummary()
64
-            : $this->buildSummaryForCustom();
65
-        if (!empty($count)) {
66
-            $schema->aggregateRating(
67
-                $this->getSchemaType('AggregateRating')
68
-                    ->ratingValue($this->getRatingValue())
69
-                    ->reviewCount($count)
70
-                    ->bestRating(glsr()->constant('MAX_RATING', Rating::class))
71
-                    ->worstRating(glsr()->constant('MIN_RATING', Rating::class))
72
-            );
73
-        }
74
-        $schema = $schema->toArray();
75
-        return apply_filters('site-reviews/schema/'.$schema['@type'], $schema, $args);
76
-    }
51
+	/**
52
+	 * @param array|null $args
53
+	 * @return array
54
+	 */
55
+	public function buildSummary($args = null)
56
+	{
57
+		if (is_array($args)) {
58
+			$this->args = $args;
59
+		}
60
+		$buildSummary = Helper::buildMethodName($this->getSchemaOptionValue('type'), 'buildSummaryFor');
61
+		$count = array_sum($this->getRatingCounts());
62
+		$schema = method_exists($this, $buildSummary)
63
+			? $this->$buildSummary()
64
+			: $this->buildSummaryForCustom();
65
+		if (!empty($count)) {
66
+			$schema->aggregateRating(
67
+				$this->getSchemaType('AggregateRating')
68
+					->ratingValue($this->getRatingValue())
69
+					->reviewCount($count)
70
+					->bestRating(glsr()->constant('MAX_RATING', Rating::class))
71
+					->worstRating(glsr()->constant('MIN_RATING', Rating::class))
72
+			);
73
+		}
74
+		$schema = $schema->toArray();
75
+		return apply_filters('site-reviews/schema/'.$schema['@type'], $schema, $args);
76
+	}
77 77
 
78
-    /**
79
-     * @return void
80
-     */
81
-    public function render()
82
-    {
83
-        if (empty(glsr()->schemas)) {
84
-            return;
85
-        }
86
-        printf('<script type="application/ld+json">%s</script>', json_encode(
87
-            apply_filters('site-reviews/schema/all', glsr()->schemas),
88
-            JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES
89
-        ));
90
-    }
78
+	/**
79
+	 * @return void
80
+	 */
81
+	public function render()
82
+	{
83
+		if (empty(glsr()->schemas)) {
84
+			return;
85
+		}
86
+		printf('<script type="application/ld+json">%s</script>', json_encode(
87
+			apply_filters('site-reviews/schema/all', glsr()->schemas),
88
+			JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES
89
+		));
90
+	}
91 91
 
92
-    /**
93
-     * @return void
94
-     */
95
-    public function store(array $schema)
96
-    {
97
-        $schemas = glsr()->schemas;
98
-        $schemas[] = $schema;
99
-        glsr()->schemas = array_map('unserialize', array_unique(array_map('serialize', $schemas)));
100
-    }
92
+	/**
93
+	 * @return void
94
+	 */
95
+	public function store(array $schema)
96
+	{
97
+		$schemas = glsr()->schemas;
98
+		$schemas[] = $schema;
99
+		glsr()->schemas = array_map('unserialize', array_unique(array_map('serialize', $schemas)));
100
+	}
101 101
 
102
-    /**
103
-     * @param Review $review
104
-     * @return array
105
-     */
106
-    protected function buildReview($review)
107
-    {
108
-        $schema = $this->getSchemaType('Review')
109
-            ->doIf(!in_array('title', $this->args['hide']), function ($schema) use ($review) {
110
-                $schema->name($review->title);
111
-            })
112
-            ->doIf(!in_array('excerpt', $this->args['hide']), function ($schema) use ($review) {
113
-                $schema->reviewBody($review->content);
114
-            })
115
-            ->datePublished((new DateTime($review->date)))
116
-            ->author($this->getSchemaType('Person')->name($review->author))
117
-            ->itemReviewed($this->getSchemaType()->name($this->getSchemaOptionValue('name')));
118
-        if (!empty($review->rating)) {
119
-            $schema->reviewRating(
120
-                $this->getSchemaType('Rating')
121
-                    ->ratingValue($review->rating)
122
-                    ->bestRating(glsr()->constant('MAX_RATING', Rating::class))
123
-                    ->worstRating(glsr()->constant('MIN_RATING', Rating::class))
124
-            );
125
-        }
126
-        return apply_filters('site-reviews/schema/review', $schema->toArray(), $review, $this->args);
127
-    }
102
+	/**
103
+	 * @param Review $review
104
+	 * @return array
105
+	 */
106
+	protected function buildReview($review)
107
+	{
108
+		$schema = $this->getSchemaType('Review')
109
+			->doIf(!in_array('title', $this->args['hide']), function ($schema) use ($review) {
110
+				$schema->name($review->title);
111
+			})
112
+			->doIf(!in_array('excerpt', $this->args['hide']), function ($schema) use ($review) {
113
+				$schema->reviewBody($review->content);
114
+			})
115
+			->datePublished((new DateTime($review->date)))
116
+			->author($this->getSchemaType('Person')->name($review->author))
117
+			->itemReviewed($this->getSchemaType()->name($this->getSchemaOptionValue('name')));
118
+		if (!empty($review->rating)) {
119
+			$schema->reviewRating(
120
+				$this->getSchemaType('Rating')
121
+					->ratingValue($review->rating)
122
+					->bestRating(glsr()->constant('MAX_RATING', Rating::class))
123
+					->worstRating(glsr()->constant('MIN_RATING', Rating::class))
124
+			);
125
+		}
126
+		return apply_filters('site-reviews/schema/review', $schema->toArray(), $review, $this->args);
127
+	}
128 128
 
129
-    /**
130
-     * @param mixed $schema
131
-     * @return mixed
132
-     */
133
-    protected function buildSchemaValues($schema, array $values = [])
134
-    {
135
-        foreach ($values as $value) {
136
-            $option = $this->getSchemaOptionValue($value);
137
-            if (empty($option)) {
138
-                continue;
139
-            }
140
-            $schema->$value($option);
141
-        }
142
-        return $schema;
143
-    }
129
+	/**
130
+	 * @param mixed $schema
131
+	 * @return mixed
132
+	 */
133
+	protected function buildSchemaValues($schema, array $values = [])
134
+	{
135
+		foreach ($values as $value) {
136
+			$option = $this->getSchemaOptionValue($value);
137
+			if (empty($option)) {
138
+				continue;
139
+			}
140
+			$schema->$value($option);
141
+		}
142
+		return $schema;
143
+	}
144 144
 
145
-    /**
146
-     * @return mixed
147
-     */
148
-    protected function buildSummaryForCustom()
149
-    {
150
-        return $this->buildSchemaValues($this->getSchemaType(), [
151
-            'description', 'image', 'name', 'url',
152
-        ]);
153
-    }
145
+	/**
146
+	 * @return mixed
147
+	 */
148
+	protected function buildSummaryForCustom()
149
+	{
150
+		return $this->buildSchemaValues($this->getSchemaType(), [
151
+			'description', 'image', 'name', 'url',
152
+		]);
153
+	}
154 154
 
155
-    /**
156
-     * @return mixed
157
-     */
158
-    protected function buildSummaryForLocalBusiness()
159
-    {
160
-        return $this->buildSchemaValues($this->buildSummaryForCustom(), [
161
-            'address', 'priceRange', 'telephone',
162
-        ]);
163
-    }
155
+	/**
156
+	 * @return mixed
157
+	 */
158
+	protected function buildSummaryForLocalBusiness()
159
+	{
160
+		return $this->buildSchemaValues($this->buildSummaryForCustom(), [
161
+			'address', 'priceRange', 'telephone',
162
+		]);
163
+	}
164 164
 
165
-    /**
166
-     * @return mixed
167
-     */
168
-    protected function buildSummaryForProduct()
169
-    {
170
-        $offerType = $this->getSchemaOption('offerType', 'AggregateOffer');
171
-        $offers = $this->buildSchemaValues($this->getSchemaType($offerType), [
172
-            'highPrice', 'lowPrice', 'price', 'priceCurrency',
173
-        ]);
174
-        return $this->buildSummaryForCustom()
175
-            ->doIf(!empty($offers->getProperties()), function ($schema) use ($offers) {
176
-                $schema->offers($offers);
177
-            })
178
-            ->setProperty('@id', $this->getSchemaOptionValue('url').'#product');
179
-    }
165
+	/**
166
+	 * @return mixed
167
+	 */
168
+	protected function buildSummaryForProduct()
169
+	{
170
+		$offerType = $this->getSchemaOption('offerType', 'AggregateOffer');
171
+		$offers = $this->buildSchemaValues($this->getSchemaType($offerType), [
172
+			'highPrice', 'lowPrice', 'price', 'priceCurrency',
173
+		]);
174
+		return $this->buildSummaryForCustom()
175
+			->doIf(!empty($offers->getProperties()), function ($schema) use ($offers) {
176
+				$schema->offers($offers);
177
+			})
178
+			->setProperty('@id', $this->getSchemaOptionValue('url').'#product');
179
+	}
180 180
 
181
-    /**
182
-     * @return array
183
-     */
184
-    protected function getRatingCounts()
185
-    {
186
-        if (!isset($this->ratingCounts)) {
187
-            $this->ratingCounts = glsr(ReviewManager::class)->getRatingCounts($this->args);
188
-        }
189
-        return $this->ratingCounts;
190
-    }
181
+	/**
182
+	 * @return array
183
+	 */
184
+	protected function getRatingCounts()
185
+	{
186
+		if (!isset($this->ratingCounts)) {
187
+			$this->ratingCounts = glsr(ReviewManager::class)->getRatingCounts($this->args);
188
+		}
189
+		return $this->ratingCounts;
190
+	}
191 191
 
192
-    /**
193
-     * @return int|float
194
-     */
195
-    protected function getRatingValue()
196
-    {
197
-        return glsr(Rating::class)->getAverage($this->getRatingCounts());
198
-    }
192
+	/**
193
+	 * @return int|float
194
+	 */
195
+	protected function getRatingValue()
196
+	{
197
+		return glsr(Rating::class)->getAverage($this->getRatingCounts());
198
+	}
199 199
 
200
-    /**
201
-     * @param string $option
202
-     * @param string $fallback
203
-     * @return string
204
-     */
205
-    protected function getSchemaOption($option, $fallback)
206
-    {
207
-        $option = strtolower($option);
208
-        if ($schemaOption = trim((string) get_post_meta(intval(get_the_ID()), 'schema_'.$option, true))) {
209
-            return $schemaOption;
210
-        }
211
-        $setting = glsr(OptionManager::class)->get('settings.schema.'.$option);
212
-        if (is_array($setting)) {
213
-            return $this->getSchemaOptionDefault($setting, $fallback);
214
-        }
215
-        return !empty($setting)
216
-            ? $setting
217
-            : $fallback;
218
-    }
200
+	/**
201
+	 * @param string $option
202
+	 * @param string $fallback
203
+	 * @return string
204
+	 */
205
+	protected function getSchemaOption($option, $fallback)
206
+	{
207
+		$option = strtolower($option);
208
+		if ($schemaOption = trim((string) get_post_meta(intval(get_the_ID()), 'schema_'.$option, true))) {
209
+			return $schemaOption;
210
+		}
211
+		$setting = glsr(OptionManager::class)->get('settings.schema.'.$option);
212
+		if (is_array($setting)) {
213
+			return $this->getSchemaOptionDefault($setting, $fallback);
214
+		}
215
+		return !empty($setting)
216
+			? $setting
217
+			: $fallback;
218
+	}
219 219
 
220
-    /**
221
-     * @param string $fallback
222
-     * @return string
223
-     */
224
-    protected function getSchemaOptionDefault(array $setting, $fallback)
225
-    {
226
-        $setting = wp_parse_args($setting, [
227
-            'custom' => '',
228
-            'default' => $fallback,
229
-        ]);
230
-        return 'custom' != $setting['default']
231
-            ? $setting['default']
232
-            : $setting['custom'];
233
-    }
220
+	/**
221
+	 * @param string $fallback
222
+	 * @return string
223
+	 */
224
+	protected function getSchemaOptionDefault(array $setting, $fallback)
225
+	{
226
+		$setting = wp_parse_args($setting, [
227
+			'custom' => '',
228
+			'default' => $fallback,
229
+		]);
230
+		return 'custom' != $setting['default']
231
+			? $setting['default']
232
+			: $setting['custom'];
233
+	}
234 234
 
235
-    /**
236
-     * @param string $option
237
-     * @param string $fallback
238
-     * @return void|string
239
-     */
240
-    protected function getSchemaOptionValue($option, $fallback = 'post')
241
-    {
242
-        $value = $this->getSchemaOption($option, $fallback);
243
-        if ($value != $fallback) {
244
-            return $value;
245
-        }
246
-        if (!is_single() && !is_page()) {
247
-            return;
248
-        }
249
-        $method = Helper::buildMethodName($option, 'getThing');
250
-        if (method_exists($this, $method)) {
251
-            return $this->$method();
252
-        }
253
-    }
235
+	/**
236
+	 * @param string $option
237
+	 * @param string $fallback
238
+	 * @return void|string
239
+	 */
240
+	protected function getSchemaOptionValue($option, $fallback = 'post')
241
+	{
242
+		$value = $this->getSchemaOption($option, $fallback);
243
+		if ($value != $fallback) {
244
+			return $value;
245
+		}
246
+		if (!is_single() && !is_page()) {
247
+			return;
248
+		}
249
+		$method = Helper::buildMethodName($option, 'getThing');
250
+		if (method_exists($this, $method)) {
251
+			return $this->$method();
252
+		}
253
+	}
254 254
 
255
-    /**
256
-     * @param string|null $type
257
-     * @return mixed
258
-     */
259
-    protected function getSchemaType($type = null)
260
-    {
261
-        if (!is_string($type)) {
262
-            $type = $this->getSchemaOption('type', 'LocalBusiness');
263
-        }
264
-        $className = Helper::buildClassName($type, 'Modules\Schema');
265
-        return class_exists($className)
266
-            ? new $className()
267
-            : new UnknownType($type);
268
-    }
255
+	/**
256
+	 * @param string|null $type
257
+	 * @return mixed
258
+	 */
259
+	protected function getSchemaType($type = null)
260
+	{
261
+		if (!is_string($type)) {
262
+			$type = $this->getSchemaOption('type', 'LocalBusiness');
263
+		}
264
+		$className = Helper::buildClassName($type, 'Modules\Schema');
265
+		return class_exists($className)
266
+			? new $className()
267
+			: new UnknownType($type);
268
+	}
269 269
 
270
-    /**
271
-     * @return string
272
-     */
273
-    protected function getThingDescription()
274
-    {
275
-        $description = strip_shortcodes(wp_strip_all_tags(get_the_excerpt()));
276
-        return wp_trim_words($description, apply_filters('excerpt_length', 55));
277
-    }
270
+	/**
271
+	 * @return string
272
+	 */
273
+	protected function getThingDescription()
274
+	{
275
+		$description = strip_shortcodes(wp_strip_all_tags(get_the_excerpt()));
276
+		return wp_trim_words($description, apply_filters('excerpt_length', 55));
277
+	}
278 278
 
279
-    /**
280
-     * @return string
281
-     */
282
-    protected function getThingImage()
283
-    {
284
-        return (string) get_the_post_thumbnail_url(null, 'large');
285
-    }
279
+	/**
280
+	 * @return string
281
+	 */
282
+	protected function getThingImage()
283
+	{
284
+		return (string) get_the_post_thumbnail_url(null, 'large');
285
+	}
286 286
 
287
-    /**
288
-     * @return string
289
-     */
290
-    protected function getThingName()
291
-    {
292
-        return get_the_title();
293
-    }
287
+	/**
288
+	 * @return string
289
+	 */
290
+	protected function getThingName()
291
+	{
292
+		return get_the_title();
293
+	}
294 294
 
295
-    /**
296
-     * @return string
297
-     */
298
-    protected function getThingUrl()
299
-    {
300
-        return (string) get_the_permalink();
301
-    }
295
+	/**
296
+	 * @return string
297
+	 */
298
+	protected function getThingUrl()
299
+	{
300
+		return (string) get_the_permalink();
301
+	}
302 302
 }
Please login to merge, or discard this patch.
plugin/Controllers/EditorController/Metaboxes.php 1 patch
Indentation   +28 added lines, -28 removed lines patch added patch discarded remove patch
@@ -7,33 +7,33 @@
 block discarded – undo
7 7
 
8 8
 class Metaboxes
9 9
 {
10
-    /**
11
-     * @param int $postId
12
-     * @return void
13
-     */
14
-    public function saveAssignedToMetabox($postId)
15
-    {
16
-        if (!wp_verify_nonce(Helper::filterInput('_nonce-assigned-to'), 'assigned_to')) {
17
-            return;
18
-        }
19
-        $assignedTo = strval(Helper::filterInput('assigned_to'));
20
-        glsr(Database::class)->update($postId, 'assigned_to', $assignedTo);
21
-    }
10
+	/**
11
+	 * @param int $postId
12
+	 * @return void
13
+	 */
14
+	public function saveAssignedToMetabox($postId)
15
+	{
16
+		if (!wp_verify_nonce(Helper::filterInput('_nonce-assigned-to'), 'assigned_to')) {
17
+			return;
18
+		}
19
+		$assignedTo = strval(Helper::filterInput('assigned_to'));
20
+		glsr(Database::class)->update($postId, 'assigned_to', $assignedTo);
21
+	}
22 22
 
23
-    /**
24
-     * @param int $postId
25
-     * @return mixed
26
-     */
27
-    public function saveResponseMetabox($postId)
28
-    {
29
-        if (!wp_verify_nonce(Helper::filterInput('_nonce-response'), 'response')) {
30
-            return;
31
-        }
32
-        $response = strval(Helper::filterInput('response'));
33
-        glsr(Database::class)->update($postId, 'response', trim(wp_kses($response, [
34
-            'a' => ['href' => [], 'title' => []],
35
-            'em' => [],
36
-            'strong' => [],
37
-        ])));
38
-    }
23
+	/**
24
+	 * @param int $postId
25
+	 * @return mixed
26
+	 */
27
+	public function saveResponseMetabox($postId)
28
+	{
29
+		if (!wp_verify_nonce(Helper::filterInput('_nonce-response'), 'response')) {
30
+			return;
31
+		}
32
+		$response = strval(Helper::filterInput('response'));
33
+		glsr(Database::class)->update($postId, 'response', trim(wp_kses($response, [
34
+			'a' => ['href' => [], 'title' => []],
35
+			'em' => [],
36
+			'strong' => [],
37
+		])));
38
+	}
39 39
 }
Please login to merge, or discard this patch.
plugin/Controllers/BlocksController.php 1 patch
Indentation   +77 added lines, -77 removed lines patch added patch discarded remove patch
@@ -8,85 +8,85 @@
 block discarded – undo
8 8
 
9 9
 class BlocksController extends Controller
10 10
 {
11
-    /**
12
-     * @param array $categories
13
-     * @return array
14
-     * @filter block_categories
15
-     */
16
-    public function filterBlockCategories($categories)
17
-    {
18
-        $categories = Arr::consolidateArray($categories);
19
-        $categories[] = [
20
-            'icon' => null,
21
-            'slug' => Application::ID,
22
-            'title' => glsr()->name,
23
-        ];
24
-        return $categories;
25
-    }
11
+	/**
12
+	 * @param array $categories
13
+	 * @return array
14
+	 * @filter block_categories
15
+	 */
16
+	public function filterBlockCategories($categories)
17
+	{
18
+		$categories = Arr::consolidateArray($categories);
19
+		$categories[] = [
20
+			'icon' => null,
21
+			'slug' => Application::ID,
22
+			'title' => glsr()->name,
23
+		];
24
+		return $categories;
25
+	}
26 26
 
27
-    /**
28
-     * @param array $editors
29
-     * @param string $postType
30
-     * @return array
31
-     * @filter classic_editor_enabled_editors_for_post_type
32
-     * @plugin classic-editor/classic-editor.php
33
-     */
34
-    public function filterEnabledEditors($editors, $postType)
35
-    {
36
-        return Application::POST_TYPE == $postType
37
-            ? ['block_editor' => false, 'classic_editor' => false]
38
-            : $editors;
39
-    }
27
+	/**
28
+	 * @param array $editors
29
+	 * @param string $postType
30
+	 * @return array
31
+	 * @filter classic_editor_enabled_editors_for_post_type
32
+	 * @plugin classic-editor/classic-editor.php
33
+	 */
34
+	public function filterEnabledEditors($editors, $postType)
35
+	{
36
+		return Application::POST_TYPE == $postType
37
+			? ['block_editor' => false, 'classic_editor' => false]
38
+			: $editors;
39
+	}
40 40
 
41
-    /**
42
-     * @param bool $bool
43
-     * @param string $postType
44
-     * @return bool
45
-     * @filter use_block_editor_for_post_type
46
-     */
47
-    public function filterUseBlockEditor($bool, $postType)
48
-    {
49
-        return Application::POST_TYPE == $postType
50
-            ? false
51
-            : $bool;
52
-    }
41
+	/**
42
+	 * @param bool $bool
43
+	 * @param string $postType
44
+	 * @return bool
45
+	 * @filter use_block_editor_for_post_type
46
+	 */
47
+	public function filterUseBlockEditor($bool, $postType)
48
+	{
49
+		return Application::POST_TYPE == $postType
50
+			? false
51
+			: $bool;
52
+	}
53 53
 
54
-    /**
55
-     * @return void
56
-     */
57
-    public function registerAssets()
58
-    {
59
-        wp_register_style(
60
-            Application::ID.'/blocks',
61
-            glsr()->url('assets/styles/'.Application::ID.'-blocks.css'),
62
-            ['wp-edit-blocks'],
63
-            glsr()->version
64
-        );
65
-        wp_register_script(
66
-            Application::ID.'/blocks',
67
-            glsr()->url('assets/scripts/'.Application::ID.'-blocks.js'),
68
-            ['wp-api-fetch', 'wp-blocks', 'wp-i18n', 'wp-editor', 'wp-element', Application::ID],
69
-            glsr()->version
70
-        );
71
-    }
54
+	/**
55
+	 * @return void
56
+	 */
57
+	public function registerAssets()
58
+	{
59
+		wp_register_style(
60
+			Application::ID.'/blocks',
61
+			glsr()->url('assets/styles/'.Application::ID.'-blocks.css'),
62
+			['wp-edit-blocks'],
63
+			glsr()->version
64
+		);
65
+		wp_register_script(
66
+			Application::ID.'/blocks',
67
+			glsr()->url('assets/scripts/'.Application::ID.'-blocks.js'),
68
+			['wp-api-fetch', 'wp-blocks', 'wp-i18n', 'wp-editor', 'wp-element', Application::ID],
69
+			glsr()->version
70
+		);
71
+	}
72 72
 
73
-    /**
74
-     * @return void
75
-     * @action init
76
-     */
77
-    public function registerBlocks()
78
-    {
79
-        $blocks = [
80
-            'form', 'reviews', 'summary',
81
-        ];
82
-        foreach ($blocks as $block) {
83
-            $id = str_replace('_reviews', '', Application::ID.'_'.$block);
84
-            $blockClass = Helper::buildClassName($id.'-block', 'Blocks');
85
-            if (!class_exists($blockClass)) {
86
-                glsr_log()->error(sprintf('Class missing (%s)', $blockClass));
87
-                continue;
88
-            }
89
-            glsr($blockClass)->register($block);
90
-        }
91
-    }
73
+	/**
74
+	 * @return void
75
+	 * @action init
76
+	 */
77
+	public function registerBlocks()
78
+	{
79
+		$blocks = [
80
+			'form', 'reviews', 'summary',
81
+		];
82
+		foreach ($blocks as $block) {
83
+			$id = str_replace('_reviews', '', Application::ID.'_'.$block);
84
+			$blockClass = Helper::buildClassName($id.'-block', 'Blocks');
85
+			if (!class_exists($blockClass)) {
86
+				glsr_log()->error(sprintf('Class missing (%s)', $blockClass));
87
+				continue;
88
+			}
89
+			glsr($blockClass)->register($block);
90
+		}
91
+	}
92 92
 }
Please login to merge, or discard this patch.