Test Failed
Push — develop ( 1707fa...c6b569 )
by Paul
07:52
created

SiteReviewsWidget   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 67
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 2
eloc 50
c 0
b 0
f 0
dl 0
loc 67
ccs 0
cts 57
cp 0
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A shortcode() 0 3 1
A widgetConfig() 0 60 1
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Widgets;
4
5
use GeminiLabs\SiteReviews\Contracts\ShortcodeContract;
6
use GeminiLabs\SiteReviews\Helpers\Cast;
7
use GeminiLabs\SiteReviews\Modules\Rating;
8
use GeminiLabs\SiteReviews\Shortcodes\SiteReviewsShortcode;
9
10
class SiteReviewsWidget extends Widget
11
{
12
    protected function shortcode(): ShortcodeContract
13
    {
14
        return glsr(SiteReviewsShortcode::class);
15
    }
16
17
    protected function widgetConfig(): array
18
    {
19
        return [
20
            'assigned_posts' => [
21
                'label' => esc_html_x('Limit Reviews by Assigned Pages', 'admin-text', 'site-reviews'),
22
                'description' => esc_html_x('Enter "post_id" to use the Post ID of the current page.', 'admin-text', 'site-reviews'),
23
                'type' => 'text',
24
            ],
25
            'assigned_users' => [
26
                'label' => esc_html_x('Limit Reviews by Assigned Users', 'admin-text', 'site-reviews'),
27
                'description' => esc_html_x('Enter "user_id" to use the ID of the logged-in user.', 'admin-text', 'site-reviews'),
28
                'type' => 'text',
29
            ],
30
            'assigned_terms' => [
31
                'label' => esc_html_x('Limit Reviews by Categories', 'admin-text', 'site-reviews'),
32
                'options' => $this->fieldAssignedTermsOptions(),
33
                'type' => 'select',
34
            ],
35
            'terms' => [
36
                'label' => esc_html_x('Limit Reviews by Accepted Terms', 'admin-text', 'site-reviews'),
37
                'options' => [
38
                    '' => esc_html_x('— Select —', 'admin-text', 'site-reviews'),
39
                    'true' => esc_html_x('Terms were accepted', 'admin-text', 'site-reviews'),
40
                    'false' => esc_html_x('Terms were not accepted', 'admin-text', 'site-reviews'),
41
                ],
42
                'type' => 'select',
43
            ],
44
            'type' => [
45
                'label' => esc_html_x('Limit Reviews by Type', 'admin-text', 'site-reviews'),
46
                'options' => $this->fieldTypeOptions(),
47
                'type' => 'select',
48
                'value' => 'local',
49
            ],
50
            'display' => [
51
                'label' => esc_html_x('The number of reviews to show', 'admin-text', 'site-reviews'),
52
                'max' => 50,
53
                'min' => 1,
54
                'type' => 'number',
55
                'value' => 10,
56
            ],
57
            'rating' => [
58
                'label' => esc_html_x('The minimum rating to display', 'admin-text', 'site-reviews'),
59
                'max' => Cast::toInt(glsr()->constant('MAX_RATING', Rating::class)),
60
                'min' => Cast::toInt(glsr()->constant('MIN_RATING', Rating::class)),
61
                'type' => 'number',
62
                'value' => 0,
63
            ],
64
            'hide' => [
65
                'options' => $this->shortcode()->getHideOptions(),
66
                'type' => 'checkbox',
67
            ],
68
            'id' => [
69
                'label' => esc_html_x('Custom ID', 'admin-text', 'site-reviews'),
70
                'description' => esc_html_x('This should be a unique value.', 'admin-text', 'site-reviews'),
71
                'type' => 'text',
72
            ],
73
            'class' => [
74
                'label' => esc_html_x('Additional CSS classes', 'admin-text', 'site-reviews'),
75
                'description' => esc_html_x('Separate multiple classes with spaces.', 'admin-text', 'site-reviews'),
76
                'type' => 'text',
77
            ],
78
        ];
79
    }
80
}
81