-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathPlugin.php
133 lines (120 loc) · 3.82 KB
/
Plugin.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<?php namespace Hounddd\Reviews;
use Backend;
use Backend\Models\UserRole;
use System\Classes\PluginBase;
/**
* Reviews Plugin Information File
*/
class Plugin extends PluginBase
{
/**
* Returns information about this plugin.
*/
public function pluginDetails(): array
{
return [
'name' => 'hounddd.reviews::lang.plugin.name',
'description' => 'hounddd.reviews::lang.plugin.description',
'author' => 'Hounddd',
'icon' => 'icon-star-half-o'
];
}
/**
* Register method, called when the plugin is first registered.
*/
public function register(): void
{
}
/**
* Boot method, called right before the request route.
*/
public function boot(): void
{
}
/**
* Registers any frontend components implemented in this plugin.
*/
public function registerComponents(): array
{
return [
'Hounddd\Reviews\Components\Reviews' => 'reviews',
'Hounddd\Reviews\Components\ReviewsSlider' => 'reviewsSlider',
];
}
/**
* Registers frontend components as a snippet for Static Pages plugin.
*/
public function registerPageSnippets(): array
{
return [
'Hounddd\Reviews\Components\Reviews' => 'reviews',
];
}
/**
* Registers any backend permissions used by this plugin.
*/
public function registerPermissions(): array
{
return [
'hounddd.reviews.manage_reviews' => [
'tab' => 'hounddd.reviews::lang.plugin.name',
'label' => 'hounddd.reviews::lang.permissions.manage_reviews',
'roles' => [UserRole::CODE_DEVELOPER, UserRole::CODE_PUBLISHER],
],
'hounddd.reviews.manage_categories' => [
'tab' => 'hounddd.reviews::lang.plugin.name',
'label' => 'hounddd.reviews::lang.permissions.manage_categories',
'roles' => [UserRole::CODE_DEVELOPER, UserRole::CODE_PUBLISHER],
],
];
}
/**
* Registers backend navigation items for this plugin.
*/
public function registerNavigation(): array
{
return [
'reviews' => [
'label' => 'hounddd.reviews::lang.plugin.name',
'url' => Backend::url('hounddd/reviews/reviews'),
'icon' => 'icon-star-half-o',
'permissions' => ['hounddd.reviews.*'],
'order' => 500,
'sideMenu' => [
'reviews' => [
'label' => 'hounddd.reviews::lang.models.review.label_plural',
'url' => Backend::url('hounddd/reviews/reviews'),
'icon' => 'icon-star-half-o',
'permissions' => ['hounddd.reviews.manage_reviews'],
'order' => 100,
],
'categories' => [
'label' => 'hounddd.reviews::lang.models.category.label_plural',
'url' => Backend::url('hounddd/reviews/categories'),
'icon' => 'icon-list-ul',
'permissions' => ['hounddd.reviews.manage_categories'],
'order' => 200,
],
],
],
];
}
/**
* Register backend form widgets
*/
public function registerFormWidgets(): array
{
return [
'Hounddd\Reviews\FormWidgets\StarRating' => 'starrating',
];
}
/**
* Register custom list column types
*/
public function registerListColumnTypes(): array
{
return [
'starrating' => function($value) { return str_repeat('★', $value); }
];
}
}