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

SiteReviewsFormWidget::widgetName()   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\SiteReviewsFormShortcode;
8
9
class SiteReviewsFormWidget 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
        $this->renderField('textarea', [
24
            'label' => _x('Description', 'admin-text', 'site-reviews'),
25
            'name' => 'description',
26
        ]);
27
        if (!empty($terms)) {
28
            $this->renderField('select', [
29
                'label' => _x('Automatically assign a category', 'admin-text', 'site-reviews'),
30
                'name' => 'assigned_terms',
31
                'options' => Arr::prepend($terms, _x('Do not assign a category', 'admin-text', 'site-reviews'), ''),
32
            ]);
33
        }
34
        $this->renderField('text', [
35
            'default' => '',
36
            '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>'),
37
            'label' => _x('Automatically assign reviews to a Post ID', 'admin-text', 'site-reviews'),
38
            'name' => 'assigned_posts',
39
        ]);
40
        $this->renderField('text', [
41
            'default' => '',
42
            '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>'),
43
            'label' => _x('Automatically assign reviews to a User ID', 'admin-text', 'site-reviews'),
44
            'name' => 'assigned_users',
45
        ]);
46
        $this->renderField('text', [
47
            'label' => _x('Enter any custom CSS classes here', 'admin-text', 'site-reviews'),
48
            'name' => 'class',
49
        ]);
50
        $this->renderField('checkbox', [
51
            'name' => 'hide',
52
            'options' => $this->shortcode()->getHideOptions(),
53
        ]);
54
        return ''; // WP_Widget::form should return a string
55
    }
56
57
    /**
58
     * {@inheritdoc}
59
     */
60
    protected function shortcode()
61
    {
62
        return glsr(SiteReviewsFormShortcode::class);
63
    }
64
65
    /**
66
     * {@inheritdoc}
67
     */
68
    protected function widgetDescription()
69
    {
70
        return _x('Site Reviews: Display a form to submit reviews.', 'admin-text', 'site-reviews');
71
    }
72
73
    /**
74
     * {@inheritdoc}
75
     */
76
    protected function widgetName()
77
    {
78
        return _x('Submit a Review', 'admin-text', 'site-reviews');
79
    }
80
}
81