Passed
Push — master ( ae1954...aab291 )
by Paul
08:17 queued 04:15
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/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.
plugin/Modules/Schema/Type.php 1 patch
Indentation   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -4,22 +4,22 @@
 block discarded – undo
4 4
 
5 5
 interface Type
6 6
 {
7
-    /**
8
-     * Return an array representation of the type. If the array contains child types,
9
-     * their context needs to be stripped if it's the same.
10
-     * @return array
11
-     */
12
-    public function toArray();
7
+	/**
8
+	 * Return an array representation of the type. If the array contains child types,
9
+	 * their context needs to be stripped if it's the same.
10
+	 * @return array
11
+	 */
12
+	public function toArray();
13 13
 
14
-    /**
15
-     * Create a json-ld script tag for this type, built from the data that `toArray` returns.
16
-     * @return string
17
-     */
18
-    public function toScript();
14
+	/**
15
+	 * Create a json-ld script tag for this type, built from the data that `toArray` returns.
16
+	 * @return string
17
+	 */
18
+	public function toScript();
19 19
 
20
-    /**
21
-     * Create a json-ld script tag for this type, built from the data that `toArray` returns.
22
-     * @return string
23
-     */
24
-    public function __toString();
20
+	/**
21
+	 * Create a json-ld script tag for this type, built from the data that `toArray` returns.
22
+	 * @return string
23
+	 */
24
+	public function __toString();
25 25
 }
Please login to merge, or discard this patch.
plugin/Modules/Schema/Organization.php 1 patch
Indentation   +162 added lines, -162 removed lines patch added patch discarded remove patch
@@ -57,166 +57,166 @@
 block discarded – undo
57 57
  */
58 58
 class Organization extends BaseType
59 59
 {
60
-    /**
61
-     * The schema.org Actions mechanism benefited from extensive discussions across the Web
62
-     * standards community around W3C, in particular from the [Hydra project](http://purl.org/hydra/)
63
-     * community group.
64
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_ActionCollabClass
65
-     */
66
-    const ActionCollabClass = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_ActionCollabClass';
67
-
68
-    /**
69
-     * This element is based on the work of the Automotive Ontology Working Group,
70
-     * see [www.automotive-ontology.org](http://www.automotive-ontology.org) for details.
71
-     * Many class and property definitions are inspired by or based on abstracts from Wikipedia,
72
-     * the free encyclopedia.
73
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#Automotive_Ontology_Working_Group
74
-     */
75
-    const AutomotiveOntologyWGClass = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#Automotive_Ontology_Working_Group';
76
-
77
-    /**
78
-     * The W3C [Schema Bib Extend](http://www.w3.org/community/schemabibex/) (BibEx) group led the
79
-     * work to improve schema.org for bibliographic information, including terms for periodicals,
80
-     * articles and multi-volume works. The design was inspired in places (e.g. [[pageStart]],
81
-     * [[pageEnd]], [[pagination]]) by the [Bibliographic Ontology](http://bibliontology.com/),
82
-     * 'bibo'.
83
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_bibex
84
-     */
85
-    const BibExTerm = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_bibex';
86
-
87
-    /**
88
-     * This class is based upon W3C DCAT work, and benefits from collaboration around the DCAT, ADMS
89
-     * and VoID vocabularies. See http://www.w3.org/wiki/WebSchemas/Datasets for full details and
90
-     * mappings.
91
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_DatasetClass
92
-     */
93
-    const DatasetClass = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_DatasetClass';
94
-
95
-    /**
96
-     * This element is based on the work of the Financial Industry Business Ontology project (see
97
-     * [http://www.fibo.org/schema](http://www.fibo.org/schema) for details), in support of the W3C
98
-     * Financial Industry Business Ontology Community Group
99
-     * ([http://www.fibo.org/community](http://www.fibo.org/community)). Many class and property
100
-     * definitions are inspired by or based on [http://www.fibo.org](http://www.fibo.org).
101
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#FIBO
102
-     */
103
-    const FIBO = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#FIBO';
104
-
105
-    /**
106
-     * The implementation and use of Legal Entity Identifier (LEI) is supported by Global Legal
107
-     * Entity Identifier Foundation [https://www.gleif.org](https://www.gleif.org).
108
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#GLEIF
109
-     */
110
-    const GLEIF = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#GLEIF';
111
-
112
-    /**
113
-     * This class is derived from the GoodRelations Vocabulary for E-Commerce, created by Martin
114
-     * Hepp. GoodRelations is a data model for sharing e-commerce data on the Web that can be
115
-     * expressed in a variety of syntaxes, including RDFa and HTML5 Microdata. More information
116
-     * about GoodRelations can be found at
117
-     * [http://purl.org/goodrelations/](http://purl.org/goodrelations/).
118
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_GoodRelationsClass
119
-     */
120
-    const GoodRelationsClass = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_GoodRelationsClass';
121
-
122
-    /**
123
-     * This term [uses](http://blog.schema.org/2012/11/good-relations-and-schemaorg.html)
124
-     * terminology from the GoodRelations Vocabulary for E-Commerce, created by Martin Hepp.
125
-     * GoodRelations is a data model for sharing e-commerce data on the Web. More information about
126
-     * GoodRelations can be found at
127
-     * [http://purl.org/goodrelations/](http://purl.org/goodrelations/).
128
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_GoodRelationsTerms
129
-     */
130
-    const GoodRelationsTerms = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_GoodRelationsTerms';
131
-
132
-    /**
133
-     * This element is based on work by the Web Applications for the Future Internet Lab, Institute
134
-     * of Informatics and Telematics, Pisa, Italy.
135
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#IIT-CNR.it
136
-     */
137
-    const IITCNRit = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#IIT-CNR.it';
138
-
139
-    /**
140
-     * This class is based on the work of the LRMI project, see lrmi.net for details.
141
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_LRMIClass
142
-     */
143
-    const LRMIClass = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_LRMIClass';
144
-
145
-    /**
146
-     * This vocabulary was improved through collaboration with the MusicBrainz project
147
-     *     ([www.musicbrainz.org](http://www.musicbrainz.org)), and is partially inspired by the
148
-     * MusicBrainz and
149
-     *     [Music Ontology](http://musicontology.com/docs/getting-started.html) schemas.
150
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#MBZ
151
-     */
152
-    const MBZ = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#MBZ';
153
-
154
-    /**
155
-     * This element is based on the STI Accommodation Ontology, see <a
156
-     * href="http://ontologies.sti-innsbruck.at/acco/ns.html">http://ontologies.sti-innsbruck.at/acco/ns.html</a>
157
-     * for details.
158
-     *     Many class and property definitions are inspired by or based on abstracts from Wikipedia,
159
-     * the free encyclopedia.
160
-     * @see https://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#STI_Accommodation_Ontology
161
-     */
162
-    const STI_Accommodation_Ontology = 'https://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#STI_Accommodation_Ontology';
163
-
164
-    /**
165
-     * The Question/Answer types were [based
166
-     * on](https://www.w3.org/wiki/WebSchemas/QASchemaResearch) the Stack Overflow API.
167
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_QAStackExchange
168
-     */
169
-    const Stack_Exchange = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_QAStackExchange';
170
-
171
-    /**
172
-     * This term and associated definitions draws upon the work of [The Trust
173
-     * Project](http://thetrustproject.org/).
174
-     * @see https://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#TP-draws
175
-     */
176
-    const The_Trust_Project = 'https://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#TP-draws';
177
-
178
-    /**
179
-     * This element is based on the work of the [Tourism Structured Web Data Community
180
-     * Group](https://www.w3.org/community/tourismdata).
181
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#Tourism
182
-     */
183
-    const Tourism = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#Tourism';
184
-
185
-    /**
186
-     * This class contains information contributed by
187
-     * [http://wikidoc.org>WikiDoc](http://wikidoc.org>WikiDoc).
188
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_WikiDoc
189
-     */
190
-    const WikiDoc = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_WikiDoc';
191
-
192
-    /**
193
-     * This class contains derivatives of IPTC rNews properties. rNews is a data model of publishing
194
-     * metadata with serializations currently available for RDFa as well as HTML5 Microdata. More
195
-     * information about the IPTC and rNews can be found at [rnews.org](http://rnews.org).
196
-     * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_rNews
197
-     */
198
-    const rNews = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_rNews';
199
-
200
-    /**
201
-     * @var array
202
-     * @see http://schema.org/{property_name}
203
-     */
204
-    public $allowed = [
205
-        'address', 'aggregateRating', 'areaServed', 'award', 'awards', 'brand', 'contactPoint',
206
-        'contactPoints', 'department', 'dissolutionDate', 'duns', 'email', 'employee', 'employees',
207
-        'event', 'events', 'faxNumber', 'founder', 'founders', 'foundingDate', 'foundingLocation',
208
-        'funder', 'globalLocationNumber', 'hasOfferCatalog', 'hasPOS', 'isicV4', 'legalName',
209
-        'leiCode', 'location', 'logo', 'makesOffer', 'member', 'memberOf', 'members', 'naics',
210
-        'numberOfEmployees', 'offeredBy', 'owns', 'parentOrganization', 'publishingPrinciples',
211
-        'review', 'reviews', 'seeks', 'serviceArea', 'sponsor', 'subOrganization', 'taxID',
212
-        'telephone', 'vatID',
213
-    ];
214
-
215
-    /**
216
-     * @var array
217
-     * @see http://schema.org/{property_name}
218
-     */
219
-    public $parents = [
220
-        'Thing',
221
-    ];
60
+	/**
61
+	 * The schema.org Actions mechanism benefited from extensive discussions across the Web
62
+	 * standards community around W3C, in particular from the [Hydra project](http://purl.org/hydra/)
63
+	 * community group.
64
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_ActionCollabClass
65
+	 */
66
+	const ActionCollabClass = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_ActionCollabClass';
67
+
68
+	/**
69
+	 * This element is based on the work of the Automotive Ontology Working Group,
70
+	 * see [www.automotive-ontology.org](http://www.automotive-ontology.org) for details.
71
+	 * Many class and property definitions are inspired by or based on abstracts from Wikipedia,
72
+	 * the free encyclopedia.
73
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#Automotive_Ontology_Working_Group
74
+	 */
75
+	const AutomotiveOntologyWGClass = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#Automotive_Ontology_Working_Group';
76
+
77
+	/**
78
+	 * The W3C [Schema Bib Extend](http://www.w3.org/community/schemabibex/) (BibEx) group led the
79
+	 * work to improve schema.org for bibliographic information, including terms for periodicals,
80
+	 * articles and multi-volume works. The design was inspired in places (e.g. [[pageStart]],
81
+	 * [[pageEnd]], [[pagination]]) by the [Bibliographic Ontology](http://bibliontology.com/),
82
+	 * 'bibo'.
83
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_bibex
84
+	 */
85
+	const BibExTerm = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_bibex';
86
+
87
+	/**
88
+	 * This class is based upon W3C DCAT work, and benefits from collaboration around the DCAT, ADMS
89
+	 * and VoID vocabularies. See http://www.w3.org/wiki/WebSchemas/Datasets for full details and
90
+	 * mappings.
91
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_DatasetClass
92
+	 */
93
+	const DatasetClass = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_DatasetClass';
94
+
95
+	/**
96
+	 * This element is based on the work of the Financial Industry Business Ontology project (see
97
+	 * [http://www.fibo.org/schema](http://www.fibo.org/schema) for details), in support of the W3C
98
+	 * Financial Industry Business Ontology Community Group
99
+	 * ([http://www.fibo.org/community](http://www.fibo.org/community)). Many class and property
100
+	 * definitions are inspired by or based on [http://www.fibo.org](http://www.fibo.org).
101
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#FIBO
102
+	 */
103
+	const FIBO = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#FIBO';
104
+
105
+	/**
106
+	 * The implementation and use of Legal Entity Identifier (LEI) is supported by Global Legal
107
+	 * Entity Identifier Foundation [https://www.gleif.org](https://www.gleif.org).
108
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#GLEIF
109
+	 */
110
+	const GLEIF = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#GLEIF';
111
+
112
+	/**
113
+	 * This class is derived from the GoodRelations Vocabulary for E-Commerce, created by Martin
114
+	 * Hepp. GoodRelations is a data model for sharing e-commerce data on the Web that can be
115
+	 * expressed in a variety of syntaxes, including RDFa and HTML5 Microdata. More information
116
+	 * about GoodRelations can be found at
117
+	 * [http://purl.org/goodrelations/](http://purl.org/goodrelations/).
118
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_GoodRelationsClass
119
+	 */
120
+	const GoodRelationsClass = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_GoodRelationsClass';
121
+
122
+	/**
123
+	 * This term [uses](http://blog.schema.org/2012/11/good-relations-and-schemaorg.html)
124
+	 * terminology from the GoodRelations Vocabulary for E-Commerce, created by Martin Hepp.
125
+	 * GoodRelations is a data model for sharing e-commerce data on the Web. More information about
126
+	 * GoodRelations can be found at
127
+	 * [http://purl.org/goodrelations/](http://purl.org/goodrelations/).
128
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_GoodRelationsTerms
129
+	 */
130
+	const GoodRelationsTerms = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_GoodRelationsTerms';
131
+
132
+	/**
133
+	 * This element is based on work by the Web Applications for the Future Internet Lab, Institute
134
+	 * of Informatics and Telematics, Pisa, Italy.
135
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#IIT-CNR.it
136
+	 */
137
+	const IITCNRit = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#IIT-CNR.it';
138
+
139
+	/**
140
+	 * This class is based on the work of the LRMI project, see lrmi.net for details.
141
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_LRMIClass
142
+	 */
143
+	const LRMIClass = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_LRMIClass';
144
+
145
+	/**
146
+	 * This vocabulary was improved through collaboration with the MusicBrainz project
147
+	 *     ([www.musicbrainz.org](http://www.musicbrainz.org)), and is partially inspired by the
148
+	 * MusicBrainz and
149
+	 *     [Music Ontology](http://musicontology.com/docs/getting-started.html) schemas.
150
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#MBZ
151
+	 */
152
+	const MBZ = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#MBZ';
153
+
154
+	/**
155
+	 * This element is based on the STI Accommodation Ontology, see <a
156
+	 * href="http://ontologies.sti-innsbruck.at/acco/ns.html">http://ontologies.sti-innsbruck.at/acco/ns.html</a>
157
+	 * for details.
158
+	 *     Many class and property definitions are inspired by or based on abstracts from Wikipedia,
159
+	 * the free encyclopedia.
160
+	 * @see https://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#STI_Accommodation_Ontology
161
+	 */
162
+	const STI_Accommodation_Ontology = 'https://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#STI_Accommodation_Ontology';
163
+
164
+	/**
165
+	 * The Question/Answer types were [based
166
+	 * on](https://www.w3.org/wiki/WebSchemas/QASchemaResearch) the Stack Overflow API.
167
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_QAStackExchange
168
+	 */
169
+	const Stack_Exchange = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_QAStackExchange';
170
+
171
+	/**
172
+	 * This term and associated definitions draws upon the work of [The Trust
173
+	 * Project](http://thetrustproject.org/).
174
+	 * @see https://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#TP-draws
175
+	 */
176
+	const The_Trust_Project = 'https://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#TP-draws';
177
+
178
+	/**
179
+	 * This element is based on the work of the [Tourism Structured Web Data Community
180
+	 * Group](https://www.w3.org/community/tourismdata).
181
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#Tourism
182
+	 */
183
+	const Tourism = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#Tourism';
184
+
185
+	/**
186
+	 * This class contains information contributed by
187
+	 * [http://wikidoc.org>WikiDoc](http://wikidoc.org>WikiDoc).
188
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_WikiDoc
189
+	 */
190
+	const WikiDoc = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_WikiDoc';
191
+
192
+	/**
193
+	 * This class contains derivatives of IPTC rNews properties. rNews is a data model of publishing
194
+	 * metadata with serializations currently available for RDFa as well as HTML5 Microdata. More
195
+	 * information about the IPTC and rNews can be found at [rnews.org](http://rnews.org).
196
+	 * @see http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_rNews
197
+	 */
198
+	const rNews = 'http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_rNews';
199
+
200
+	/**
201
+	 * @var array
202
+	 * @see http://schema.org/{property_name}
203
+	 */
204
+	public $allowed = [
205
+		'address', 'aggregateRating', 'areaServed', 'award', 'awards', 'brand', 'contactPoint',
206
+		'contactPoints', 'department', 'dissolutionDate', 'duns', 'email', 'employee', 'employees',
207
+		'event', 'events', 'faxNumber', 'founder', 'founders', 'foundingDate', 'foundingLocation',
208
+		'funder', 'globalLocationNumber', 'hasOfferCatalog', 'hasPOS', 'isicV4', 'legalName',
209
+		'leiCode', 'location', 'logo', 'makesOffer', 'member', 'memberOf', 'members', 'naics',
210
+		'numberOfEmployees', 'offeredBy', 'owns', 'parentOrganization', 'publishingPrinciples',
211
+		'review', 'reviews', 'seeks', 'serviceArea', 'sponsor', 'subOrganization', 'taxID',
212
+		'telephone', 'vatID',
213
+	];
214
+
215
+	/**
216
+	 * @var array
217
+	 * @see http://schema.org/{property_name}
218
+	 */
219
+	public $parents = [
220
+		'Thing',
221
+	];
222 222
 }
Please login to merge, or discard this patch.
plugin/Modules/Schema/Intangible.php 1 patch
Indentation   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -9,11 +9,11 @@
 block discarded – undo
9 9
  */
10 10
 class Intangible extends BaseType
11 11
 {
12
-    /**
13
-     * @var array
14
-     * @see http://schema.org/{property_name}
15
-     */
16
-    public $parents = [
17
-        'Thing',
18
-    ];
12
+	/**
13
+	 * @var array
14
+	 * @see http://schema.org/{property_name}
15
+	 */
16
+	public $parents = [
17
+		'Thing',
18
+	];
19 19
 }
Please login to merge, or discard this patch.