Test Failed
Push — develop ( c6b569...7a7654 )
by Paul
09:40
created

SiteReviewShortcode::hideOptions()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 10
dl 0
loc 12
ccs 0
cts 0
cp 0
rs 9.9332
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 2
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Shortcodes;
4
5
use GeminiLabs\SiteReviews\Database\ReviewManager;
6
use GeminiLabs\SiteReviews\Modules\Html\ReviewsHtml;
7
use GeminiLabs\SiteReviews\Reviews;
8
9
class SiteReviewShortcode extends Shortcode
10
{
11
    public function buildTemplate(): string
12
    {
13
        $review = glsr(ReviewManager::class)->get($this->args['post_id']);
14
        $this->debug(['review' => $review]);
15
        if ($review->isValid()) {
16
            $reviews = new Reviews([$review], 1, $this->args);
17
            glsr()->action('get/reviews', $reviews, $this->args);
18
            if ('modal' === glsr_get_option('reviews.excerpts_action')) {
19
                glsr()->store('use_modal', true);
20
            }
21
        } else {
22
            $reviews = new Reviews([], 0, $this->args);
23
        }
24
        $html = new ReviewsHtml($reviews);
25
        return (string) $html;
26
    }
27
28 8
    protected function config(): array
29
    {
30 8
        return [
31 8
            'post_id' => [
32 8
                'label' => esc_attr_x('Review Post ID', 'admin-text', 'site-reviews'),
33 8
                'description' => esc_html_x('Select the review you want to display.', 'admin-text', 'site-reviews'),
34 8
                'placeholder' => esc_html_x('Select a review...', 'admin-text', 'site-reviews'),
35 8
                'type' => 'select',
36 8
            ],
37 8
            'hide' => [
38 8
                'group' => 'hide',
39 8
                'options' => $this->getHideOptions(),
40 8
                'type' => 'checkbox',
41
            ],
42
            'id' => [
43
                'description' => esc_html_x('This should be a unique value.', 'admin-text', 'site-reviews'),
44
                'group' => 'advanced',
45
                'label' => esc_html_x('Custom ID', 'admin-text', 'site-reviews'),
46
                'type' => 'text',
47
            ],
48
            'class' => [
49
                'description' => esc_html_x('Separate multiple classes with spaces.', 'admin-text', 'site-reviews'),
50
                'group' => 'advanced',
51
                'label' => esc_html_x('Additional CSS classes', 'admin-text', 'site-reviews'),
52
                'type' => 'text',
53
            ],
54
        ];
55
    }
56
57
    protected function hideOptions(): array
58
    {
59
        return [ // order is intentional
60
            'title' => _x('Hide the title', 'admin-text', 'site-reviews'),
61
            'rating' => _x('Hide the rating', 'admin-text', 'site-reviews'),
62
            'date' => _x('Hide the date', 'admin-text', 'site-reviews'),
63
            'assigned_links' => _x('Hide the assigned links (if shown)', 'admin-text', 'site-reviews'),
64
            'content' => _x('Hide the content', 'admin-text', 'site-reviews'),
65
            'avatar' => _x('Hide the avatar (if shown)', 'admin-text', 'site-reviews'),
66
            'author' => _x('Hide the author', 'admin-text', 'site-reviews'),
67
            'verified' => _x('Hide the verified badge', 'admin-text', 'site-reviews'),
68
            'response' => _x('Hide the response', 'admin-text', 'site-reviews'),
69
        ];
70
    }
71
72
    protected function shortcodeDescription(): string
73
    {
74
        return esc_html_x('Display a single review', 'admin-text', 'site-reviews');
75
    }
76
77
    protected function shortcodeName(): string
78
    {
79
        return esc_html_x('Single Review', 'admin-text', 'site-reviews');
80
    }
81
}
82