Passed
Push — develop ( c34e50...445d6d )
by Paul
06:42
created

SiteReviewsSummaryTinymce   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 88
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 2
eloc 56
dl 0
loc 88
ccs 0
cts 82
cp 0
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A fields() 0 79 1
A shortcode() 0 3 1
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Tinymce;
4
5
use GeminiLabs\SiteReviews\Contracts\ShortcodeContract;
6
use GeminiLabs\SiteReviews\Modules\Rating;
7
use GeminiLabs\SiteReviews\Shortcodes\SiteReviewsSummaryShortcode;
8
9
class SiteReviewsSummaryTinymce extends TinymceGenerator
10
{
11
    public function fields(): array
12
    {
13
        return [
14
            [
15
                'label' => esc_html_x('Assigned Pages', 'admin-text', 'site-reviews'),
16
                'name' => 'assigned_posts',
17
                'tooltip' => sprintf(esc_html_x('Limit reviews to those assigned to a Post ID. You may also enter %s to use the Post ID of the current page.', 'admin-text', 'site-reviews'), '"post_id"'),
18
                'type' => 'textbox',
19
            ],
20
            [
21
                'label' => esc_html_x('Assigned Categories', 'admin-text', 'site-reviews'),
22
                'name' => 'assigned_terms',
23
                'tooltip' => esc_html_x('Limit reviews to those assigned to a category. You may enter a Term ID or slug.', 'admin-text', 'site-reviews'),
24
                'type' => 'textbox',
25
            ],
26
            [
27
                'label' => esc_html_x('Assigned Users', 'admin-text', 'site-reviews'),
28
                'name' => 'assigned_users',
29
                'tooltip' => sprintf(esc_html_x('Limit reviews to those assigned to a User ID. You may also enter %s to use the ID of the logged-in user.', 'admin-text', 'site-reviews'), '"user_id"'),
30
                'type' => 'textbox',
31
            ],
32
            [
33
                'label' => esc_html_x('Terms Accepted', 'admin-text', 'site-reviews'),
34
                'name' => 'terms',
35
                'options' => $this->shortcode->options('terms'),
36
                'tooltip' => esc_html_x('Limit Reviews by Accepted Terms', 'admin-text', 'site-reviews'),
37
                'type' => 'listbox',
38
            ],
39
            [
40
                'label' => esc_html_x('Review Type', 'admin-text', 'site-reviews'),
41
                'name' => 'type',
42
                'options' => $this->shortcode->options('type'),
43
                'tooltip' => esc_html_x('Limit Reviews by review type', 'admin-text', 'site-reviews'),
44
                'type' => 'listbox',
45
            ],
46
            [
47
                'label' => esc_html_x('Minimum Rating', 'admin-text', 'site-reviews'),
48
                'name' => 'rating',
49
                'options' => glsr(Rating::class)->optionsArray(),
50
                'tooltip' => esc_html_x('The minimum rating to display (default: 1 star)?', 'admin-text', 'site-reviews'),
51
                'type' => 'listbox',
52
            ],
53
            [
54
                'label' => esc_html_x('Rating Field Name', 'admin-text', 'site-reviews'),
55
                'name' => 'rating_field',
56
                'tooltip' => sprintf(esc_html_x('Use the %s addon to add custom rating fields.', 'admin-text', 'site-reviews'),
57
                    sprintf('"%s"', _x('Review Forms', 'addon name (admin-text)', 'site-reviews'))
58
                ),
59
                'type' => 'textbox',
60
            ],
61
            [
62
                'label' => esc_html_x('Schema', 'admin-text', 'site-reviews'),
63
                'name' => 'schema',
64
                'options' => [
65
                    '' => esc_html_x('Disabled', 'admin-text', 'site-reviews'),
66
                    'true' => esc_html_x('Enabled', 'admin-text', 'site-reviews'),
67
                ],
68
                'tooltip' => esc_html_x('Rich snippets are disabled by default.', 'admin-text', 'site-reviews'),
69
                'type' => 'listbox',
70
            ],
71
            [
72
                'columns' => 2,
73
                'items' => $this->hideOptions(),
74
                'label' => esc_html_x('Hide', 'admin-text', 'site-reviews'),
75
                'layout' => 'grid',
76
                'spacing' => 5,
77
                'type' => 'container',
78
            ],
79
            [
80
                'label' => esc_html_x('Custom ID', 'admin-text', 'site-reviews'),
81
                'name' => 'id',
82
                'tooltip' => esc_html_x('This should be a unique value.', 'admin-text', 'site-reviews'),
83
                'type' => 'textbox',
84
            ],
85
            [
86
                'label' => esc_html_x('Additional CSS classes', 'admin-text', 'site-reviews'),
87
                'name' => 'class',
88
                'tooltip' => esc_html_x('Separate multiple classes with spaces.', 'admin-text', 'site-reviews'),
89
                'type' => 'textbox',
90
            ],
91
        ];
92
    }
93
94
    public function shortcode(): ShortcodeContract
95
    {
96
        return glsr(SiteReviewsSummaryShortcode::class);
1 ignored issue
show
Bug Best Practice introduced by
The expression return glsr(GeminiLabs\S...ummaryShortcode::class) could return the type callable which is incompatible with the type-hinted return GeminiLabs\SiteReviews\Contracts\ShortcodeContract. Consider adding an additional type-check to rule them out.
Loading history...
97
    }
98
}
99