Passed
Push — feature/rebusify ( 0fe5b2...103190 )
by Paul
08:37 queued 03:55
created
uninstall.php 1 patch
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@
 block discarded – undo
5 5
 require_once __DIR__.'/site-reviews.php';
6 6
 
7 7
 if (!(new GL_Plugin_Check_v3(__FILE__))->isValid()) {
8
-    return;
8
+	return;
9 9
 }
10 10
 delete_option(GeminiLabs\SiteReviews\Database\OptionManager::databaseKey(3));
11 11
 delete_option(GeminiLabs\SiteReviews\Database\OptionManager::databaseKey(4));
Please login to merge, or discard this patch.
plugin/Handlers/TogglePinned.php 1 patch
Indentation   +20 added lines, -20 removed lines patch added patch discarded remove patch
@@ -8,24 +8,24 @@
 block discarded – undo
8 8
 
9 9
 class TogglePinned
10 10
 {
11
-    /**
12
-     * @return bool
13
-     */
14
-    public function handle(Command $command)
15
-    {
16
-        if (!get_post($command->id)) {
17
-            return false;
18
-        }
19
-        if (is_null($command->pinned)) {
20
-            $meta = glsr(Database::class)->get($command->id, 'pinned');
21
-            $command->pinned = !wp_validate_boolean($meta);
22
-        } else {
23
-            $notice = $command->pinned
24
-                ? __('Review pinned.', 'site-reviews')
25
-                : __('Review unpinned.', 'site-reviews');
26
-            glsr(Notice::class)->addSuccess($notice);
27
-        }
28
-        glsr(Database::class)->update($command->id, 'pinned', $command->pinned);
29
-        return $command->pinned;
30
-    }
11
+	/**
12
+	 * @return bool
13
+	 */
14
+	public function handle(Command $command)
15
+	{
16
+		if (!get_post($command->id)) {
17
+			return false;
18
+		}
19
+		if (is_null($command->pinned)) {
20
+			$meta = glsr(Database::class)->get($command->id, 'pinned');
21
+			$command->pinned = !wp_validate_boolean($meta);
22
+		} else {
23
+			$notice = $command->pinned
24
+				? __('Review pinned.', 'site-reviews')
25
+				: __('Review unpinned.', 'site-reviews');
26
+			glsr(Notice::class)->addSuccess($notice);
27
+		}
28
+		glsr(Database::class)->update($command->id, 'pinned', $command->pinned);
29
+		return $command->pinned;
30
+	}
31 31
 }
Please login to merge, or discard this patch.
plugin/Review.php 1 patch
Indentation   +160 added lines, -160 removed lines patch added patch discarded remove patch
@@ -11,176 +11,176 @@
 block discarded – undo
11 11
 
12 12
 class Review implements \ArrayAccess
13 13
 {
14
-    public $assigned_to;
15
-    public $author;
16
-    public $avatar;
17
-    public $content;
18
-    public $custom;
19
-    public $date;
20
-    public $email;
21
-    public $ID;
22
-    public $ip_address;
23
-    public $modified;
24
-    public $pinned;
25
-    public $rating;
26
-    public $response;
27
-    public $review_id;
28
-    public $review_type;
29
-    public $status;
30
-    public $term_ids;
31
-    public $title;
32
-    public $url;
33
-    public $user_id;
14
+	public $assigned_to;
15
+	public $author;
16
+	public $avatar;
17
+	public $content;
18
+	public $custom;
19
+	public $date;
20
+	public $email;
21
+	public $ID;
22
+	public $ip_address;
23
+	public $modified;
24
+	public $pinned;
25
+	public $rating;
26
+	public $response;
27
+	public $review_id;
28
+	public $review_type;
29
+	public $status;
30
+	public $term_ids;
31
+	public $title;
32
+	public $url;
33
+	public $user_id;
34 34
 
35
-    public function __construct(WP_Post $post)
36
-    {
37
-        if (Application::POST_TYPE != $post->post_type) {
38
-            return;
39
-        }
40
-        $this->content = $post->post_content;
41
-        $this->date = $post->post_date;
42
-        $this->ID = intval($post->ID);
43
-        $this->status = $post->post_status;
44
-        $this->title = $post->post_title;
45
-        $this->user_id = intval($post->post_author);
46
-        $this->setProperties($post);
47
-        $this->setTermIds($post);
48
-    }
35
+	public function __construct(WP_Post $post)
36
+	{
37
+		if (Application::POST_TYPE != $post->post_type) {
38
+			return;
39
+		}
40
+		$this->content = $post->post_content;
41
+		$this->date = $post->post_date;
42
+		$this->ID = intval($post->ID);
43
+		$this->status = $post->post_status;
44
+		$this->title = $post->post_title;
45
+		$this->user_id = intval($post->post_author);
46
+		$this->setProperties($post);
47
+		$this->setTermIds($post);
48
+	}
49 49
 
50
-    /**
51
-     * @return mixed
52
-     */
53
-    public function __get($key)
54
-    {
55
-        return $this->offsetGet($key);
56
-    }
50
+	/**
51
+	 * @return mixed
52
+	 */
53
+	public function __get($key)
54
+	{
55
+		return $this->offsetGet($key);
56
+	}
57 57
 
58
-    /**
59
-     * @return string
60
-     */
61
-    public function __toString()
62
-    {
63
-        return (string) $this->build();
64
-    }
58
+	/**
59
+	 * @return string
60
+	 */
61
+	public function __toString()
62
+	{
63
+		return (string) $this->build();
64
+	}
65 65
 
66
-    /**
67
-     * @return ReviewHtml
68
-     */
69
-    public function build(array $args = [])
70
-    {
71
-        if (empty($this->ID)) {
72
-            return new ReviewHtml($this);
73
-        }
74
-        $partial = glsr(SiteReviewsPartial::class);
75
-        $partial->args = glsr(SiteReviewsDefaults::class)->merge($args);
76
-        $partial->options = glsr(Helper::class)->flattenArray(glsr(OptionManager::class)->all());
77
-        return $partial->buildReview($this);
78
-    }
66
+	/**
67
+	 * @return ReviewHtml
68
+	 */
69
+	public function build(array $args = [])
70
+	{
71
+		if (empty($this->ID)) {
72
+			return new ReviewHtml($this);
73
+		}
74
+		$partial = glsr(SiteReviewsPartial::class);
75
+		$partial->args = glsr(SiteReviewsDefaults::class)->merge($args);
76
+		$partial->options = glsr(Helper::class)->flattenArray(glsr(OptionManager::class)->all());
77
+		return $partial->buildReview($this);
78
+	}
79 79
 
80
-    /**
81
-     * @param mixed $key
82
-     * @return bool
83
-     */
84
-    public function offsetExists($key)
85
-    {
86
-        return property_exists($this, $key) || array_key_exists($key, (array) $this->custom);
87
-    }
80
+	/**
81
+	 * @param mixed $key
82
+	 * @return bool
83
+	 */
84
+	public function offsetExists($key)
85
+	{
86
+		return property_exists($this, $key) || array_key_exists($key, (array) $this->custom);
87
+	}
88 88
 
89
-    /**
90
-     * @param mixed $key
91
-     * @return mixed
92
-     */
93
-    public function offsetGet($key)
94
-    {
95
-        if (property_exists($this, $key)) {
96
-            return $this->{$key};
97
-        }
98
-        return array_key_exists($key, (array) $this->custom)
99
-            ? $this->custom[$key]
100
-            : null;
101
-    }
89
+	/**
90
+	 * @param mixed $key
91
+	 * @return mixed
92
+	 */
93
+	public function offsetGet($key)
94
+	{
95
+		if (property_exists($this, $key)) {
96
+			return $this->{$key};
97
+		}
98
+		return array_key_exists($key, (array) $this->custom)
99
+			? $this->custom[$key]
100
+			: null;
101
+	}
102 102
 
103
-    /**
104
-     * @param mixed $key
105
-     * @param mixed $value
106
-     * @return void
107
-     */
108
-    public function offsetSet($key, $value)
109
-    {
110
-        if (property_exists($this, $key)) {
111
-            $this->{$key} = $value;
112
-            return;
113
-        }
114
-        if (!is_array($this->custom)) {
115
-            $this->custom = array_filter((array) $this->custom);
116
-        }
117
-        $this->custom[$key] = $value;
118
-    }
103
+	/**
104
+	 * @param mixed $key
105
+	 * @param mixed $value
106
+	 * @return void
107
+	 */
108
+	public function offsetSet($key, $value)
109
+	{
110
+		if (property_exists($this, $key)) {
111
+			$this->{$key} = $value;
112
+			return;
113
+		}
114
+		if (!is_array($this->custom)) {
115
+			$this->custom = array_filter((array) $this->custom);
116
+		}
117
+		$this->custom[$key] = $value;
118
+	}
119 119
 
120
-    /**
121
-     * @param mixed $key
122
-     * @return void
123
-     */
124
-    public function offsetUnset($key)
125
-    {
126
-        $this->offsetSet($key, null);
127
-    }
120
+	/**
121
+	 * @param mixed $key
122
+	 * @return void
123
+	 */
124
+	public function offsetUnset($key)
125
+	{
126
+		$this->offsetSet($key, null);
127
+	}
128 128
 
129
-    /**
130
-     * @return void
131
-     */
132
-    public function render()
133
-    {
134
-        echo $this->build();
135
-    }
129
+	/**
130
+	 * @return void
131
+	 */
132
+	public function render()
133
+	{
134
+		echo $this->build();
135
+	}
136 136
 
137
-    /**
138
-     * @return bool
139
-     */
140
-    protected function isModified(array $properties)
141
-    {
142
-        return $this->date != $properties['date']
143
-            || $this->content != $properties['content']
144
-            || $this->title != $properties['title'];
145
-    }
137
+	/**
138
+	 * @return bool
139
+	 */
140
+	protected function isModified(array $properties)
141
+	{
142
+		return $this->date != $properties['date']
143
+			|| $this->content != $properties['content']
144
+			|| $this->title != $properties['title'];
145
+	}
146 146
 
147
-    /**
148
-     * @return void
149
-     */
150
-    protected function setProperties(WP_Post $post)
151
-    {
152
-        $defaults = [
153
-            'author' => __('Anonymous', 'site-reviews'),
154
-            'date' => '',
155
-            'review_id' => '',
156
-            'review_type' => 'local',
157
-        ];
158
-        $meta = array_filter(
159
-            array_map('array_shift', array_filter((array) get_post_meta($post->ID))),
160
-            'strlen'
161
-        );
162
-        $meta = array_merge($defaults, glsr(Helper::class)->unprefixArrayKeys($meta));
163
-        $properties = glsr(CreateReviewDefaults::class)->restrict(array_merge($defaults, $meta));
164
-        $this->modified = $this->isModified($properties);
165
-        array_walk($properties, function ($value, $key) {
166
-            if (!property_exists($this, $key) || isset($this->$key)) {
167
-                return;
168
-            }
169
-            $this->$key = maybe_unserialize($value);
170
-        });
171
-    }
147
+	/**
148
+	 * @return void
149
+	 */
150
+	protected function setProperties(WP_Post $post)
151
+	{
152
+		$defaults = [
153
+			'author' => __('Anonymous', 'site-reviews'),
154
+			'date' => '',
155
+			'review_id' => '',
156
+			'review_type' => 'local',
157
+		];
158
+		$meta = array_filter(
159
+			array_map('array_shift', array_filter((array) get_post_meta($post->ID))),
160
+			'strlen'
161
+		);
162
+		$meta = array_merge($defaults, glsr(Helper::class)->unprefixArrayKeys($meta));
163
+		$properties = glsr(CreateReviewDefaults::class)->restrict(array_merge($defaults, $meta));
164
+		$this->modified = $this->isModified($properties);
165
+		array_walk($properties, function ($value, $key) {
166
+			if (!property_exists($this, $key) || isset($this->$key)) {
167
+				return;
168
+			}
169
+			$this->$key = maybe_unserialize($value);
170
+		});
171
+	}
172 172
 
173
-    /**
174
-     * @return void
175
-     */
176
-    protected function setTermIds(WP_Post $post)
177
-    {
178
-        $this->term_ids = [];
179
-        if (!is_array($terms = get_the_terms($post, Application::TAXONOMY))) {
180
-            return;
181
-        }
182
-        foreach ($terms as $term) {
183
-            $this->term_ids[] = $term->term_id;
184
-        }
185
-    }
173
+	/**
174
+	 * @return void
175
+	 */
176
+	protected function setTermIds(WP_Post $post)
177
+	{
178
+		$this->term_ids = [];
179
+		if (!is_array($terms = get_the_terms($post, Application::TAXONOMY))) {
180
+			return;
181
+		}
182
+		foreach ($terms as $term) {
183
+			$this->term_ids[] = $term->term_id;
184
+		}
185
+	}
186 186
 }
Please login to merge, or discard this patch.
plugin/Modules/Akismet.php 1 patch
Indentation   +75 added lines, -75 removed lines patch added patch discarded remove patch
@@ -7,82 +7,82 @@
 block discarded – undo
7 7
 
8 8
 class Akismet
9 9
 {
10
-    /**
11
-     * @return bool
12
-     */
13
-    public function isSpam(array $review)
14
-    {
15
-        if (!$this->isActive()) {
16
-            return false;
17
-        }
18
-        $submission = [
19
-            'blog' => glsr(OptionManager::class)->getWP('home'),
20
-            'blog_charset' => glsr(OptionManager::class)->getWP('blog_charset', 'UTF-8'),
21
-            'blog_lang' => get_locale(),
22
-            'comment_author' => $review['name'],
23
-            'comment_author_email' => $review['email'],
24
-            'comment_content' => $review['title']."\n\n".$review['content'],
25
-            'comment_type' => 'review',
26
-            'referrer' => filter_input(INPUT_SERVER, 'HTTP_REFERER'),
27
-            'user_agent' => filter_input(INPUT_SERVER, 'HTTP_USER_AGENT'),
28
-            'user_ip' => $review['ip_address'],
29
-            // 'user_role' => 'administrator',
30
-            // 'is_test' => 1,
31
-        ];
32
-        foreach ($_SERVER as $key => $value) {
33
-            if (is_array($value) || in_array($key, ['HTTP_COOKIE', 'HTTP_COOKIE2', 'PHP_AUTH_PW'])) {
34
-                continue;
35
-            }
36
-            $submission[$key] = $value;
37
-        }
38
-        return $this->check(apply_filters('site-reviews/akismet/submission', $submission, $review));
39
-    }
10
+	/**
11
+	 * @return bool
12
+	 */
13
+	public function isSpam(array $review)
14
+	{
15
+		if (!$this->isActive()) {
16
+			return false;
17
+		}
18
+		$submission = [
19
+			'blog' => glsr(OptionManager::class)->getWP('home'),
20
+			'blog_charset' => glsr(OptionManager::class)->getWP('blog_charset', 'UTF-8'),
21
+			'blog_lang' => get_locale(),
22
+			'comment_author' => $review['name'],
23
+			'comment_author_email' => $review['email'],
24
+			'comment_content' => $review['title']."\n\n".$review['content'],
25
+			'comment_type' => 'review',
26
+			'referrer' => filter_input(INPUT_SERVER, 'HTTP_REFERER'),
27
+			'user_agent' => filter_input(INPUT_SERVER, 'HTTP_USER_AGENT'),
28
+			'user_ip' => $review['ip_address'],
29
+			// 'user_role' => 'administrator',
30
+			// 'is_test' => 1,
31
+		];
32
+		foreach ($_SERVER as $key => $value) {
33
+			if (is_array($value) || in_array($key, ['HTTP_COOKIE', 'HTTP_COOKIE2', 'PHP_AUTH_PW'])) {
34
+				continue;
35
+			}
36
+			$submission[$key] = $value;
37
+		}
38
+		return $this->check(apply_filters('site-reviews/akismet/submission', $submission, $review));
39
+	}
40 40
 
41
-    /**
42
-     * @return bool
43
-     */
44
-    protected function check(array $submission)
45
-    {
46
-        $response = AkismetPlugin::http_post($this->buildQuery($submission), 'comment-check');
47
-        return apply_filters('site-reviews/akismet/is-spam',
48
-            'true' == $response[1],
49
-            $submission,
50
-            $response
51
-        );
52
-    }
41
+	/**
42
+	 * @return bool
43
+	 */
44
+	protected function check(array $submission)
45
+	{
46
+		$response = AkismetPlugin::http_post($this->buildQuery($submission), 'comment-check');
47
+		return apply_filters('site-reviews/akismet/is-spam',
48
+			'true' == $response[1],
49
+			$submission,
50
+			$response
51
+		);
52
+	}
53 53
 
54
-    /**
55
-     * @return string
56
-     */
57
-    protected function buildQuery(array $data)
58
-    {
59
-        $query = [];
60
-        foreach ($data as $key => $value) {
61
-            if (is_array($value) || is_object($value)) {
62
-                continue;
63
-            }
64
-            if (false === $value) {
65
-                $value = '0';
66
-            }
67
-            $value = trim($value);
68
-            if (!strlen($value)) {
69
-                continue;
70
-            }
71
-            $query[] = urlencode($key).'='.urlencode($value);
72
-        }
73
-        return implode('&', $query);
74
-    }
54
+	/**
55
+	 * @return string
56
+	 */
57
+	protected function buildQuery(array $data)
58
+	{
59
+		$query = [];
60
+		foreach ($data as $key => $value) {
61
+			if (is_array($value) || is_object($value)) {
62
+				continue;
63
+			}
64
+			if (false === $value) {
65
+				$value = '0';
66
+			}
67
+			$value = trim($value);
68
+			if (!strlen($value)) {
69
+				continue;
70
+			}
71
+			$query[] = urlencode($key).'='.urlencode($value);
72
+		}
73
+		return implode('&', $query);
74
+	}
75 75
 
76
-    /**
77
-     * @return bool
78
-     */
79
-    protected function isActive()
80
-    {
81
-        $check = !glsr(OptionManager::class)->getBool('settings.submissions.akismet')
82
-            || !is_callable(['Akismet', 'get_api_key'])
83
-            || !is_callable(['Akismet', 'http_post'])
84
-            ? false
85
-            : (bool) AkismetPlugin::get_api_key();
86
-        return apply_filters('site-reviews/akismet/is-active', $check);
87
-    }
76
+	/**
77
+	 * @return bool
78
+	 */
79
+	protected function isActive()
80
+	{
81
+		$check = !glsr(OptionManager::class)->getBool('settings.submissions.akismet')
82
+			|| !is_callable(['Akismet', 'get_api_key'])
83
+			|| !is_callable(['Akismet', 'http_post'])
84
+			? false
85
+			: (bool) AkismetPlugin::get_api_key();
86
+		return apply_filters('site-reviews/akismet/is-active', $check);
87
+	}
88 88
 }
Please login to merge, or discard this patch.
plugin/Modules/Blacklist.php 1 patch
Indentation   +48 added lines, -48 removed lines patch added patch discarded remove patch
@@ -6,54 +6,54 @@
 block discarded – undo
6 6
 
7 7
 class Blacklist
8 8
 {
9
-    /**
10
-     * @return bool
11
-     */
12
-    public function isBlacklisted(array $review)
13
-    {
14
-        $target = implode("\n", array_filter([
15
-            $review['name'],
16
-            $review['content'],
17
-            $review['email'],
18
-            $review['ip_address'],
19
-            $review['title'],
20
-        ]));
21
-        return (bool) apply_filters('site-reviews/blacklist/is-blacklisted',
22
-            $this->check($target),
23
-            $review,
24
-            $target
25
-        );
26
-    }
9
+	/**
10
+	 * @return bool
11
+	 */
12
+	public function isBlacklisted(array $review)
13
+	{
14
+		$target = implode("\n", array_filter([
15
+			$review['name'],
16
+			$review['content'],
17
+			$review['email'],
18
+			$review['ip_address'],
19
+			$review['title'],
20
+		]));
21
+		return (bool) apply_filters('site-reviews/blacklist/is-blacklisted',
22
+			$this->check($target),
23
+			$review,
24
+			$target
25
+		);
26
+	}
27 27
 
28
-    /**
29
-     * @param string $target
30
-     * @return bool
31
-     */
32
-    protected function check($target)
33
-    {
34
-        $blacklist = $this->getBlacklist();
35
-        if (empty($blacklist)) {
36
-            return false;
37
-        }
38
-        $lines = explode("\n", $blacklist);
39
-        foreach ((array) $lines as $line) {
40
-            $line = trim($line);
41
-            if (empty($line) || 256 < strlen($line)) {
42
-                continue;
43
-            }
44
-            $pattern = sprintf('#%s#i', preg_quote($line, '#'));
45
-            if (preg_match($pattern, $target)) {
46
-                return true;
47
-            }
48
-        }
49
-        return false;
50
-    }
28
+	/**
29
+	 * @param string $target
30
+	 * @return bool
31
+	 */
32
+	protected function check($target)
33
+	{
34
+		$blacklist = $this->getBlacklist();
35
+		if (empty($blacklist)) {
36
+			return false;
37
+		}
38
+		$lines = explode("\n", $blacklist);
39
+		foreach ((array) $lines as $line) {
40
+			$line = trim($line);
41
+			if (empty($line) || 256 < strlen($line)) {
42
+				continue;
43
+			}
44
+			$pattern = sprintf('#%s#i', preg_quote($line, '#'));
45
+			if (preg_match($pattern, $target)) {
46
+				return true;
47
+			}
48
+		}
49
+		return false;
50
+	}
51 51
 
52
-    protected function getBlacklist()
53
-    {
54
-        $option = glsr(OptionManager::class)->get('settings.submissions.blacklist.integration');
55
-        return $option == 'comments'
56
-            ? trim(glsr(OptionManager::class)->getWP('blacklist_keys'))
57
-            : trim(glsr(OptionManager::class)->get('settings.submissions.blacklist.entries'));
58
-    }
52
+	protected function getBlacklist()
53
+	{
54
+		$option = glsr(OptionManager::class)->get('settings.submissions.blacklist.integration');
55
+		return $option == 'comments'
56
+			? trim(glsr(OptionManager::class)->getWP('blacklist_keys'))
57
+			: trim(glsr(OptionManager::class)->get('settings.submissions.blacklist.entries'));
58
+	}
59 59
 }
Please login to merge, or discard this patch.
plugin/Modules/Notification.php 1 patch
Indentation   +148 added lines, -148 removed lines patch added patch discarded remove patch
@@ -8,164 +8,164 @@
 block discarded – undo
8 8
 
9 9
 class Notification
10 10
 {
11
-    /**
12
-     * @var bool
13
-     */
14
-    protected $email;
11
+	/**
12
+	 * @var bool
13
+	 */
14
+	protected $email;
15 15
 
16
-    /**
17
-     * @var Review
18
-     */
19
-    protected $review;
16
+	/**
17
+	 * @var Review
18
+	 */
19
+	protected $review;
20 20
 
21
-    /**
22
-     * @var bool
23
-     */
24
-    protected $slack;
21
+	/**
22
+	 * @var bool
23
+	 */
24
+	protected $slack;
25 25
 
26
-    /**
27
-     * @var array
28
-     */
29
-    protected $types;
26
+	/**
27
+	 * @var array
28
+	 */
29
+	protected $types;
30 30
 
31
-    public function __construct()
32
-    {
33
-        $types = glsr(OptionManager::class)->get('settings.general.notifications', []);
34
-        $this->email = count(array_intersect(['admin', 'custom'], $types)) > 0;
35
-        $this->slack = in_array('slack', $types);
36
-        $this->types = $types;
37
-    }
31
+	public function __construct()
32
+	{
33
+		$types = glsr(OptionManager::class)->get('settings.general.notifications', []);
34
+		$this->email = count(array_intersect(['admin', 'custom'], $types)) > 0;
35
+		$this->slack = in_array('slack', $types);
36
+		$this->types = $types;
37
+	}
38 38
 
39
-    /**
40
-     * @return void
41
-     */
42
-    public function send(Review $review)
43
-    {
44
-        if (empty($this->types)) {
45
-            return;
46
-        }
47
-        $this->review = $review;
48
-        $args = [
49
-            'link' => $this->getLink(),
50
-            'title' => $this->getTitle(),
51
-        ];
52
-        $this->sendToEmail($args);
53
-        $this->sendToSlack($args);
54
-    }
39
+	/**
40
+	 * @return void
41
+	 */
42
+	public function send(Review $review)
43
+	{
44
+		if (empty($this->types)) {
45
+			return;
46
+		}
47
+		$this->review = $review;
48
+		$args = [
49
+			'link' => $this->getLink(),
50
+			'title' => $this->getTitle(),
51
+		];
52
+		$this->sendToEmail($args);
53
+		$this->sendToSlack($args);
54
+	}
55 55
 
56
-    /**
57
-     * @return Email
58
-     */
59
-    protected function buildEmail(array $args)
60
-    {
61
-        return glsr(Email::class)->compose([
62
-            'to' => $this->getEmailAddresses(),
63
-            'subject' => $args['title'],
64
-            'template' => 'email-notification',
65
-            'template-tags' => [
66
-                'review_author' => $this->review->author ?: __('Anonymous', 'site-reviews'),
67
-                'review_content' => $this->review->content,
68
-                'review_email' => $this->review->email,
69
-                'review_ip' => $this->review->ip_address,
70
-                'review_link' => sprintf('<a href="%1$s">%1$s</a>', $args['link']),
71
-                'review_rating' => $this->review->rating,
72
-                'review_title' => $this->review->title,
73
-            ],
74
-        ]);
75
-    }
56
+	/**
57
+	 * @return Email
58
+	 */
59
+	protected function buildEmail(array $args)
60
+	{
61
+		return glsr(Email::class)->compose([
62
+			'to' => $this->getEmailAddresses(),
63
+			'subject' => $args['title'],
64
+			'template' => 'email-notification',
65
+			'template-tags' => [
66
+				'review_author' => $this->review->author ?: __('Anonymous', 'site-reviews'),
67
+				'review_content' => $this->review->content,
68
+				'review_email' => $this->review->email,
69
+				'review_ip' => $this->review->ip_address,
70
+				'review_link' => sprintf('<a href="%1$s">%1$s</a>', $args['link']),
71
+				'review_rating' => $this->review->rating,
72
+				'review_title' => $this->review->title,
73
+			],
74
+		]);
75
+	}
76 76
 
77
-    /**
78
-     * @return Slack
79
-     */
80
-    protected function buildSlackNotification(array $args)
81
-    {
82
-        return glsr(Slack::class)->compose($this->review, [
83
-            'button_url' => $args['link'],
84
-            'fallback' => $this->buildEmail($args)->read('plaintext'),
85
-            'pretext' => $args['title'],
86
-        ]);
87
-    }
77
+	/**
78
+	 * @return Slack
79
+	 */
80
+	protected function buildSlackNotification(array $args)
81
+	{
82
+		return glsr(Slack::class)->compose($this->review, [
83
+			'button_url' => $args['link'],
84
+			'fallback' => $this->buildEmail($args)->read('plaintext'),
85
+			'pretext' => $args['title'],
86
+		]);
87
+	}
88 88
 
89
-    /**
90
-     * @return array
91
-     */
92
-    protected function getEmailAddresses()
93
-    {
94
-        $emails = [];
95
-        if (in_array('admin', $this->types)) {
96
-            $emails[] = glsr(OptionManager::class)->getWP('admin_email');
97
-        }
98
-        if (in_array('author', $this->types)) {
99
-            $assignedPost = get_post(intval($this->review->assigned_to));
100
-            if ($assignedPost instanceof WP_Post) {
101
-                $this->email = true;
102
-                $emails[] = get_the_author_meta('user_email', intval($assignedPost->post_author));
103
-            }
104
-        }
105
-        if (in_array('custom', $this->types)) {
106
-            $customEmails = glsr(OptionManager::class)->get('settings.general.notification_email');
107
-            $customEmails = str_replace([' ', ',', ';'], ',', $customEmails);
108
-            $customEmails = explode(',', $customEmails);
109
-            $emails = array_merge($emails, $customEmails);
110
-        }
111
-        $emails = array_filter(array_keys(array_flip($emails)));
112
-        return apply_filters('site-reviews/notification/emails', $emails, $this->review);
113
-    }
89
+	/**
90
+	 * @return array
91
+	 */
92
+	protected function getEmailAddresses()
93
+	{
94
+		$emails = [];
95
+		if (in_array('admin', $this->types)) {
96
+			$emails[] = glsr(OptionManager::class)->getWP('admin_email');
97
+		}
98
+		if (in_array('author', $this->types)) {
99
+			$assignedPost = get_post(intval($this->review->assigned_to));
100
+			if ($assignedPost instanceof WP_Post) {
101
+				$this->email = true;
102
+				$emails[] = get_the_author_meta('user_email', intval($assignedPost->post_author));
103
+			}
104
+		}
105
+		if (in_array('custom', $this->types)) {
106
+			$customEmails = glsr(OptionManager::class)->get('settings.general.notification_email');
107
+			$customEmails = str_replace([' ', ',', ';'], ',', $customEmails);
108
+			$customEmails = explode(',', $customEmails);
109
+			$emails = array_merge($emails, $customEmails);
110
+		}
111
+		$emails = array_filter(array_keys(array_flip($emails)));
112
+		return apply_filters('site-reviews/notification/emails', $emails, $this->review);
113
+	}
114 114
 
115
-    /**
116
-     * @return string
117
-     */
118
-    protected function getLink()
119
-    {
120
-        return admin_url('post.php?post='.$this->review->ID.'&action=edit');
121
-    }
115
+	/**
116
+	 * @return string
117
+	 */
118
+	protected function getLink()
119
+	{
120
+		return admin_url('post.php?post='.$this->review->ID.'&action=edit');
121
+	}
122 122
 
123
-    /**
124
-     * @return string
125
-     */
126
-    protected function getTitle()
127
-    {
128
-        $assignedTitle = get_the_title(intval($this->review->assigned_to));
129
-        $title = _nx(
130
-            'New %s-star review',
131
-            'New %s-star review of: %s',
132
-            intval(empty($assignedTitle)),
133
-            'This string differs depending on whether or not the review has been assigned to a post.',
134
-            'site-reviews'
135
-        );
136
-        $title = sprintf('[%s] %s',
137
-            wp_specialchars_decode(glsr(OptionManager::class)->getWP('blogname'), ENT_QUOTES),
138
-            sprintf($title, $this->review->rating, $assignedTitle)
139
-        );
140
-        return apply_filters('site-reviews/notification/title', $title, $this->review);
141
-    }
123
+	/**
124
+	 * @return string
125
+	 */
126
+	protected function getTitle()
127
+	{
128
+		$assignedTitle = get_the_title(intval($this->review->assigned_to));
129
+		$title = _nx(
130
+			'New %s-star review',
131
+			'New %s-star review of: %s',
132
+			intval(empty($assignedTitle)),
133
+			'This string differs depending on whether or not the review has been assigned to a post.',
134
+			'site-reviews'
135
+		);
136
+		$title = sprintf('[%s] %s',
137
+			wp_specialchars_decode(glsr(OptionManager::class)->getWP('blogname'), ENT_QUOTES),
138
+			sprintf($title, $this->review->rating, $assignedTitle)
139
+		);
140
+		return apply_filters('site-reviews/notification/title', $title, $this->review);
141
+	}
142 142
 
143
-    /**
144
-     * @return void
145
-     */
146
-    protected function sendToEmail(array $args)
147
-    {
148
-        $email = $this->buildEmail($args);
149
-        if (empty($email->to)) {
150
-            glsr_log()->error('Email notification was not sent (missing email address)');
151
-            return;
152
-        }
153
-        $email->send();
154
-    }
143
+	/**
144
+	 * @return void
145
+	 */
146
+	protected function sendToEmail(array $args)
147
+	{
148
+		$email = $this->buildEmail($args);
149
+		if (empty($email->to)) {
150
+			glsr_log()->error('Email notification was not sent (missing email address)');
151
+			return;
152
+		}
153
+		$email->send();
154
+	}
155 155
 
156
-    /**
157
-     * @return void
158
-     */
159
-    protected function sendToSlack(array $args)
160
-    {
161
-        if (!$this->slack) {
162
-            return;
163
-        }
164
-        $notification = $this->buildSlackNotification($args);
165
-        $result = $notification->send();
166
-        if (is_wp_error($result)) {
167
-            $notification->review = null;
168
-            glsr_log()->error($result->get_error_message())->debug($notification);
169
-        }
170
-    }
156
+	/**
157
+	 * @return void
158
+	 */
159
+	protected function sendToSlack(array $args)
160
+	{
161
+		if (!$this->slack) {
162
+			return;
163
+		}
164
+		$notification = $this->buildSlackNotification($args);
165
+		$result = $notification->send();
166
+		if (is_wp_error($result)) {
167
+			$notification->review = null;
168
+			glsr_log()->error($result->get_error_message())->debug($notification);
169
+		}
170
+	}
171 171
 }
Please login to merge, or discard this patch.
plugin/Controllers/EditorController/Metaboxes.php 1 patch
Indentation   +28 added lines, -28 removed lines patch added patch discarded remove patch
@@ -7,33 +7,33 @@
 block discarded – undo
7 7
 
8 8
 class Metaboxes
9 9
 {
10
-    /**
11
-     * @param int $postId
12
-     * @return void
13
-     */
14
-    public function saveAssignedToMetabox($postId)
15
-    {
16
-        if (!wp_verify_nonce(glsr(Helper::class)->filterInput('_nonce-assigned-to'), 'assigned_to')) {
17
-            return;
18
-        }
19
-        $assignedTo = strval(glsr(Helper::class)->filterInput('assigned_to'));
20
-        glsr(Database::class)->update($postId, 'assigned_to', $assignedTo);
21
-    }
10
+	/**
11
+	 * @param int $postId
12
+	 * @return void
13
+	 */
14
+	public function saveAssignedToMetabox($postId)
15
+	{
16
+		if (!wp_verify_nonce(glsr(Helper::class)->filterInput('_nonce-assigned-to'), 'assigned_to')) {
17
+			return;
18
+		}
19
+		$assignedTo = strval(glsr(Helper::class)->filterInput('assigned_to'));
20
+		glsr(Database::class)->update($postId, 'assigned_to', $assignedTo);
21
+	}
22 22
 
23
-    /**
24
-     * @param int $postId
25
-     * @return mixed
26
-     */
27
-    public function saveResponseMetabox($postId)
28
-    {
29
-        if (!wp_verify_nonce(glsr(Helper::class)->filterInput('_nonce-response'), 'response')) {
30
-            return;
31
-        }
32
-        $response = strval(glsr(Helper::class)->filterInput('response'));
33
-        glsr(Database::class)->update($postId, 'response', trim(wp_kses($response, [
34
-            'a' => ['href' => [], 'title' => []],
35
-            'em' => [],
36
-            'strong' => [],
37
-        ])));
38
-    }
23
+	/**
24
+	 * @param int $postId
25
+	 * @return mixed
26
+	 */
27
+	public function saveResponseMetabox($postId)
28
+	{
29
+		if (!wp_verify_nonce(glsr(Helper::class)->filterInput('_nonce-response'), 'response')) {
30
+			return;
31
+		}
32
+		$response = strval(glsr(Helper::class)->filterInput('response'));
33
+		glsr(Database::class)->update($postId, 'response', trim(wp_kses($response, [
34
+			'a' => ['href' => [], 'title' => []],
35
+			'em' => [],
36
+			'strong' => [],
37
+		])));
38
+	}
39 39
 }
Please login to merge, or discard this patch.
plugin/Controllers/EditorController/Customization.php 1 patch
Indentation   +74 added lines, -74 removed lines patch added patch discarded remove patch
@@ -7,84 +7,84 @@
 block discarded – undo
7 7
 
8 8
 class Customization
9 9
 {
10
-    /**
11
-     * @return array
12
-     */
13
-    public function filterEditorSettings(array $settings)
14
-    {
15
-        if ($this->isReviewEditable()) {
16
-            $settings = [
17
-                'media_buttons' => false,
18
-                'quicktags' => false,
19
-                'textarea_rows' => 12,
20
-                'tinymce' => false,
21
-            ];
22
-        }
23
-        return $settings;
24
-    }
10
+	/**
11
+	 * @return array
12
+	 */
13
+	public function filterEditorSettings(array $settings)
14
+	{
15
+		if ($this->isReviewEditable()) {
16
+			$settings = [
17
+				'media_buttons' => false,
18
+				'quicktags' => false,
19
+				'textarea_rows' => 12,
20
+				'tinymce' => false,
21
+			];
22
+		}
23
+		return $settings;
24
+	}
25 25
 
26
-    /**
27
-     * @param string $html
28
-     * @return string
29
-     */
30
-    public function filterEditorTextarea($html)
31
-    {
32
-        if ($this->isReviewEditable()) {
33
-            $html = str_replace('<textarea', '<div id="ed_toolbar"></div><textarea', $html);
34
-        }
35
-        return $html;
36
-    }
26
+	/**
27
+	 * @param string $html
28
+	 * @return string
29
+	 */
30
+	public function filterEditorTextarea($html)
31
+	{
32
+		if ($this->isReviewEditable()) {
33
+			$html = str_replace('<textarea', '<div id="ed_toolbar"></div><textarea', $html);
34
+		}
35
+		return $html;
36
+	}
37 37
 
38
-    /**
39
-     * @return void
40
-     */
41
-    public function removeAutosave()
42
-    {
43
-        if (!$this->isReviewEditor() || $this->isReviewEditable()) {
44
-            return;
45
-        }
46
-        wp_deregister_script('autosave');
47
-    }
38
+	/**
39
+	 * @return void
40
+	 */
41
+	public function removeAutosave()
42
+	{
43
+		if (!$this->isReviewEditor() || $this->isReviewEditable()) {
44
+			return;
45
+		}
46
+		wp_deregister_script('autosave');
47
+	}
48 48
 
49
-    /**
50
-     * @return void
51
-     */
52
-    public function removeMetaBoxes()
53
-    {
54
-        remove_meta_box('slugdiv', Application::POST_TYPE, 'advanced');
55
-    }
49
+	/**
50
+	 * @return void
51
+	 */
52
+	public function removeMetaBoxes()
53
+	{
54
+		remove_meta_box('slugdiv', Application::POST_TYPE, 'advanced');
55
+	}
56 56
 
57
-    /**
58
-     * @return void
59
-     */
60
-    public function removePostTypeSupport()
61
-    {
62
-        if (!$this->isReviewEditor() || $this->isReviewEditable()) {
63
-            return;
64
-        }
65
-        remove_post_type_support(Application::POST_TYPE, 'title');
66
-        remove_post_type_support(Application::POST_TYPE, 'editor');
67
-    }
57
+	/**
58
+	 * @return void
59
+	 */
60
+	public function removePostTypeSupport()
61
+	{
62
+		if (!$this->isReviewEditor() || $this->isReviewEditable()) {
63
+			return;
64
+		}
65
+		remove_post_type_support(Application::POST_TYPE, 'title');
66
+		remove_post_type_support(Application::POST_TYPE, 'editor');
67
+	}
68 68
 
69
-    /**
70
-     * @return bool
71
-     */
72
-    protected function isReviewEditable()
73
-    {
74
-        $postId = intval(filter_input(INPUT_GET, 'post'));
75
-        return $postId > 0
76
-            && 'local' == glsr(Database::class)->get($postId, 'review_type')
77
-            && $this->isReviewEditor();
78
-    }
69
+	/**
70
+	 * @return bool
71
+	 */
72
+	protected function isReviewEditable()
73
+	{
74
+		$postId = intval(filter_input(INPUT_GET, 'post'));
75
+		return $postId > 0
76
+			&& 'local' == glsr(Database::class)->get($postId, 'review_type')
77
+			&& $this->isReviewEditor();
78
+	}
79 79
 
80
-    /**
81
-     * @return bool
82
-     */
83
-    protected function isReviewEditor()
84
-    {
85
-        $screen = glsr_current_screen();
86
-        return 'post' == $screen->base
87
-            && Application::POST_TYPE == $screen->id
88
-            && Application::POST_TYPE == $screen->post_type;
89
-    }
80
+	/**
81
+	 * @return bool
82
+	 */
83
+	protected function isReviewEditor()
84
+	{
85
+		$screen = glsr_current_screen();
86
+		return 'post' == $screen->base
87
+			&& Application::POST_TYPE == $screen->id
88
+			&& Application::POST_TYPE == $screen->post_type;
89
+	}
90 90
 }
Please login to merge, or discard this patch.
plugin/Controllers/ListTableController/Columns.php 1 patch
Indentation   +129 added lines, -129 removed lines patch added patch discarded remove patch
@@ -10,141 +10,141 @@
 block discarded – undo
10 10
 
11 11
 class Columns
12 12
 {
13
-    /**
14
-     * @param int $postId
15
-     * @return string
16
-     */
17
-    public function buildColumnAssignedTo($postId)
18
-    {
19
-        $assignedPost = glsr(Database::class)->getAssignedToPost($postId);
20
-        $column = '&mdash;';
21
-        if ($assignedPost instanceof WP_Post && 'publish' == $assignedPost->post_status) {
22
-            $column = glsr(Builder::class)->a(get_the_title($assignedPost->ID), [
23
-                'href' => (string) get_the_permalink($assignedPost->ID),
24
-            ]);
25
-        }
26
-        return $column;
27
-    }
13
+	/**
14
+	 * @param int $postId
15
+	 * @return string
16
+	 */
17
+	public function buildColumnAssignedTo($postId)
18
+	{
19
+		$assignedPost = glsr(Database::class)->getAssignedToPost($postId);
20
+		$column = '&mdash;';
21
+		if ($assignedPost instanceof WP_Post && 'publish' == $assignedPost->post_status) {
22
+			$column = glsr(Builder::class)->a(get_the_title($assignedPost->ID), [
23
+				'href' => (string) get_the_permalink($assignedPost->ID),
24
+			]);
25
+		}
26
+		return $column;
27
+	}
28 28
 
29
-    /**
30
-     * @param int $postId
31
-     * @return string
32
-     */
33
-    public function buildColumnPinned($postId)
34
-    {
35
-        $pinned = glsr(Database::class)->get($postId, 'pinned')
36
-            ? 'pinned '
37
-            : '';
38
-        return glsr(Builder::class)->i([
39
-            'class' => $pinned.'dashicons dashicons-sticky',
40
-            'data-id' => $postId,
41
-        ]);
42
-    }
29
+	/**
30
+	 * @param int $postId
31
+	 * @return string
32
+	 */
33
+	public function buildColumnPinned($postId)
34
+	{
35
+		$pinned = glsr(Database::class)->get($postId, 'pinned')
36
+			? 'pinned '
37
+			: '';
38
+		return glsr(Builder::class)->i([
39
+			'class' => $pinned.'dashicons dashicons-sticky',
40
+			'data-id' => $postId,
41
+		]);
42
+	}
43 43
 
44
-    /**
45
-     * @param int $postId
46
-     * @return string
47
-     */
48
-    public function buildColumnReviewer($postId)
49
-    {
50
-        return strval(glsr(Database::class)->get($postId, 'author'));
51
-    }
44
+	/**
45
+	 * @param int $postId
46
+	 * @return string
47
+	 */
48
+	public function buildColumnReviewer($postId)
49
+	{
50
+		return strval(glsr(Database::class)->get($postId, 'author'));
51
+	}
52 52
 
53
-    /**
54
-     * @param int $postId
55
-     * @param int|null $rating
56
-     * @return string
57
-     */
58
-    public function buildColumnRating($postId)
59
-    {
60
-        return glsr_star_rating(intval(glsr(Database::class)->get($postId, 'rating')));
61
-    }
53
+	/**
54
+	 * @param int $postId
55
+	 * @param int|null $rating
56
+	 * @return string
57
+	 */
58
+	public function buildColumnRating($postId)
59
+	{
60
+		return glsr_star_rating(intval(glsr(Database::class)->get($postId, 'rating')));
61
+	}
62 62
 
63
-    /**
64
-     * @param int $postId
65
-     * @return string
66
-     */
67
-    public function buildColumnReviewType($postId)
68
-    {
69
-        $type = glsr(Database::class)->get($postId, 'review_type');
70
-        return array_key_exists($type, glsr()->reviewTypes)
71
-            ? glsr()->reviewTypes[$type]
72
-            : __('Unsupported Type', 'site-reviews');
73
-    }
63
+	/**
64
+	 * @param int $postId
65
+	 * @return string
66
+	 */
67
+	public function buildColumnReviewType($postId)
68
+	{
69
+		$type = glsr(Database::class)->get($postId, 'review_type');
70
+		return array_key_exists($type, glsr()->reviewTypes)
71
+			? glsr()->reviewTypes[$type]
72
+			: __('Unsupported Type', 'site-reviews');
73
+	}
74 74
 
75
-    /**
76
-     * @param string $postType
77
-     * @return void
78
-     */
79
-    public function renderFilters($postType)
80
-    {
81
-        if (Application::POST_TYPE !== $postType) {
82
-            return;
83
-        }
84
-        if (!($status = filter_input(INPUT_GET, 'post_status'))) {
85
-            $status = 'publish';
86
-        }
87
-        $ratings = glsr(Database::class)->getReviewsMeta('rating', $status);
88
-        $types = glsr(Database::class)->getReviewsMeta('review_type', $status);
89
-        $this->renderFilterRatings($ratings);
90
-        $this->renderFilterTypes($types);
91
-    }
75
+	/**
76
+	 * @param string $postType
77
+	 * @return void
78
+	 */
79
+	public function renderFilters($postType)
80
+	{
81
+		if (Application::POST_TYPE !== $postType) {
82
+			return;
83
+		}
84
+		if (!($status = filter_input(INPUT_GET, 'post_status'))) {
85
+			$status = 'publish';
86
+		}
87
+		$ratings = glsr(Database::class)->getReviewsMeta('rating', $status);
88
+		$types = glsr(Database::class)->getReviewsMeta('review_type', $status);
89
+		$this->renderFilterRatings($ratings);
90
+		$this->renderFilterTypes($types);
91
+	}
92 92
 
93
-    /**
94
-     * @param string $column
95
-     * @param int $postId
96
-     * @return void
97
-     */
98
-    public function renderValues($column, $postId)
99
-    {
100
-        $method = glsr(Helper::class)->buildMethodName($column, 'buildColumn');
101
-        echo method_exists($this, $method)
102
-            ? call_user_func([$this, $method], $postId)
103
-            : apply_filters('site-reviews/columns/'.$column, '', $postId);
104
-    }
93
+	/**
94
+	 * @param string $column
95
+	 * @param int $postId
96
+	 * @return void
97
+	 */
98
+	public function renderValues($column, $postId)
99
+	{
100
+		$method = glsr(Helper::class)->buildMethodName($column, 'buildColumn');
101
+		echo method_exists($this, $method)
102
+			? call_user_func([$this, $method], $postId)
103
+			: apply_filters('site-reviews/columns/'.$column, '', $postId);
104
+	}
105 105
 
106
-    /**
107
-     * @param array $ratings
108
-     * @return void
109
-     */
110
-    protected function renderFilterRatings($ratings)
111
-    {
112
-        if (empty($ratings)) {
113
-            return;
114
-        }
115
-        $ratings = array_flip(array_reverse($ratings));
116
-        array_walk($ratings, function (&$value, $key) {
117
-            $label = _n('%s star', '%s stars', $key, 'site-reviews');
118
-            $value = sprintf($label, $key);
119
-        });
120
-        echo glsr(Builder::class)->label(__('Filter by rating', 'site-reviews'), [
121
-            'class' => 'screen-reader-text',
122
-            'for' => 'rating',
123
-        ]);
124
-        echo glsr(Builder::class)->select([
125
-            'name' => 'rating',
126
-            'options' => ['' => __('All ratings', 'site-reviews')] + $ratings,
127
-            'value' => filter_input(INPUT_GET, 'rating'),
128
-        ]);
129
-    }
106
+	/**
107
+	 * @param array $ratings
108
+	 * @return void
109
+	 */
110
+	protected function renderFilterRatings($ratings)
111
+	{
112
+		if (empty($ratings)) {
113
+			return;
114
+		}
115
+		$ratings = array_flip(array_reverse($ratings));
116
+		array_walk($ratings, function (&$value, $key) {
117
+			$label = _n('%s star', '%s stars', $key, 'site-reviews');
118
+			$value = sprintf($label, $key);
119
+		});
120
+		echo glsr(Builder::class)->label(__('Filter by rating', 'site-reviews'), [
121
+			'class' => 'screen-reader-text',
122
+			'for' => 'rating',
123
+		]);
124
+		echo glsr(Builder::class)->select([
125
+			'name' => 'rating',
126
+			'options' => ['' => __('All ratings', 'site-reviews')] + $ratings,
127
+			'value' => filter_input(INPUT_GET, 'rating'),
128
+		]);
129
+	}
130 130
 
131
-    /**
132
-     * @param array $types
133
-     * @return void
134
-     */
135
-    protected function renderFilterTypes($types)
136
-    {
137
-        if (count(glsr()->reviewTypes) < 2) {
138
-            return;
139
-        }
140
-        echo glsr(Builder::class)->label(__('Filter by type', 'site-reviews'), [
141
-            'class' => 'screen-reader-text',
142
-            'for' => 'review_type',
143
-        ]);
144
-        echo glsr(Builder::class)->select([
145
-            'name' => 'review_type',
146
-            'options' => ['' => __('All types', 'site-reviews')] + glsr()->reviewTypes,
147
-            'value' => filter_input(INPUT_GET, 'review_type'),
148
-        ]);
149
-    }
131
+	/**
132
+	 * @param array $types
133
+	 * @return void
134
+	 */
135
+	protected function renderFilterTypes($types)
136
+	{
137
+		if (count(glsr()->reviewTypes) < 2) {
138
+			return;
139
+		}
140
+		echo glsr(Builder::class)->label(__('Filter by type', 'site-reviews'), [
141
+			'class' => 'screen-reader-text',
142
+			'for' => 'review_type',
143
+		]);
144
+		echo glsr(Builder::class)->select([
145
+			'name' => 'review_type',
146
+			'options' => ['' => __('All types', 'site-reviews')] + glsr()->reviewTypes,
147
+			'value' => filter_input(INPUT_GET, 'review_type'),
148
+		]);
149
+	}
150 150
 }
Please login to merge, or discard this patch.