Passed
Push — master ( 8a0962...507d84 )
by Paul
03:52
created

SiteReviewsFormButton   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 84
Duplicated Lines 0 %

Test Coverage

Coverage 90.38%

Importance

Changes 0
Metric Value
eloc 58
dl 0
loc 84
ccs 47
cts 52
cp 0.9038
rs 10
c 0
b 0
f 0
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getTerms() 0 12 2
A fields() 0 61 1
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Shortcodes;
4
5
use GeminiLabs\SiteReviews\Database;
6
use GeminiLabs\SiteReviews\Shortcodes\ButtonGenerator;
7
8
class SiteReviewsFormButton extends ButtonGenerator
9
{
10
	/**
11
	 * @return array
12
	 */
13 1
	public function fields()
14
	{
15
		return [[
16 1
			'type' => 'container',
17 1
			'html' => '<p class="strong">'.esc_html__( 'All settings are optional.', 'site-reviews' ).'</p>',
18
		],[
19 1
			'label' => esc_html__( 'Title', 'site-reviews' ),
20 1
			'name' => 'title',
21 1
			'tooltip' => esc_attr__( 'Enter a custom shortcode heading.', 'site-reviews' ),
22 1
			'type' => 'textbox',
23
		],[
24 1
			'label' => esc_html__( 'Description', 'site-reviews' ),
25 1
			'minHeight' => 60,
26 1
			'minWidth' => 240,
27
			'multiline' => true,
28 1
			'name' => 'description',
29 1
			'tooltip' => esc_attr__( 'Enter a custom shortcode description.', 'site-reviews' ),
30 1
			'type' => 'textbox',
31
		],
32 1
		$this->getTerms(),
33
		[
34 1
			'label' => esc_html__( 'Post ID', 'site-reviews' ),
35 1
			'name' => 'assign_to',
36 1
			'tooltip' => esc_attr__( 'Assign submitted reviews to a custom page/post ID. You can also enter "post_id" to assign reviews to the ID of the current page.', 'site-reviews' ),
37 1
			'type' => 'textbox',
38
		],[
39 1
			'label' => esc_html__( 'Classes', 'site-reviews' ),
40 1
			'name' => 'class',
41 1
			'tooltip' => esc_attr__( 'Add custom CSS classes to the shortcode.', 'site-reviews' ),
42 1
			'type' => 'textbox',
43
		],[
44 1
			'columns' => 2,
45
			'items' => [[
46 1
				'name' => 'hide_email',
47 1
				'text' => esc_html__( 'Email', 'site-reviews' ),
48 1
				'tooltip' => esc_attr__( 'Hide the email field?', 'site-reviews' ),
49 1
				'type' => 'checkbox',
50
			],[
51 1
				'name' => 'hide_name',
52 1
				'text' => esc_html__( 'Name', 'site-reviews' ),
53 1
				'tooltip' => esc_attr__( 'Hide the name field?', 'site-reviews' ),
54 1
				'type' => 'checkbox',
55
			],[
56 1
				'name' => 'hide_terms',
57 1
				'text' => esc_html__( 'Terms', 'site-reviews' ),
58 1
				'tooltip' => esc_attr__( 'Hide the terms field?', 'site-reviews' ),
59 1
				'type' => 'checkbox',
60
			],[
61 1
				'name' => 'hide_title',
62 1
				'text' => esc_html__( 'Title', 'site-reviews' ),
63 1
				'tooltip' => esc_attr__( 'Hide the title field?', 'site-reviews' ),
64 1
				'type' => 'checkbox',
65
			]],
66 1
			'label' => esc_html__( 'Hide', 'site-reviews' ),
67 1
			'layout' => 'grid',
68 1
			'spacing' => 5,
69 1
			'type' => 'container',
70
		],[
71
			'hidden' => true,
72
			'name' => 'id',
73
			'type' => 'textbox',
74
		]];
75
	}
76
77
	/**
78
	 * @return array
79
	 */
80 1
	public function getTerms()
81
	{
82 1
		$terms = glsr( Database::class )->getTerms();
83 1
		if( empty( $terms )) {
84 1
			return [];
85
		}
86
		return [
87
			'label' => esc_html__( 'Category', 'site-reviews' ),
88
			'name' => 'category',
89
			'options' => $terms,
90
			'tooltip' => esc_attr__( 'Automatically assign a category to reviews submitted with this shortcode.', 'site-reviews' ),
91
			'type' => 'listbox',
92
		];
93
	}
94
}
95