Passed
Push — master ( b7f7ee...5ac66d )
by Paul
15:27 queued 07:36
created

SiteReviewsSummaryWidget::widgetDescription()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
ccs 0
cts 2
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 2
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Widgets;
4
5
use GeminiLabs\SiteReviews\Database;
6
use GeminiLabs\SiteReviews\Helpers\Arr;
7
use GeminiLabs\SiteReviews\Shortcodes\SiteReviewsSummaryShortcode;
8
9
class SiteReviewsSummaryWidget extends Widget
10
{
11
    /**
12
     * @param array $instance
13
     * @return string
14
     */
15
    public function form($instance)
16
    {
17
        $this->widgetArgs = $this->shortcode()->normalizeAtts($instance)->toArray();
18
        $terms = glsr(Database::class)->terms();
19
        $this->renderField('text', [
20
            'label' => _x('Title', 'admin-text', 'site-reviews'),
21
            'name' => 'title',
22
        ]);
23
        if (count($reviewTypes = glsr()->retrieveAs('array', 'review_types')) > 1) {
24
            $this->renderField('select', [
25
                'label' => _x('Which type of review would you like to use?', 'admin-text', 'site-reviews'),
26
                'name' => 'type',
27
                'options' => Arr::prepend($reviewTypes, _x('All review types', 'admin-text', 'site-reviews'), ''),
28
            ]);
29
        }
30
        if (!empty($terms)) {
31
            $this->renderField('select', [
32
                'label' => _x('Limit summary to this category', 'admin-text', 'site-reviews'),
33
                'name' => 'assigned_terms',
34
                'options' => Arr::prepend($terms, _x('Do not assign a category', 'admin-text', 'site-reviews'), ''),
35
            ]);
36
        }
37
        $this->renderField('text', [
38
            'default' => '',
39
            'description' => sprintf(_x("You may also enter %s to use the Post ID of the current page.", 'admin-text', 'site-reviews'), '<code>post_id</code>'),
40
            'label' => _x('Limit summary to reviews assigned to a Post ID', 'admin-text', 'site-reviews'),
41
            'name' => 'assigned_posts',
42
        ]);
43
        $this->renderField('text', [
44
            'default' => '',
45
            'description' => sprintf(esc_html_x("You may also enter %s to use the ID of the logged-in user.", 'admin-text', 'site-reviews'), '<code>user_id</code>'),
46
            'label' => _x('Limit summary to reviews assigned to a User ID', 'admin-text', 'site-reviews'),
47
            'name' => 'assigned_users',
48
        ]);
49
        $this->renderField('text', [
50
            'label' => _x('Enter any custom CSS classes here', 'admin-text', 'site-reviews'),
51
            'name' => 'class',
52
        ]);
53
        $this->renderField('checkbox', [
54
            'name' => 'hide',
55
            'options' => $this->shortcode()->getHideOptions(),
56
        ]);
57
        return ''; // WP_Widget::form should return a string
58
    }
59
60
    /**
61
     * {@inheritdoc}
62
     */
63
    protected function shortcode()
64
    {
65
        return glsr(SiteReviewsSummaryShortcode::class);
66
    }
67
68
    /**
69
     * {@inheritdoc}
70
     */
71
    protected function widgetDescription()
72
    {
73
        return _x('Site Reviews: Display a summary of your reviews.', 'admin-text', 'site-reviews');
74
    }
75
76
    /**
77
     * {@inheritdoc}
78
     */
79
    protected function widgetName()
80
    {
81
        return _x('Summary of Reviews', 'admin-text', 'site-reviews');
82
    }
83
}
84