Passed
Push — feature/rebusify ( 0fe5b2...103190 )
by Paul
08:37 queued 03:55
created
plugin/Modules/Html/Partials/SiteReviewsSummary.php 1 patch
Indentation   +187 added lines, -187 removed lines patch added patch discarded remove patch
@@ -10,191 +10,191 @@
 block discarded – undo
10 10
 
11 11
 class SiteReviewsSummary
12 12
 {
13
-    /**
14
-     * @var array
15
-     */
16
-    protected $args;
17
-
18
-    /**
19
-     * @var float
20
-     */
21
-    protected $averageRating;
22
-
23
-    /**
24
-     * @var array
25
-     */
26
-    protected $ratingCounts;
27
-
28
-    /**
29
-     * @return void|string
30
-     */
31
-    public function build(array $args = [])
32
-    {
33
-        $this->args = $args;
34
-        $this->ratingCounts = glsr(ReviewManager::class)->getRatingCounts($args);
35
-        if (!array_sum($this->ratingCounts) && $this->isHidden('if_empty')) {
36
-            return;
37
-        }
38
-        $this->averageRating = glsr(Rating::class)->getAverage($this->ratingCounts);
39
-        $this->generateSchema();
40
-        return glsr(Template::class)->build('templates/reviews-summary', [
41
-            'context' => [
42
-                'assigned_to' => $this->args['assigned_to'],
43
-                'category' => $this->args['category'],
44
-                'class' => $this->getClass(),
45
-                'id' => $this->args['id'],
46
-                'percentages' => $this->buildPercentage(),
47
-                'rating' => $this->buildRating(),
48
-                'stars' => $this->buildStars(),
49
-                'text' => $this->buildText(),
50
-            ],
51
-        ]);
52
-    }
53
-
54
-    /**
55
-     * @return void|string
56
-     */
57
-    protected function buildPercentage()
58
-    {
59
-        if ($this->isHidden('bars')) {
60
-            return;
61
-        }
62
-        $percentages = preg_filter('/$/', '%', glsr(Rating::class)->getPercentages($this->ratingCounts));
63
-        $bars = array_reduce(range(glsr()->constant('MAX_RATING', Rating::class), 1), function ($carry, $level) use ($percentages) {
64
-            $label = $this->buildPercentageLabel($this->args['labels'][$level]);
65
-            $background = $this->buildPercentageBackground($percentages[$level]);
66
-            $count = apply_filters('site-reviews/summary/counts',
67
-                $percentages[$level],
68
-                $this->ratingCounts[$level]
69
-            );
70
-            $percent = $this->buildPercentageCount($count);
71
-            return $carry.glsr(Builder::class)->div($label.$background.$percent, [
72
-                'class' => 'glsr-bar',
73
-            ]);
74
-        });
75
-        return $this->wrap('percentage', $bars);
76
-    }
77
-
78
-    /**
79
-     * @param string $percent
80
-     * @return string
81
-     */
82
-    protected function buildPercentageBackground($percent)
83
-    {
84
-        $backgroundPercent = glsr(Builder::class)->span([
85
-            'class' => 'glsr-bar-background-percent',
86
-            'style' => 'width:'.$percent,
87
-        ]);
88
-        return '<span class="glsr-bar-background">'.$backgroundPercent.'</span>';
89
-    }
90
-
91
-    /**
92
-     * @param string $count
93
-     * @return string
94
-     */
95
-    protected function buildPercentageCount($count)
96
-    {
97
-        return '<span class="glsr-bar-percent">'.$count.'</span>';
98
-    }
99
-
100
-    /**
101
-     * @param string $label
102
-     * @return string
103
-     */
104
-    protected function buildPercentageLabel($label)
105
-    {
106
-        return '<span class="glsr-bar-label">'.$label.'</span>';
107
-    }
108
-
109
-    /**
110
-     * @return void|string
111
-     */
112
-    protected function buildRating()
113
-    {
114
-        if ($this->isHidden('rating')) {
115
-            return;
116
-        }
117
-        return $this->wrap('rating', '<span>'.$this->averageRating.'</span>');
118
-    }
119
-
120
-    /**
121
-     * @return void|string
122
-     */
123
-    protected function buildStars()
124
-    {
125
-        if ($this->isHidden('stars')) {
126
-            return;
127
-        }
128
-        $stars = glsr_star_rating($this->averageRating);
129
-        return $this->wrap('stars', $stars);
130
-    }
131
-
132
-    /**
133
-     * @return void|string
134
-     */
135
-    protected function buildText()
136
-    {
137
-        if ($this->isHidden('summary')) {
138
-            return;
139
-        }
140
-        $count = intval(array_sum($this->ratingCounts));
141
-        if (empty($this->args['text'])) {
142
-            // @todo document this change
143
-            $this->args['text'] = _nx(
144
-                '{rating} out of {max} stars (based on {num} review)',
145
-                '{rating} out of {max} stars (based on {num} reviews)',
146
-                $count,
147
-                'Do not translate {rating}, {max}, and {num}, they are template tags.',
148
-                'site-reviews'
149
-            );
150
-        }
151
-        $summary = str_replace(
152
-            ['{rating}', '{max}', '{num}'],
153
-            [$this->averageRating, glsr()->constant('MAX_RATING', Rating::class), $count],
154
-            $this->args['text']
155
-        );
156
-        return $this->wrap('text', '<span>'.$summary.'</span>');
157
-    }
158
-
159
-    /**
160
-     * @return void
161
-     */
162
-    protected function generateSchema()
163
-    {
164
-        if (!wp_validate_boolean($this->args['schema'])) {
165
-            return;
166
-        }
167
-        glsr(Schema::class)->store(
168
-            glsr(Schema::class)->buildSummary($this->args)
169
-        );
170
-    }
171
-
172
-    /**
173
-     * @return string
174
-     */
175
-    protected function getClass()
176
-    {
177
-        return trim('glsr-summary glsr-default '.$this->args['class']);
178
-    }
179
-
180
-    /**
181
-     * @param string $key
182
-     * @return bool
183
-     */
184
-    protected function isHidden($key)
185
-    {
186
-        return in_array($key, $this->args['hide']);
187
-    }
188
-
189
-    /**
190
-     * @param string $key
191
-     * @param string $value
192
-     * @return string
193
-     */
194
-    protected function wrap($key, $value)
195
-    {
196
-        return glsr(Builder::class)->div($value, [
197
-            'class' => 'glsr-summary-'.$key,
198
-        ]);
199
-    }
13
+	/**
14
+	 * @var array
15
+	 */
16
+	protected $args;
17
+
18
+	/**
19
+	 * @var float
20
+	 */
21
+	protected $averageRating;
22
+
23
+	/**
24
+	 * @var array
25
+	 */
26
+	protected $ratingCounts;
27
+
28
+	/**
29
+	 * @return void|string
30
+	 */
31
+	public function build(array $args = [])
32
+	{
33
+		$this->args = $args;
34
+		$this->ratingCounts = glsr(ReviewManager::class)->getRatingCounts($args);
35
+		if (!array_sum($this->ratingCounts) && $this->isHidden('if_empty')) {
36
+			return;
37
+		}
38
+		$this->averageRating = glsr(Rating::class)->getAverage($this->ratingCounts);
39
+		$this->generateSchema();
40
+		return glsr(Template::class)->build('templates/reviews-summary', [
41
+			'context' => [
42
+				'assigned_to' => $this->args['assigned_to'],
43
+				'category' => $this->args['category'],
44
+				'class' => $this->getClass(),
45
+				'id' => $this->args['id'],
46
+				'percentages' => $this->buildPercentage(),
47
+				'rating' => $this->buildRating(),
48
+				'stars' => $this->buildStars(),
49
+				'text' => $this->buildText(),
50
+			],
51
+		]);
52
+	}
53
+
54
+	/**
55
+	 * @return void|string
56
+	 */
57
+	protected function buildPercentage()
58
+	{
59
+		if ($this->isHidden('bars')) {
60
+			return;
61
+		}
62
+		$percentages = preg_filter('/$/', '%', glsr(Rating::class)->getPercentages($this->ratingCounts));
63
+		$bars = array_reduce(range(glsr()->constant('MAX_RATING', Rating::class), 1), function ($carry, $level) use ($percentages) {
64
+			$label = $this->buildPercentageLabel($this->args['labels'][$level]);
65
+			$background = $this->buildPercentageBackground($percentages[$level]);
66
+			$count = apply_filters('site-reviews/summary/counts',
67
+				$percentages[$level],
68
+				$this->ratingCounts[$level]
69
+			);
70
+			$percent = $this->buildPercentageCount($count);
71
+			return $carry.glsr(Builder::class)->div($label.$background.$percent, [
72
+				'class' => 'glsr-bar',
73
+			]);
74
+		});
75
+		return $this->wrap('percentage', $bars);
76
+	}
77
+
78
+	/**
79
+	 * @param string $percent
80
+	 * @return string
81
+	 */
82
+	protected function buildPercentageBackground($percent)
83
+	{
84
+		$backgroundPercent = glsr(Builder::class)->span([
85
+			'class' => 'glsr-bar-background-percent',
86
+			'style' => 'width:'.$percent,
87
+		]);
88
+		return '<span class="glsr-bar-background">'.$backgroundPercent.'</span>';
89
+	}
90
+
91
+	/**
92
+	 * @param string $count
93
+	 * @return string
94
+	 */
95
+	protected function buildPercentageCount($count)
96
+	{
97
+		return '<span class="glsr-bar-percent">'.$count.'</span>';
98
+	}
99
+
100
+	/**
101
+	 * @param string $label
102
+	 * @return string
103
+	 */
104
+	protected function buildPercentageLabel($label)
105
+	{
106
+		return '<span class="glsr-bar-label">'.$label.'</span>';
107
+	}
108
+
109
+	/**
110
+	 * @return void|string
111
+	 */
112
+	protected function buildRating()
113
+	{
114
+		if ($this->isHidden('rating')) {
115
+			return;
116
+		}
117
+		return $this->wrap('rating', '<span>'.$this->averageRating.'</span>');
118
+	}
119
+
120
+	/**
121
+	 * @return void|string
122
+	 */
123
+	protected function buildStars()
124
+	{
125
+		if ($this->isHidden('stars')) {
126
+			return;
127
+		}
128
+		$stars = glsr_star_rating($this->averageRating);
129
+		return $this->wrap('stars', $stars);
130
+	}
131
+
132
+	/**
133
+	 * @return void|string
134
+	 */
135
+	protected function buildText()
136
+	{
137
+		if ($this->isHidden('summary')) {
138
+			return;
139
+		}
140
+		$count = intval(array_sum($this->ratingCounts));
141
+		if (empty($this->args['text'])) {
142
+			// @todo document this change
143
+			$this->args['text'] = _nx(
144
+				'{rating} out of {max} stars (based on {num} review)',
145
+				'{rating} out of {max} stars (based on {num} reviews)',
146
+				$count,
147
+				'Do not translate {rating}, {max}, and {num}, they are template tags.',
148
+				'site-reviews'
149
+			);
150
+		}
151
+		$summary = str_replace(
152
+			['{rating}', '{max}', '{num}'],
153
+			[$this->averageRating, glsr()->constant('MAX_RATING', Rating::class), $count],
154
+			$this->args['text']
155
+		);
156
+		return $this->wrap('text', '<span>'.$summary.'</span>');
157
+	}
158
+
159
+	/**
160
+	 * @return void
161
+	 */
162
+	protected function generateSchema()
163
+	{
164
+		if (!wp_validate_boolean($this->args['schema'])) {
165
+			return;
166
+		}
167
+		glsr(Schema::class)->store(
168
+			glsr(Schema::class)->buildSummary($this->args)
169
+		);
170
+	}
171
+
172
+	/**
173
+	 * @return string
174
+	 */
175
+	protected function getClass()
176
+	{
177
+		return trim('glsr-summary glsr-default '.$this->args['class']);
178
+	}
179
+
180
+	/**
181
+	 * @param string $key
182
+	 * @return bool
183
+	 */
184
+	protected function isHidden($key)
185
+	{
186
+		return in_array($key, $this->args['hide']);
187
+	}
188
+
189
+	/**
190
+	 * @param string $key
191
+	 * @param string $value
192
+	 * @return string
193
+	 */
194
+	protected function wrap($key, $value)
195
+	{
196
+		return glsr(Builder::class)->div($value, [
197
+			'class' => 'glsr-summary-'.$key,
198
+		]);
199
+	}
200 200
 }
Please login to merge, or discard this patch.
plugin/Modules/Html/Partials/Pagination.php 1 patch
Indentation   +48 added lines, -48 removed lines patch added patch discarded remove patch
@@ -9,55 +9,55 @@
 block discarded – undo
9 9
 
10 10
 class Pagination implements PartialContract
11 11
 {
12
-    /**
13
-     * @var array
14
-     */
15
-    protected $args;
12
+	/**
13
+	 * @var array
14
+	 */
15
+	protected $args;
16 16
 
17
-    /**
18
-     * @return void|string
19
-     */
20
-    public function build(array $args = [])
21
-    {
22
-        $this->args = $this->normalize($args);
23
-        if ($this->args['total'] < 2) {
24
-            return;
25
-        }
26
-        return glsr(Template::class)->build('templates/pagination', [
27
-            'context' => [
28
-                'links' => apply_filters('site-reviews/paginate_links', $this->buildLinks(), $this->args),
29
-                'loader' => '<div class="glsr-loader"></div>',
30
-                'screen_reader_text' => __('Site Reviews navigation', 'site-reviews'),
31
-            ],
32
-        ]);
33
-    }
17
+	/**
18
+	 * @return void|string
19
+	 */
20
+	public function build(array $args = [])
21
+	{
22
+		$this->args = $this->normalize($args);
23
+		if ($this->args['total'] < 2) {
24
+			return;
25
+		}
26
+		return glsr(Template::class)->build('templates/pagination', [
27
+			'context' => [
28
+				'links' => apply_filters('site-reviews/paginate_links', $this->buildLinks(), $this->args),
29
+				'loader' => '<div class="glsr-loader"></div>',
30
+				'screen_reader_text' => __('Site Reviews navigation', 'site-reviews'),
31
+			],
32
+		]);
33
+	}
34 34
 
35
-    /**
36
-     * @return string
37
-     */
38
-    protected function buildLinks()
39
-    {
40
-        $args = glsr(Style::class)->paginationArgs($this->args);
41
-        if (is_front_page()) {
42
-            unset($args['format']);
43
-        }
44
-        if ('array' == $args['type']) {
45
-            $args['type'] = 'plain';
46
-        }
47
-        return paginate_links($args);
48
-    }
35
+	/**
36
+	 * @return string
37
+	 */
38
+	protected function buildLinks()
39
+	{
40
+		$args = glsr(Style::class)->paginationArgs($this->args);
41
+		if (is_front_page()) {
42
+			unset($args['format']);
43
+		}
44
+		if ('array' == $args['type']) {
45
+			$args['type'] = 'plain';
46
+		}
47
+		return paginate_links($args);
48
+	}
49 49
 
50
-    /**
51
-     * @return array
52
-     */
53
-    protected function normalize(array $args)
54
-    {
55
-        if ($baseUrl = glsr_get($args, 'baseUrl')) {
56
-            $args['base'] = $baseUrl.'%_%';
57
-        }
58
-        return wp_parse_args(array_filter($args), [
59
-            'current' => glsr(QueryBuilder::class)->getPaged(),
60
-            'total' => 1,
61
-        ]);
62
-    }
50
+	/**
51
+	 * @return array
52
+	 */
53
+	protected function normalize(array $args)
54
+	{
55
+		if ($baseUrl = glsr_get($args, 'baseUrl')) {
56
+			$args['base'] = $baseUrl.'%_%';
57
+		}
58
+		return wp_parse_args(array_filter($args), [
59
+			'current' => glsr(QueryBuilder::class)->getPaged(),
60
+			'total' => 1,
61
+		]);
62
+	}
63 63
 }
Please login to merge, or discard this patch.
plugin/Modules/Html/ReviewHtml.php 1 patch
Indentation   +40 added lines, -40 removed lines patch added patch discarded remove patch
@@ -7,48 +7,48 @@
 block discarded – undo
7 7
 
8 8
 class ReviewHtml extends ArrayObject
9 9
 {
10
-    /**
11
-     * @var Review
12
-     */
13
-    public $review;
10
+	/**
11
+	 * @var Review
12
+	 */
13
+	public $review;
14 14
 
15
-    /**
16
-     * @var array
17
-     */
18
-    public $values;
15
+	/**
16
+	 * @var array
17
+	 */
18
+	public $values;
19 19
 
20
-    public function __construct(Review $review, array $values = [])
21
-    {
22
-        $this->review = $review;
23
-        $this->values = $values;
24
-        parent::__construct($values, ArrayObject::STD_PROP_LIST | ArrayObject::ARRAY_AS_PROPS);
25
-    }
20
+	public function __construct(Review $review, array $values = [])
21
+	{
22
+		$this->review = $review;
23
+		$this->values = $values;
24
+		parent::__construct($values, ArrayObject::STD_PROP_LIST | ArrayObject::ARRAY_AS_PROPS);
25
+	}
26 26
 
27
-    /**
28
-     * @return string|void
29
-     */
30
-    public function __toString()
31
-    {
32
-        if (empty($this->values)) {
33
-            return;
34
-        }
35
-        return glsr(Template::class)->build('templates/review', [
36
-            'context' => $this->values,
37
-            'review' => $this->review,
38
-        ]);
39
-    }
27
+	/**
28
+	 * @return string|void
29
+	 */
30
+	public function __toString()
31
+	{
32
+		if (empty($this->values)) {
33
+			return;
34
+		}
35
+		return glsr(Template::class)->build('templates/review', [
36
+			'context' => $this->values,
37
+			'review' => $this->review,
38
+		]);
39
+	}
40 40
 
41
-    /**
42
-     * @param mixed $key
43
-     * @return mixed
44
-     */
45
-    public function offsetGet($key)
46
-    {
47
-        if (property_exists($this, $key)) {
48
-            return $this->{$key};
49
-        }
50
-        return array_key_exists($key, $this->values)
51
-            ? $this->values[$key]
52
-            : null;
53
-    }
41
+	/**
42
+	 * @param mixed $key
43
+	 * @return mixed
44
+	 */
45
+	public function offsetGet($key)
46
+	{
47
+		if (property_exists($this, $key)) {
48
+			return $this->{$key};
49
+		}
50
+		return array_key_exists($key, $this->values)
51
+			? $this->values[$key]
52
+			: null;
53
+	}
54 54
 }
Please login to merge, or discard this patch.
plugin/Modules/Html/Field.php 1 patch
Indentation   +233 added lines, -233 removed lines patch added patch discarded remove patch
@@ -8,237 +8,237 @@
 block discarded – undo
8 8
 
9 9
 class Field
10 10
 {
11
-    /**
12
-     * @var array
13
-     */
14
-    public $field;
15
-
16
-    public function __construct(array $field = [])
17
-    {
18
-        $this->field = wp_parse_args($field, [
19
-            'errors' => false,
20
-            'is_hidden' => false,
21
-            'is_multi' => false,
22
-            'is_public' => false,
23
-            'is_raw' => false,
24
-            'is_setting' => false,
25
-            'is_valid' => true,
26
-            'is_widget' => false,
27
-            'path' => '',
28
-        ]);
29
-        $this->normalize();
30
-    }
31
-
32
-    /**
33
-     * @return string
34
-     */
35
-    public function __toString()
36
-    {
37
-        return (string) $this->build();
38
-    }
39
-
40
-    /**
41
-     * @return void|string
42
-     */
43
-    public function build()
44
-    {
45
-        if (!$this->field['is_valid']) {
46
-            return;
47
-        }
48
-        if ($this->field['is_raw']) {
49
-            return glsr(Builder::class)->{$this->field['type']}($this->field);
50
-        }
51
-        if (!$this->field['is_setting']) {
52
-            return $this->buildField();
53
-        }
54
-        if (!$this->field['is_multi']) {
55
-            return $this->buildSettingField();
56
-        }
57
-        return $this->buildSettingMultiField();
58
-    }
59
-
60
-    /**
61
-     * @return void
62
-     */
63
-    public function render()
64
-    {
65
-        echo $this->build();
66
-    }
67
-
68
-    /**
69
-     * @return string
70
-     */
71
-    protected function buildField()
72
-    {
73
-        $field = glsr(Template::class)->build('templates/form/field_'.$this->field['type'], [
74
-            'context' => [
75
-                'class' => $this->getFieldClass(),
76
-                'errors' => $this->getFieldErrors(),
77
-                'field' => glsr(Builder::class)->raw($this->field),
78
-                'label' => glsr(Builder::class)->label([
79
-                    'class' => 'glsr-'.$this->field['type'].'-label',
80
-                    'for' => $this->field['id'],
81
-                    'is_public' => $this->field['is_public'],
82
-                    'text' => $this->field['label'].'<span></span>',
83
-                    'type' => $this->field['type'],
84
-                ]),
85
-            ],
86
-        ]);
87
-        return apply_filters('site-reviews/rendered/field', $field, $this->field['type'], $this->field);
88
-    }
89
-
90
-    /**
91
-     * @return string
92
-     */
93
-    protected function buildSettingField()
94
-    {
95
-        return glsr(Template::class)->build('partials/form/table-row', [
96
-            'context' => [
97
-                'class' => $this->getFieldClass(),
98
-                'field' => glsr(Builder::class)->{$this->field['type']}($this->field),
99
-                'label' => glsr(Builder::class)->label($this->field['legend'], ['for' => $this->field['id']]),
100
-            ],
101
-        ]);
102
-    }
103
-
104
-    /**
105
-     * @return string
106
-     */
107
-    protected function buildSettingMultiField()
108
-    {
109
-        $dependsOn = $this->getFieldDependsOn();
110
-        unset($this->field['data-depends']);
111
-        return glsr(Template::class)->build('partials/form/table-row-multiple', [
112
-            'context' => [
113
-                'class' => $this->getFieldClass(),
114
-                'depends_on' => $dependsOn,
115
-                'field' => glsr(Builder::class)->{$this->field['type']}($this->field),
116
-                'label' => glsr(Builder::class)->label($this->field['legend'], ['for' => $this->field['id']]),
117
-                'legend' => $this->field['legend'],
118
-            ],
119
-        ]);
120
-    }
121
-
122
-    /**
123
-     * @return string
124
-     */
125
-    protected function getFieldClass()
126
-    {
127
-        $classes = [];
128
-        if (!empty($this->field['errors'])) {
129
-            $classes[] = 'glsr-has-error';
130
-        }
131
-        if ($this->field['is_hidden']) {
132
-            $classes[] = 'hidden';
133
-        }
134
-        if (!empty($this->field['required'])) {
135
-            $classes[] = 'glsr-required';
136
-        }
137
-        $classes = apply_filters('site-reviews/rendered/field/classes', $classes, $this->field);
138
-        return implode(' ', $classes);
139
-    }
140
-
141
-    /**
142
-     * @return string
143
-     */
144
-    protected function getFieldDependsOn()
145
-    {
146
-        return !empty($this->field['data-depends'])
147
-            ? $this->field['data-depends']
148
-            : '';
149
-    }
150
-
151
-    /**
152
-     * @return void|string
153
-     */
154
-    protected function getFieldErrors()
155
-    {
156
-        if (empty($this->field['errors']) || !is_array($this->field['errors'])) {
157
-            return;
158
-        }
159
-        $errors = array_reduce($this->field['errors'], function ($carry, $error) {
160
-            return $carry.glsr(Builder::class)->span($error, ['class' => 'glsr-field-error']);
161
-        });
162
-        return glsr(Template::class)->build('templates/form/field-errors', [
163
-            'context' => [
164
-                'errors' => $errors,
165
-            ],
166
-        ]);
167
-    }
168
-
169
-    /**
170
-     * @return string
171
-     */
172
-    protected function getFieldPrefix()
173
-    {
174
-        return $this->field['is_setting']
175
-            ? OptionManager::databaseKey()
176
-            : Application::ID;
177
-    }
178
-
179
-    /**
180
-     * @return bool
181
-     */
182
-    protected function isFieldValid()
183
-    {
184
-        $missingValues = [];
185
-        $requiredValues = [
186
-            'name', 'type',
187
-        ];
188
-        foreach ($requiredValues as $value) {
189
-            if (isset($this->field[$value])) {
190
-                continue;
191
-            }
192
-            $missingValues[] = $value;
193
-            $this->field['is_valid'] = false;
194
-        }
195
-        if (!empty($missingValues)) {
196
-            glsr_log()
197
-                ->warning('Field is missing: '.implode(', ', $missingValues))
198
-                ->debug($this->field);
199
-        }
200
-        return $this->field['is_valid'];
201
-    }
202
-
203
-    /**
204
-     * @return void
205
-     */
206
-    protected function normalize()
207
-    {
208
-        if (!$this->isFieldValid()) {
209
-            return;
210
-        }
211
-        $this->field['path'] = $this->field['name'];
212
-        $className = glsr(Helper::class)->buildClassName($this->field['type'], __NAMESPACE__.'\Fields');
213
-        if (class_exists($className)) {
214
-            $this->field = $className::merge($this->field);
215
-        }
216
-        $this->normalizeFieldId();
217
-        $this->normalizeFieldName();
218
-    }
219
-
220
-    /**
221
-     * @return void
222
-     */
223
-    protected function normalizeFieldId()
224
-    {
225
-        if (isset($this->field['id']) || $this->field['is_raw']) {
226
-            return;
227
-        }
228
-        $this->field['id'] = glsr(Helper::class)->convertPathToId(
229
-            $this->field['path'],
230
-            $this->getFieldPrefix()
231
-        );
232
-    }
233
-
234
-    /**
235
-     * @return void
236
-     */
237
-    protected function normalizeFieldName()
238
-    {
239
-        $this->field['name'] = glsr(Helper::class)->convertPathToName(
240
-            $this->field['path'],
241
-            $this->getFieldPrefix()
242
-        );
243
-    }
11
+	/**
12
+	 * @var array
13
+	 */
14
+	public $field;
15
+
16
+	public function __construct(array $field = [])
17
+	{
18
+		$this->field = wp_parse_args($field, [
19
+			'errors' => false,
20
+			'is_hidden' => false,
21
+			'is_multi' => false,
22
+			'is_public' => false,
23
+			'is_raw' => false,
24
+			'is_setting' => false,
25
+			'is_valid' => true,
26
+			'is_widget' => false,
27
+			'path' => '',
28
+		]);
29
+		$this->normalize();
30
+	}
31
+
32
+	/**
33
+	 * @return string
34
+	 */
35
+	public function __toString()
36
+	{
37
+		return (string) $this->build();
38
+	}
39
+
40
+	/**
41
+	 * @return void|string
42
+	 */
43
+	public function build()
44
+	{
45
+		if (!$this->field['is_valid']) {
46
+			return;
47
+		}
48
+		if ($this->field['is_raw']) {
49
+			return glsr(Builder::class)->{$this->field['type']}($this->field);
50
+		}
51
+		if (!$this->field['is_setting']) {
52
+			return $this->buildField();
53
+		}
54
+		if (!$this->field['is_multi']) {
55
+			return $this->buildSettingField();
56
+		}
57
+		return $this->buildSettingMultiField();
58
+	}
59
+
60
+	/**
61
+	 * @return void
62
+	 */
63
+	public function render()
64
+	{
65
+		echo $this->build();
66
+	}
67
+
68
+	/**
69
+	 * @return string
70
+	 */
71
+	protected function buildField()
72
+	{
73
+		$field = glsr(Template::class)->build('templates/form/field_'.$this->field['type'], [
74
+			'context' => [
75
+				'class' => $this->getFieldClass(),
76
+				'errors' => $this->getFieldErrors(),
77
+				'field' => glsr(Builder::class)->raw($this->field),
78
+				'label' => glsr(Builder::class)->label([
79
+					'class' => 'glsr-'.$this->field['type'].'-label',
80
+					'for' => $this->field['id'],
81
+					'is_public' => $this->field['is_public'],
82
+					'text' => $this->field['label'].'<span></span>',
83
+					'type' => $this->field['type'],
84
+				]),
85
+			],
86
+		]);
87
+		return apply_filters('site-reviews/rendered/field', $field, $this->field['type'], $this->field);
88
+	}
89
+
90
+	/**
91
+	 * @return string
92
+	 */
93
+	protected function buildSettingField()
94
+	{
95
+		return glsr(Template::class)->build('partials/form/table-row', [
96
+			'context' => [
97
+				'class' => $this->getFieldClass(),
98
+				'field' => glsr(Builder::class)->{$this->field['type']}($this->field),
99
+				'label' => glsr(Builder::class)->label($this->field['legend'], ['for' => $this->field['id']]),
100
+			],
101
+		]);
102
+	}
103
+
104
+	/**
105
+	 * @return string
106
+	 */
107
+	protected function buildSettingMultiField()
108
+	{
109
+		$dependsOn = $this->getFieldDependsOn();
110
+		unset($this->field['data-depends']);
111
+		return glsr(Template::class)->build('partials/form/table-row-multiple', [
112
+			'context' => [
113
+				'class' => $this->getFieldClass(),
114
+				'depends_on' => $dependsOn,
115
+				'field' => glsr(Builder::class)->{$this->field['type']}($this->field),
116
+				'label' => glsr(Builder::class)->label($this->field['legend'], ['for' => $this->field['id']]),
117
+				'legend' => $this->field['legend'],
118
+			],
119
+		]);
120
+	}
121
+
122
+	/**
123
+	 * @return string
124
+	 */
125
+	protected function getFieldClass()
126
+	{
127
+		$classes = [];
128
+		if (!empty($this->field['errors'])) {
129
+			$classes[] = 'glsr-has-error';
130
+		}
131
+		if ($this->field['is_hidden']) {
132
+			$classes[] = 'hidden';
133
+		}
134
+		if (!empty($this->field['required'])) {
135
+			$classes[] = 'glsr-required';
136
+		}
137
+		$classes = apply_filters('site-reviews/rendered/field/classes', $classes, $this->field);
138
+		return implode(' ', $classes);
139
+	}
140
+
141
+	/**
142
+	 * @return string
143
+	 */
144
+	protected function getFieldDependsOn()
145
+	{
146
+		return !empty($this->field['data-depends'])
147
+			? $this->field['data-depends']
148
+			: '';
149
+	}
150
+
151
+	/**
152
+	 * @return void|string
153
+	 */
154
+	protected function getFieldErrors()
155
+	{
156
+		if (empty($this->field['errors']) || !is_array($this->field['errors'])) {
157
+			return;
158
+		}
159
+		$errors = array_reduce($this->field['errors'], function ($carry, $error) {
160
+			return $carry.glsr(Builder::class)->span($error, ['class' => 'glsr-field-error']);
161
+		});
162
+		return glsr(Template::class)->build('templates/form/field-errors', [
163
+			'context' => [
164
+				'errors' => $errors,
165
+			],
166
+		]);
167
+	}
168
+
169
+	/**
170
+	 * @return string
171
+	 */
172
+	protected function getFieldPrefix()
173
+	{
174
+		return $this->field['is_setting']
175
+			? OptionManager::databaseKey()
176
+			: Application::ID;
177
+	}
178
+
179
+	/**
180
+	 * @return bool
181
+	 */
182
+	protected function isFieldValid()
183
+	{
184
+		$missingValues = [];
185
+		$requiredValues = [
186
+			'name', 'type',
187
+		];
188
+		foreach ($requiredValues as $value) {
189
+			if (isset($this->field[$value])) {
190
+				continue;
191
+			}
192
+			$missingValues[] = $value;
193
+			$this->field['is_valid'] = false;
194
+		}
195
+		if (!empty($missingValues)) {
196
+			glsr_log()
197
+				->warning('Field is missing: '.implode(', ', $missingValues))
198
+				->debug($this->field);
199
+		}
200
+		return $this->field['is_valid'];
201
+	}
202
+
203
+	/**
204
+	 * @return void
205
+	 */
206
+	protected function normalize()
207
+	{
208
+		if (!$this->isFieldValid()) {
209
+			return;
210
+		}
211
+		$this->field['path'] = $this->field['name'];
212
+		$className = glsr(Helper::class)->buildClassName($this->field['type'], __NAMESPACE__.'\Fields');
213
+		if (class_exists($className)) {
214
+			$this->field = $className::merge($this->field);
215
+		}
216
+		$this->normalizeFieldId();
217
+		$this->normalizeFieldName();
218
+	}
219
+
220
+	/**
221
+	 * @return void
222
+	 */
223
+	protected function normalizeFieldId()
224
+	{
225
+		if (isset($this->field['id']) || $this->field['is_raw']) {
226
+			return;
227
+		}
228
+		$this->field['id'] = glsr(Helper::class)->convertPathToId(
229
+			$this->field['path'],
230
+			$this->getFieldPrefix()
231
+		);
232
+	}
233
+
234
+	/**
235
+	 * @return void
236
+	 */
237
+	protected function normalizeFieldName()
238
+	{
239
+		$this->field['name'] = glsr(Helper::class)->convertPathToName(
240
+			$this->field['path'],
241
+			$this->getFieldPrefix()
242
+		);
243
+	}
244 244
 }
Please login to merge, or discard this patch.
plugin/Modules/Html/Template.php 1 patch
Indentation   +70 added lines, -70 removed lines patch added patch discarded remove patch
@@ -6,78 +6,78 @@
 block discarded – undo
6 6
 
7 7
 class Template
8 8
 {
9
-    /**
10
-     * @param string $templatePath
11
-     * @return void|string
12
-     */
13
-    public function build($templatePath, array $data = [])
14
-    {
15
-        $data = $this->normalize($data);
16
-        ob_start();
17
-        glsr()->render($templatePath, $data);
18
-        $template = ob_get_clean();
19
-        $path = glsr(Helper::class)->removePrefix('templates/', $templatePath);
20
-        $template = apply_filters('site-reviews/build/template/'.$path, $template, $data);
21
-        $template = $this->interpolate($template, $data['context'], $path);
22
-        $template = apply_filters('site-reviews/rendered/template', $template, $templatePath, $data);
23
-        $template = apply_filters('site-reviews/rendered/template/'.$path, $template, $data);
24
-        return $template;
25
-    }
9
+	/**
10
+	 * @param string $templatePath
11
+	 * @return void|string
12
+	 */
13
+	public function build($templatePath, array $data = [])
14
+	{
15
+		$data = $this->normalize($data);
16
+		ob_start();
17
+		glsr()->render($templatePath, $data);
18
+		$template = ob_get_clean();
19
+		$path = glsr(Helper::class)->removePrefix('templates/', $templatePath);
20
+		$template = apply_filters('site-reviews/build/template/'.$path, $template, $data);
21
+		$template = $this->interpolate($template, $data['context'], $path);
22
+		$template = apply_filters('site-reviews/rendered/template', $template, $templatePath, $data);
23
+		$template = apply_filters('site-reviews/rendered/template/'.$path, $template, $data);
24
+		return $template;
25
+	}
26 26
 
27
-    /**
28
-     * Interpolate context values into template placeholders.
29
-     * @param string $template
30
-     * @param string $templatePath
31
-     * @return string
32
-     */
33
-    public function interpolate($template, array $context = [], $templatePath)
34
-    {
35
-        $context = $this->normalizeContext($context);
36
-        $context = apply_filters('site-reviews/interpolate/'.$templatePath, $context, $template);
37
-        foreach ($context as $key => $value) {
38
-            $template = strtr(
39
-                $template,
40
-                array_fill_keys(['{'.$key.'}', '{{ '.$key.' }}'], $value)
41
-            );
42
-        }
43
-        return trim($template);
44
-    }
27
+	/**
28
+	 * Interpolate context values into template placeholders.
29
+	 * @param string $template
30
+	 * @param string $templatePath
31
+	 * @return string
32
+	 */
33
+	public function interpolate($template, array $context = [], $templatePath)
34
+	{
35
+		$context = $this->normalizeContext($context);
36
+		$context = apply_filters('site-reviews/interpolate/'.$templatePath, $context, $template);
37
+		foreach ($context as $key => $value) {
38
+			$template = strtr(
39
+				$template,
40
+				array_fill_keys(['{'.$key.'}', '{{ '.$key.' }}'], $value)
41
+			);
42
+		}
43
+		return trim($template);
44
+	}
45 45
 
46
-    /**
47
-     * @param string $templatePath
48
-     * @return void|string
49
-     */
50
-    public function render($templatePath, array $data = [])
51
-    {
52
-        echo $this->build($templatePath, $data);
53
-    }
46
+	/**
47
+	 * @param string $templatePath
48
+	 * @return void|string
49
+	 */
50
+	public function render($templatePath, array $data = [])
51
+	{
52
+		echo $this->build($templatePath, $data);
53
+	}
54 54
 
55
-    /**
56
-     * @return array
57
-     */
58
-    protected function normalize(array $data)
59
-    {
60
-        $arrayKeys = ['context', 'globals'];
61
-        $data = wp_parse_args($data, array_fill_keys($arrayKeys, []));
62
-        foreach ($arrayKeys as $key) {
63
-            if (is_array($data[$key])) {
64
-                continue;
65
-            }
66
-            $data[$key] = [];
67
-        }
68
-        return $data;
69
-    }
55
+	/**
56
+	 * @return array
57
+	 */
58
+	protected function normalize(array $data)
59
+	{
60
+		$arrayKeys = ['context', 'globals'];
61
+		$data = wp_parse_args($data, array_fill_keys($arrayKeys, []));
62
+		foreach ($arrayKeys as $key) {
63
+			if (is_array($data[$key])) {
64
+				continue;
65
+			}
66
+			$data[$key] = [];
67
+		}
68
+		return $data;
69
+	}
70 70
 
71
-    /**
72
-     * @return array
73
-     */
74
-    protected function normalizeContext(array $context)
75
-    {
76
-        $context = array_filter($context, function ($value) {
77
-            return !is_array($value) && !is_object($value);
78
-        });
79
-        return array_map(function ($value) {
80
-            return (string) $value;
81
-        }, $context);
82
-    }
71
+	/**
72
+	 * @return array
73
+	 */
74
+	protected function normalizeContext(array $context)
75
+	{
76
+		$context = array_filter($context, function ($value) {
77
+			return !is_array($value) && !is_object($value);
78
+		});
79
+		return array_map(function ($value) {
80
+			return (string) $value;
81
+		}, $context);
82
+	}
83 83
 }
Please login to merge, or discard this patch.
plugin/Modules/Style.php 1 patch
Indentation   +128 added lines, -128 removed lines patch added patch discarded remove patch
@@ -11,144 +11,144 @@
 block discarded – undo
11 11
 
12 12
 class Style
13 13
 {
14
-    /**
15
-     * @var array
16
-     */
17
-    public $fields;
14
+	/**
15
+	 * @var array
16
+	 */
17
+	public $fields;
18 18
 
19
-    /**
20
-     * @var string
21
-     */
22
-    public $style;
19
+	/**
20
+	 * @var string
21
+	 */
22
+	public $style;
23 23
 
24
-    /**
25
-     * @var array
26
-     */
27
-    public $pagination;
24
+	/**
25
+	 * @var array
26
+	 */
27
+	public $pagination;
28 28
 
29
-    /**
30
-     * @var array
31
-     */
32
-    public $validation;
29
+	/**
30
+	 * @var array
31
+	 */
32
+	public $validation;
33 33
 
34
-    public function __construct()
35
-    {
36
-        $this->style = glsr(OptionManager::class)->get('settings.general.style', 'default');
37
-        $this->setConfig();
38
-    }
34
+	public function __construct()
35
+	{
36
+		$this->style = glsr(OptionManager::class)->get('settings.general.style', 'default');
37
+		$this->setConfig();
38
+	}
39 39
 
40
-    /**
41
-     * @param string $view
42
-     * @return string
43
-     */
44
-    public function filterView($view)
45
-    {
46
-        $styledViews = [
47
-            'templates/form/field',
48
-            'templates/form/response',
49
-            'templates/form/submit-button',
50
-            'templates/reviews-form',
51
-        ];
52
-        if (!preg_match('('.implode('|', $styledViews).')', $view)) {
53
-            return $view;
54
-        }
55
-        $views = $this->generatePossibleViews($view);
56
-        foreach ($views as $possibleView) {
57
-            if (!file_exists(glsr()->file($possibleView))) {
58
-                continue;
59
-            }
60
-            return glsr(Helper::class)->removePrefix('views/', $possibleView);
61
-        }
62
-        return $view;
63
-    }
40
+	/**
41
+	 * @param string $view
42
+	 * @return string
43
+	 */
44
+	public function filterView($view)
45
+	{
46
+		$styledViews = [
47
+			'templates/form/field',
48
+			'templates/form/response',
49
+			'templates/form/submit-button',
50
+			'templates/reviews-form',
51
+		];
52
+		if (!preg_match('('.implode('|', $styledViews).')', $view)) {
53
+			return $view;
54
+		}
55
+		$views = $this->generatePossibleViews($view);
56
+		foreach ($views as $possibleView) {
57
+			if (!file_exists(glsr()->file($possibleView))) {
58
+				continue;
59
+			}
60
+			return glsr(Helper::class)->removePrefix('views/', $possibleView);
61
+		}
62
+		return $view;
63
+	}
64 64
 
65
-    /**
66
-     * @return string
67
-     */
68
-    public function get()
69
-    {
70
-        return apply_filters('site-reviews/style', $this->style);
71
-    }
65
+	/**
66
+	 * @return string
67
+	 */
68
+	public function get()
69
+	{
70
+		return apply_filters('site-reviews/style', $this->style);
71
+	}
72 72
 
73
-    /**
74
-     * @return array
75
-     */
76
-    public function setConfig()
77
-    {
78
-        $config = shortcode_atts(
79
-            array_fill_keys(['fields', 'pagination', 'validation'], []),
80
-            glsr()->config('styles/'.$this->style)
81
-        );
82
-        $this->fields = glsr(StyleFieldsDefaults::class)->restrict($config['fields']);
83
-        $this->pagination = glsr(PaginationDefaults::class)->restrict($config['pagination']);
84
-        $this->validation = glsr(StyleValidationDefaults::class)->restrict($config['validation']);
85
-    }
73
+	/**
74
+	 * @return array
75
+	 */
76
+	public function setConfig()
77
+	{
78
+		$config = shortcode_atts(
79
+			array_fill_keys(['fields', 'pagination', 'validation'], []),
80
+			glsr()->config('styles/'.$this->style)
81
+		);
82
+		$this->fields = glsr(StyleFieldsDefaults::class)->restrict($config['fields']);
83
+		$this->pagination = glsr(PaginationDefaults::class)->restrict($config['pagination']);
84
+		$this->validation = glsr(StyleValidationDefaults::class)->restrict($config['validation']);
85
+	}
86 86
 
87
-    /**
88
-     * @return void
89
-     */
90
-    public function modifyField(Builder $instance)
91
-    {
92
-        if (!$this->isPublicInstance($instance) || empty(array_filter($this->fields))) {
93
-            return;
94
-        }
95
-        call_user_func_array([$this, 'customize'], [$instance]);
96
-    }
87
+	/**
88
+	 * @return void
89
+	 */
90
+	public function modifyField(Builder $instance)
91
+	{
92
+		if (!$this->isPublicInstance($instance) || empty(array_filter($this->fields))) {
93
+			return;
94
+		}
95
+		call_user_func_array([$this, 'customize'], [$instance]);
96
+	}
97 97
 
98
-    /**
99
-     * @return array
100
-     */
101
-    public function paginationArgs(array $args)
102
-    {
103
-        return wp_parse_args($args, $this->pagination);
104
-    }
98
+	/**
99
+	 * @return array
100
+	 */
101
+	public function paginationArgs(array $args)
102
+	{
103
+		return wp_parse_args($args, $this->pagination);
104
+	}
105 105
 
106
-    /**
107
-     * @return void
108
-     */
109
-    protected function customize(Builder $instance)
110
-    {
111
-        if (!array_key_exists($instance->tag, $this->fields)) {
112
-            return;
113
-        }
114
-        $args = wp_parse_args($instance->args, array_fill_keys(['class', 'type'], ''));
115
-        $key = $instance->tag.'_'.$args['type'];
116
-        $classes = glsr_get($this->fields, $key, glsr_get($this->fields, $instance->tag));
117
-        $instance->args['class'] = trim($args['class'].' '.$classes);
118
-        do_action_ref_array('site-reviews/customize/'.$this->style, [$instance]);
119
-    }
106
+	/**
107
+	 * @return void
108
+	 */
109
+	protected function customize(Builder $instance)
110
+	{
111
+		if (!array_key_exists($instance->tag, $this->fields)) {
112
+			return;
113
+		}
114
+		$args = wp_parse_args($instance->args, array_fill_keys(['class', 'type'], ''));
115
+		$key = $instance->tag.'_'.$args['type'];
116
+		$classes = glsr_get($this->fields, $key, glsr_get($this->fields, $instance->tag));
117
+		$instance->args['class'] = trim($args['class'].' '.$classes);
118
+		do_action_ref_array('site-reviews/customize/'.$this->style, [$instance]);
119
+	}
120 120
 
121
-    /**
122
-     * @param string $view
123
-     * @return array
124
-     */
125
-    protected function generatePossibleViews($view)
126
-    {
127
-        $basename = basename($view);
128
-        $basepath = rtrim($view, $basename);
129
-        $customPath = 'views/partials/styles/'.$this->style.'/';
130
-        $parts = explode('_', $basename);
131
-        $views = [
132
-            $customPath.$basename,
133
-            $customPath.$parts[0],
134
-            $view,
135
-            $basepath.$parts[0],
136
-        ];
137
-        return array_filter($views);
138
-    }
121
+	/**
122
+	 * @param string $view
123
+	 * @return array
124
+	 */
125
+	protected function generatePossibleViews($view)
126
+	{
127
+		$basename = basename($view);
128
+		$basepath = rtrim($view, $basename);
129
+		$customPath = 'views/partials/styles/'.$this->style.'/';
130
+		$parts = explode('_', $basename);
131
+		$views = [
132
+			$customPath.$basename,
133
+			$customPath.$parts[0],
134
+			$view,
135
+			$basepath.$parts[0],
136
+		];
137
+		return array_filter($views);
138
+	}
139 139
 
140
-    /**
141
-     * @return bool
142
-     */
143
-    protected function isPublicInstance(Builder $instance)
144
-    {
145
-        $args = wp_parse_args($instance->args, [
146
-            'is_public' => false,
147
-            'is_raw' => false,
148
-        ]);
149
-        if (is_admin() || !$args['is_public'] || $args['is_raw']) {
150
-            return false;
151
-        }
152
-        return true;
153
-    }
140
+	/**
141
+	 * @return bool
142
+	 */
143
+	protected function isPublicInstance(Builder $instance)
144
+	{
145
+		$args = wp_parse_args($instance->args, [
146
+			'is_public' => false,
147
+			'is_raw' => false,
148
+		]);
149
+		if (is_admin() || !$args['is_public'] || $args['is_raw']) {
150
+			return false;
151
+		}
152
+		return true;
153
+	}
154 154
 }
Please login to merge, or discard this patch.
plugin/Modules/Console.php 1 patch
Indentation   +429 added lines, -429 removed lines patch added patch discarded remove patch
@@ -9,433 +9,433 @@
 block discarded – undo
9 9
 
10 10
 class Console
11 11
 {
12
-    const DEBUG = 0;      // Detailed debug information
13
-    const INFO = 1;       // Interesting events
14
-    const NOTICE = 2;     // Normal but significant events
15
-    const WARNING = 4;    // Exceptional occurrences that are not errors
16
-    const ERROR = 8;      // Runtime errors that do not require immediate action
17
-    const CRITICAL = 16;  // Critical conditions
18
-    const ALERT = 32;     // Action must be taken immediately
19
-    const EMERGENCY = 64; // System is unusable
20
-
21
-    protected $file;
22
-    protected $log;
23
-    protected $logOnceKey = 'glsr_log_once';
24
-
25
-    public function __construct()
26
-    {
27
-        $this->file = glsr()->path('console.log');
28
-        $this->log = file_exists($this->file)
29
-            ? file_get_contents($this->file)
30
-            : '';
31
-        $this->reset();
32
-    }
33
-
34
-    /**
35
-     * @return string
36
-     */
37
-    public function __toString()
38
-    {
39
-        return $this->get();
40
-    }
41
-
42
-    /**
43
-     * Action must be taken immediately
44
-     * Example: Entire website down, database unavailable, etc. This should trigger the SMS alerts and wake you up.
45
-     * @param mixed $message
46
-     * @param array $context
47
-     * @return static
48
-     */
49
-    public function alert($message, array $context = [])
50
-    {
51
-        return $this->log(static::ALERT, $message, $context);
52
-    }
53
-
54
-    /**
55
-     * @return void
56
-     */
57
-    public function clear()
58
-    {
59
-        $this->log = '';
60
-        file_put_contents($this->file, $this->log);
61
-    }
62
-
63
-    /**
64
-     * Critical conditions
65
-     * Example: Application component unavailable, unexpected exception.
66
-     * @param mixed $message
67
-     * @param array $context
68
-     * @return static
69
-     */
70
-    public function critical($message, array $context = [])
71
-    {
72
-        return $this->log(static::CRITICAL, $message, $context);
73
-    }
74
-
75
-    /**
76
-     * Detailed debug information.
77
-     * @param mixed $message
78
-     * @param array $context
79
-     * @return static
80
-     */
81
-    public function debug($message, array $context = [])
82
-    {
83
-        return $this->log(static::DEBUG, $message, $context);
84
-    }
85
-
86
-    /**
87
-     * System is unusable.
88
-     * @param mixed $message
89
-     * @param array $context
90
-     * @return static
91
-     */
92
-    public function emergency($message, array $context = [])
93
-    {
94
-        return $this->log(static::EMERGENCY, $message, $context);
95
-    }
96
-
97
-    /**
98
-     * Runtime errors that do not require immediate action but should typically be logged and monitored.
99
-     * @param mixed $message
100
-     * @param array $context
101
-     * @return static
102
-     */
103
-    public function error($message, array $context = [])
104
-    {
105
-        return $this->log(static::ERROR, $message, $context);
106
-    }
107
-
108
-    /**
109
-     * @return string
110
-     */
111
-    public function get()
112
-    {
113
-        return empty($this->log)
114
-            ? __('Console is empty', 'site-reviews')
115
-            : $this->log;
116
-    }
117
-
118
-    /**
119
-     * @return int
120
-     */
121
-    public function getLevel()
122
-    {
123
-        return intval(apply_filters('site-reviews/console/level', static::INFO));
124
-    }
125
-
126
-    /**
127
-     * @return array
128
-     */
129
-    public function getLevels()
130
-    {
131
-        $constants = (new ReflectionClass(__CLASS__))->getConstants();
132
-        return array_map('strtolower', array_flip($constants));
133
-    }
134
-
135
-    /**
136
-     * @return string
137
-     */
138
-    public function humanLevel()
139
-    {
140
-        $level = $this->getLevel();
141
-        return sprintf('%s (%d)', strtoupper(glsr_get($this->getLevels(), $level, 'unknown')), $level);
142
-    }
143
-
144
-    /**
145
-     * @param string|null $valueIfEmpty
146
-     * @return string
147
-     */
148
-    public function humanSize($valueIfEmpty = null)
149
-    {
150
-        $bytes = $this->size();
151
-        if (empty($bytes) && is_string($valueIfEmpty)) {
152
-            return $valueIfEmpty;
153
-        }
154
-        $exponent = floor(log(max($bytes, 1), 1024));
155
-        return round($bytes / pow(1024, $exponent), 2).' '.['bytes', 'KB', 'MB', 'GB'][$exponent];
156
-    }
157
-
158
-    /**
159
-     * Interesting events
160
-     * Example: User logs in, SQL logs.
161
-     * @param mixed $message
162
-     * @param array $context
163
-     * @return static
164
-     */
165
-    public function info($message, array $context = [])
166
-    {
167
-        return $this->log(static::INFO, $message, $context);
168
-    }
169
-
170
-    /**
171
-     * @param int $level
172
-     * @param mixed $message
173
-     * @param array $context
174
-     * @param string $backtraceLine
175
-     * @return static
176
-     */
177
-    public function log($level, $message, $context = [], $backtraceLine = '')
178
-    {
179
-        if (empty($backtraceLine)) {
180
-            $backtraceLine = $this->getBacktraceLine();
181
-        }
182
-        if ($this->canLogEntry($level, $backtraceLine)) {
183
-            $levelName = glsr_get($this->getLevels(), $level);
184
-            $context = glsr(Helper::class)->consolidateArray($context);
185
-            $backtraceLine = $this->normalizeBacktraceLine($backtraceLine);
186
-            $message = $this->interpolate($message, $context);
187
-            $entry = $this->buildLogEntry($levelName, $message, $backtraceLine);
188
-            file_put_contents($this->file, $entry.PHP_EOL, FILE_APPEND | LOCK_EX);
189
-            apply_filters('console', $message, $levelName, $backtraceLine); // Show in Blackbar plugin if installed
190
-            $this->reset();
191
-        }
192
-        return $this;
193
-    }
194
-
195
-    /**
196
-     * @return void
197
-     */
198
-    public function logOnce()
199
-    {
200
-        $once = glsr(Helper::class)->consolidateArray(glsr()->{$this->logOnceKey});
201
-        $levels = $this->getLevels();
202
-        foreach ($once as $entry) {
203
-            $levelName = glsr_get($entry, 'level');
204
-            if (!in_array($levelName, $levels)) {
205
-                continue;
206
-            }
207
-            $level = glsr_get(array_flip($levels), $levelName);
208
-            $message = glsr_get($entry, 'message');
209
-            $backtraceLine = glsr_get($entry, 'backtrace');
210
-            $this->log($level, $message, [], $backtraceLine);
211
-        }
212
-        glsr()->{$this->logOnceKey} = [];
213
-    }
214
-
215
-    /**
216
-     * Normal but significant events.
217
-     * @param mixed $message
218
-     * @param array $context
219
-     * @return static
220
-     */
221
-    public function notice($message, array $context = [])
222
-    {
223
-        return $this->log(static::NOTICE, $message, $context);
224
-    }
225
-
226
-    /**
227
-     * @param string $levelName
228
-     * @param string $handle
229
-     * @param mixed $data
230
-     * @return void
231
-     */
232
-    public function once($levelName, $handle, $data)
233
-    {
234
-        $once = glsr(Helper::class)->consolidateArray(glsr()->{$this->logOnceKey});
235
-        $filtered = array_filter($once, function ($entry) use ($levelName, $handle) {
236
-            return glsr_get($entry, 'level') == $levelName
237
-                && glsr_get($entry, 'handle') == $handle;
238
-        });
239
-        if (!empty($filtered)) {
240
-            return;
241
-        }
242
-        $once[] = [
243
-            'backtrace' => $this->getBacktraceLineFromData($data),
244
-            'handle' => $handle,
245
-            'level' => $levelName,
246
-            'message' => '[RECURRING] '.$this->getMessageFromData($data),
247
-        ];
248
-        glsr()->{$this->logOnceKey} = $once;
249
-    }
250
-
251
-    /**
252
-     * @return int
253
-     */
254
-    public function size()
255
-    {
256
-        return file_exists($this->file)
257
-            ? filesize($this->file)
258
-            : 0;
259
-    }
260
-
261
-    /**
262
-     * Exceptional occurrences that are not errors
263
-     * Example: Use of deprecated APIs, poor use of an API, undesirable things that are not necessarily wrong.
264
-     * @param mixed $message
265
-     * @param array $context
266
-     * @return static
267
-     */
268
-    public function warning($message, array $context = [])
269
-    {
270
-        return $this->log(static::WARNING, $message, $context);
271
-    }
272
-
273
-    /**
274
-     * @param array $backtrace
275
-     * @param int $index
276
-     * @return string
277
-     */
278
-    protected function buildBacktraceLine($backtrace, $index)
279
-    {
280
-        return sprintf('%s:%s',
281
-            glsr_get($backtrace, $index.'.file'), // realpath
282
-            glsr_get($backtrace, $index.'.line')
283
-        );
284
-    }
285
-
286
-    /**
287
-     * @param string $levelName
288
-     * @param mixed $message
289
-     * @param string $backtraceLine
290
-     * @return string
291
-     */
292
-    protected function buildLogEntry($levelName, $message, $backtraceLine = '')
293
-    {
294
-        return sprintf('[%s] %s [%s] %s',
295
-            current_time('mysql'),
296
-            strtoupper($levelName),
297
-            $backtraceLine,
298
-            $message
299
-        );
300
-    }
301
-
302
-    /**
303
-     * @param int $level
304
-     * @return bool
305
-     */
306
-    protected function canLogEntry($level, $backtraceLine)
307
-    {
308
-        $levelExists = array_key_exists($level, $this->getLevels());
309
-        if (false === strpos($backtraceLine, glsr()->path())) {
310
-            return $levelExists; // ignore level restriction if triggered outside of the plugin
311
-        }
312
-        return $levelExists && $level >= $this->getLevel();
313
-    }
314
-
315
-    /**
316
-     * @return void|string
317
-     */
318
-    protected function getBacktraceLine()
319
-    {
320
-        $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 6);
321
-        $search = array_search('log', glsr_array_column($backtrace, 'function'));
322
-        if (false !== $search) {
323
-            $index = '{closure}' == glsr_get($backtrace, ($search + 2).'.function')
324
-                ? $search + 4
325
-                : $search + 1;
326
-            return $this->buildBacktraceLine($backtrace, $index);
327
-        }
328
-        return 'Unknown';
329
-    }
330
-
331
-    /**
332
-     * @param mixed $data
333
-     * @return string
334
-     */
335
-    protected function getBacktraceLineFromData($data)
336
-    {
337
-        $backtrace = $data instanceof Throwable
338
-            ? $data->getTrace()
339
-            : debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1);
340
-        return $this->buildBacktraceLine($backtrace, 0);
341
-    }
342
-
343
-    /**
344
-     * @param mixed $data
345
-     * @return string
346
-     */
347
-    protected function getMessageFromData($data)
348
-    {
349
-        return $data instanceof Throwable
350
-            ? $this->normalizeThrowableMessage($data->getMessage())
351
-            : print_r($data, 1);
352
-    }
353
-
354
-    /**
355
-     * Interpolates context values into the message placeholders.
356
-     * @param mixed $message
357
-     * @param array $context
358
-     * @return string
359
-     */
360
-    protected function interpolate($message, $context = [])
361
-    {
362
-        if ($this->isObjectOrArray($message) || !is_array($context)) {
363
-            return print_r($message, true);
364
-        }
365
-        $replace = [];
366
-        foreach ($context as $key => $value) {
367
-            $replace['{'.$key.'}'] = $this->normalizeValue($value);
368
-        }
369
-        return strtr($message, $replace);
370
-    }
371
-
372
-    /**
373
-     * @param mixed $value
374
-     * @return bool
375
-     */
376
-    protected function isObjectOrArray($value)
377
-    {
378
-        return is_object($value) || is_array($value);
379
-    }
380
-
381
-    /**
382
-     * @param string $backtraceLine
383
-     * @return string
384
-     */
385
-    protected function normalizeBacktraceLine($backtraceLine)
386
-    {
387
-        $search = [
388
-            glsr()->path('plugin/'),
389
-            glsr()->path('plugin/', false),
390
-            trailingslashit(glsr()->path()),
391
-            trailingslashit(glsr()->path('', false)),
392
-            WP_CONTENT_DIR,
393
-            ABSPATH,
394
-        ];
395
-        return str_replace(array_unique($search), '', $backtraceLine);
396
-    }
397
-
398
-    /**
399
-     * @param string $message
400
-     * @return string
401
-     */
402
-    protected function normalizeThrowableMessage($message)
403
-    {
404
-        $calledIn = strpos($message, ', called in');
405
-        return false !== $calledIn
406
-            ? substr($message, 0, $calledIn)
407
-            : $message;
408
-    }
409
-
410
-    /**
411
-     * @param mixed $value
412
-     * @return string
413
-     */
414
-    protected function normalizeValue($value)
415
-    {
416
-        if ($value instanceof DateTime) {
417
-            $value = $value->format('Y-m-d H:i:s');
418
-        } elseif ($this->isObjectOrArray($value)) {
419
-            $value = json_encode($value);
420
-        }
421
-        return (string) $value;
422
-    }
423
-
424
-    /**
425
-     * @return void
426
-     */
427
-    protected function reset()
428
-    {
429
-        if ($this->size() <= pow(1024, 2) / 8) {
430
-            return;
431
-        }
432
-        $this->clear();
433
-        file_put_contents(
434
-            $this->file,
435
-            $this->buildLogEntry(
436
-                static::NOTICE,
437
-                __('Console was automatically cleared (128 KB maximum size)', 'site-reviews')
438
-            )
439
-        );
440
-    }
12
+	const DEBUG = 0;      // Detailed debug information
13
+	const INFO = 1;       // Interesting events
14
+	const NOTICE = 2;     // Normal but significant events
15
+	const WARNING = 4;    // Exceptional occurrences that are not errors
16
+	const ERROR = 8;      // Runtime errors that do not require immediate action
17
+	const CRITICAL = 16;  // Critical conditions
18
+	const ALERT = 32;     // Action must be taken immediately
19
+	const EMERGENCY = 64; // System is unusable
20
+
21
+	protected $file;
22
+	protected $log;
23
+	protected $logOnceKey = 'glsr_log_once';
24
+
25
+	public function __construct()
26
+	{
27
+		$this->file = glsr()->path('console.log');
28
+		$this->log = file_exists($this->file)
29
+			? file_get_contents($this->file)
30
+			: '';
31
+		$this->reset();
32
+	}
33
+
34
+	/**
35
+	 * @return string
36
+	 */
37
+	public function __toString()
38
+	{
39
+		return $this->get();
40
+	}
41
+
42
+	/**
43
+	 * Action must be taken immediately
44
+	 * Example: Entire website down, database unavailable, etc. This should trigger the SMS alerts and wake you up.
45
+	 * @param mixed $message
46
+	 * @param array $context
47
+	 * @return static
48
+	 */
49
+	public function alert($message, array $context = [])
50
+	{
51
+		return $this->log(static::ALERT, $message, $context);
52
+	}
53
+
54
+	/**
55
+	 * @return void
56
+	 */
57
+	public function clear()
58
+	{
59
+		$this->log = '';
60
+		file_put_contents($this->file, $this->log);
61
+	}
62
+
63
+	/**
64
+	 * Critical conditions
65
+	 * Example: Application component unavailable, unexpected exception.
66
+	 * @param mixed $message
67
+	 * @param array $context
68
+	 * @return static
69
+	 */
70
+	public function critical($message, array $context = [])
71
+	{
72
+		return $this->log(static::CRITICAL, $message, $context);
73
+	}
74
+
75
+	/**
76
+	 * Detailed debug information.
77
+	 * @param mixed $message
78
+	 * @param array $context
79
+	 * @return static
80
+	 */
81
+	public function debug($message, array $context = [])
82
+	{
83
+		return $this->log(static::DEBUG, $message, $context);
84
+	}
85
+
86
+	/**
87
+	 * System is unusable.
88
+	 * @param mixed $message
89
+	 * @param array $context
90
+	 * @return static
91
+	 */
92
+	public function emergency($message, array $context = [])
93
+	{
94
+		return $this->log(static::EMERGENCY, $message, $context);
95
+	}
96
+
97
+	/**
98
+	 * Runtime errors that do not require immediate action but should typically be logged and monitored.
99
+	 * @param mixed $message
100
+	 * @param array $context
101
+	 * @return static
102
+	 */
103
+	public function error($message, array $context = [])
104
+	{
105
+		return $this->log(static::ERROR, $message, $context);
106
+	}
107
+
108
+	/**
109
+	 * @return string
110
+	 */
111
+	public function get()
112
+	{
113
+		return empty($this->log)
114
+			? __('Console is empty', 'site-reviews')
115
+			: $this->log;
116
+	}
117
+
118
+	/**
119
+	 * @return int
120
+	 */
121
+	public function getLevel()
122
+	{
123
+		return intval(apply_filters('site-reviews/console/level', static::INFO));
124
+	}
125
+
126
+	/**
127
+	 * @return array
128
+	 */
129
+	public function getLevels()
130
+	{
131
+		$constants = (new ReflectionClass(__CLASS__))->getConstants();
132
+		return array_map('strtolower', array_flip($constants));
133
+	}
134
+
135
+	/**
136
+	 * @return string
137
+	 */
138
+	public function humanLevel()
139
+	{
140
+		$level = $this->getLevel();
141
+		return sprintf('%s (%d)', strtoupper(glsr_get($this->getLevels(), $level, 'unknown')), $level);
142
+	}
143
+
144
+	/**
145
+	 * @param string|null $valueIfEmpty
146
+	 * @return string
147
+	 */
148
+	public function humanSize($valueIfEmpty = null)
149
+	{
150
+		$bytes = $this->size();
151
+		if (empty($bytes) && is_string($valueIfEmpty)) {
152
+			return $valueIfEmpty;
153
+		}
154
+		$exponent = floor(log(max($bytes, 1), 1024));
155
+		return round($bytes / pow(1024, $exponent), 2).' '.['bytes', 'KB', 'MB', 'GB'][$exponent];
156
+	}
157
+
158
+	/**
159
+	 * Interesting events
160
+	 * Example: User logs in, SQL logs.
161
+	 * @param mixed $message
162
+	 * @param array $context
163
+	 * @return static
164
+	 */
165
+	public function info($message, array $context = [])
166
+	{
167
+		return $this->log(static::INFO, $message, $context);
168
+	}
169
+
170
+	/**
171
+	 * @param int $level
172
+	 * @param mixed $message
173
+	 * @param array $context
174
+	 * @param string $backtraceLine
175
+	 * @return static
176
+	 */
177
+	public function log($level, $message, $context = [], $backtraceLine = '')
178
+	{
179
+		if (empty($backtraceLine)) {
180
+			$backtraceLine = $this->getBacktraceLine();
181
+		}
182
+		if ($this->canLogEntry($level, $backtraceLine)) {
183
+			$levelName = glsr_get($this->getLevels(), $level);
184
+			$context = glsr(Helper::class)->consolidateArray($context);
185
+			$backtraceLine = $this->normalizeBacktraceLine($backtraceLine);
186
+			$message = $this->interpolate($message, $context);
187
+			$entry = $this->buildLogEntry($levelName, $message, $backtraceLine);
188
+			file_put_contents($this->file, $entry.PHP_EOL, FILE_APPEND | LOCK_EX);
189
+			apply_filters('console', $message, $levelName, $backtraceLine); // Show in Blackbar plugin if installed
190
+			$this->reset();
191
+		}
192
+		return $this;
193
+	}
194
+
195
+	/**
196
+	 * @return void
197
+	 */
198
+	public function logOnce()
199
+	{
200
+		$once = glsr(Helper::class)->consolidateArray(glsr()->{$this->logOnceKey});
201
+		$levels = $this->getLevels();
202
+		foreach ($once as $entry) {
203
+			$levelName = glsr_get($entry, 'level');
204
+			if (!in_array($levelName, $levels)) {
205
+				continue;
206
+			}
207
+			$level = glsr_get(array_flip($levels), $levelName);
208
+			$message = glsr_get($entry, 'message');
209
+			$backtraceLine = glsr_get($entry, 'backtrace');
210
+			$this->log($level, $message, [], $backtraceLine);
211
+		}
212
+		glsr()->{$this->logOnceKey} = [];
213
+	}
214
+
215
+	/**
216
+	 * Normal but significant events.
217
+	 * @param mixed $message
218
+	 * @param array $context
219
+	 * @return static
220
+	 */
221
+	public function notice($message, array $context = [])
222
+	{
223
+		return $this->log(static::NOTICE, $message, $context);
224
+	}
225
+
226
+	/**
227
+	 * @param string $levelName
228
+	 * @param string $handle
229
+	 * @param mixed $data
230
+	 * @return void
231
+	 */
232
+	public function once($levelName, $handle, $data)
233
+	{
234
+		$once = glsr(Helper::class)->consolidateArray(glsr()->{$this->logOnceKey});
235
+		$filtered = array_filter($once, function ($entry) use ($levelName, $handle) {
236
+			return glsr_get($entry, 'level') == $levelName
237
+				&& glsr_get($entry, 'handle') == $handle;
238
+		});
239
+		if (!empty($filtered)) {
240
+			return;
241
+		}
242
+		$once[] = [
243
+			'backtrace' => $this->getBacktraceLineFromData($data),
244
+			'handle' => $handle,
245
+			'level' => $levelName,
246
+			'message' => '[RECURRING] '.$this->getMessageFromData($data),
247
+		];
248
+		glsr()->{$this->logOnceKey} = $once;
249
+	}
250
+
251
+	/**
252
+	 * @return int
253
+	 */
254
+	public function size()
255
+	{
256
+		return file_exists($this->file)
257
+			? filesize($this->file)
258
+			: 0;
259
+	}
260
+
261
+	/**
262
+	 * Exceptional occurrences that are not errors
263
+	 * Example: Use of deprecated APIs, poor use of an API, undesirable things that are not necessarily wrong.
264
+	 * @param mixed $message
265
+	 * @param array $context
266
+	 * @return static
267
+	 */
268
+	public function warning($message, array $context = [])
269
+	{
270
+		return $this->log(static::WARNING, $message, $context);
271
+	}
272
+
273
+	/**
274
+	 * @param array $backtrace
275
+	 * @param int $index
276
+	 * @return string
277
+	 */
278
+	protected function buildBacktraceLine($backtrace, $index)
279
+	{
280
+		return sprintf('%s:%s',
281
+			glsr_get($backtrace, $index.'.file'), // realpath
282
+			glsr_get($backtrace, $index.'.line')
283
+		);
284
+	}
285
+
286
+	/**
287
+	 * @param string $levelName
288
+	 * @param mixed $message
289
+	 * @param string $backtraceLine
290
+	 * @return string
291
+	 */
292
+	protected function buildLogEntry($levelName, $message, $backtraceLine = '')
293
+	{
294
+		return sprintf('[%s] %s [%s] %s',
295
+			current_time('mysql'),
296
+			strtoupper($levelName),
297
+			$backtraceLine,
298
+			$message
299
+		);
300
+	}
301
+
302
+	/**
303
+	 * @param int $level
304
+	 * @return bool
305
+	 */
306
+	protected function canLogEntry($level, $backtraceLine)
307
+	{
308
+		$levelExists = array_key_exists($level, $this->getLevels());
309
+		if (false === strpos($backtraceLine, glsr()->path())) {
310
+			return $levelExists; // ignore level restriction if triggered outside of the plugin
311
+		}
312
+		return $levelExists && $level >= $this->getLevel();
313
+	}
314
+
315
+	/**
316
+	 * @return void|string
317
+	 */
318
+	protected function getBacktraceLine()
319
+	{
320
+		$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 6);
321
+		$search = array_search('log', glsr_array_column($backtrace, 'function'));
322
+		if (false !== $search) {
323
+			$index = '{closure}' == glsr_get($backtrace, ($search + 2).'.function')
324
+				? $search + 4
325
+				: $search + 1;
326
+			return $this->buildBacktraceLine($backtrace, $index);
327
+		}
328
+		return 'Unknown';
329
+	}
330
+
331
+	/**
332
+	 * @param mixed $data
333
+	 * @return string
334
+	 */
335
+	protected function getBacktraceLineFromData($data)
336
+	{
337
+		$backtrace = $data instanceof Throwable
338
+			? $data->getTrace()
339
+			: debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 1);
340
+		return $this->buildBacktraceLine($backtrace, 0);
341
+	}
342
+
343
+	/**
344
+	 * @param mixed $data
345
+	 * @return string
346
+	 */
347
+	protected function getMessageFromData($data)
348
+	{
349
+		return $data instanceof Throwable
350
+			? $this->normalizeThrowableMessage($data->getMessage())
351
+			: print_r($data, 1);
352
+	}
353
+
354
+	/**
355
+	 * Interpolates context values into the message placeholders.
356
+	 * @param mixed $message
357
+	 * @param array $context
358
+	 * @return string
359
+	 */
360
+	protected function interpolate($message, $context = [])
361
+	{
362
+		if ($this->isObjectOrArray($message) || !is_array($context)) {
363
+			return print_r($message, true);
364
+		}
365
+		$replace = [];
366
+		foreach ($context as $key => $value) {
367
+			$replace['{'.$key.'}'] = $this->normalizeValue($value);
368
+		}
369
+		return strtr($message, $replace);
370
+	}
371
+
372
+	/**
373
+	 * @param mixed $value
374
+	 * @return bool
375
+	 */
376
+	protected function isObjectOrArray($value)
377
+	{
378
+		return is_object($value) || is_array($value);
379
+	}
380
+
381
+	/**
382
+	 * @param string $backtraceLine
383
+	 * @return string
384
+	 */
385
+	protected function normalizeBacktraceLine($backtraceLine)
386
+	{
387
+		$search = [
388
+			glsr()->path('plugin/'),
389
+			glsr()->path('plugin/', false),
390
+			trailingslashit(glsr()->path()),
391
+			trailingslashit(glsr()->path('', false)),
392
+			WP_CONTENT_DIR,
393
+			ABSPATH,
394
+		];
395
+		return str_replace(array_unique($search), '', $backtraceLine);
396
+	}
397
+
398
+	/**
399
+	 * @param string $message
400
+	 * @return string
401
+	 */
402
+	protected function normalizeThrowableMessage($message)
403
+	{
404
+		$calledIn = strpos($message, ', called in');
405
+		return false !== $calledIn
406
+			? substr($message, 0, $calledIn)
407
+			: $message;
408
+	}
409
+
410
+	/**
411
+	 * @param mixed $value
412
+	 * @return string
413
+	 */
414
+	protected function normalizeValue($value)
415
+	{
416
+		if ($value instanceof DateTime) {
417
+			$value = $value->format('Y-m-d H:i:s');
418
+		} elseif ($this->isObjectOrArray($value)) {
419
+			$value = json_encode($value);
420
+		}
421
+		return (string) $value;
422
+	}
423
+
424
+	/**
425
+	 * @return void
426
+	 */
427
+	protected function reset()
428
+	{
429
+		if ($this->size() <= pow(1024, 2) / 8) {
430
+			return;
431
+		}
432
+		$this->clear();
433
+		file_put_contents(
434
+			$this->file,
435
+			$this->buildLogEntry(
436
+				static::NOTICE,
437
+				__('Console was automatically cleared (128 KB maximum size)', 'site-reviews')
438
+			)
439
+		);
440
+	}
441 441
 }
Please login to merge, or discard this patch.
plugin/Modules/Schema/Thing.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -19,12 +19,12 @@
 block discarded – undo
19 19
  */
20 20
 class Thing extends BaseType
21 21
 {
22
-    /**
23
-     * @var array
24
-     * @see http://schema.org/{property_name}
25
-     */
26
-    public $allowed = [
27
-        'additionalType', 'alternateName', 'description', 'disambiguatingDescription', 'identifier',
28
-        'image', 'mainEntityOfPage', 'name', 'potentialAction', 'sameAs', 'url',
29
-    ];
22
+	/**
23
+	 * @var array
24
+	 * @see http://schema.org/{property_name}
25
+	 */
26
+	public $allowed = [
27
+		'additionalType', 'alternateName', 'description', 'disambiguatingDescription', 'identifier',
28
+		'image', 'mainEntityOfPage', 'name', 'potentialAction', 'sameAs', 'url',
29
+	];
30 30
 }
Please login to merge, or discard this patch.
plugin/Modules/Schema/UnknownType.php 1 patch
Indentation   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -4,19 +4,19 @@
 block discarded – undo
4 4
 
5 5
 class UnknownType extends BaseType
6 6
 {
7
-    /**
8
-     * @var array
9
-     * @see http://schema.org/{property_name}
10
-     */
11
-    public $allowed = [
12
-        'aggregateRating',
13
-    ];
7
+	/**
8
+	 * @var array
9
+	 * @see http://schema.org/{property_name}
10
+	 */
11
+	public $allowed = [
12
+		'aggregateRating',
13
+	];
14 14
 
15
-    /**
16
-     * @var array
17
-     * @see http://schema.org/{property_name}
18
-     */
19
-    public $parents = [
20
-        'Thing',
21
-    ];
15
+	/**
16
+	 * @var array
17
+	 * @see http://schema.org/{property_name}
18
+	 */
19
+	public $parents = [
20
+		'Thing',
21
+	];
22 22
 }
Please login to merge, or discard this patch.