-
Notifications
You must be signed in to change notification settings - Fork 1
/
Plugin.php
106 lines (96 loc) · 3.38 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
<?php namespace JaxWilko\Hugo;
use Backend;
use Backend\Models\UserRole;
use System\Classes\PluginBase;
/**
* Hugo Plugin Information File
*/
class Plugin extends PluginBase
{
/**
* Returns information about this plugin.
*/
public function pluginDetails(): array
{
return [
'name' => 'jaxwilko.hugo::lang.plugin.name',
'description' => 'jaxwilko.hugo::lang.plugin.description',
'author' => 'JaxWilko',
'icon' => 'plugins/jaxwilko/hugo/assets/img/hugo.svg'
];
}
/**
* Register method, called when the plugin is first registered.
*/
public function register(): void
{
$this->registerConsoleCommand('hugo.lighthouse', \JaxWilko\Hugo\Console\HugoLighthouse::class);
$this->registerConsoleCommand('hugo.health', \JaxWilko\Hugo\Console\HugoHealth::class);
$this->registerConsoleCommand('hugo.script', \JaxWilko\Hugo\Console\HugoScript::class);
$this->registerConsoleCommand('hugo.clear', \JaxWilko\Hugo\Console\HugoClear::class);
if (env('HUGO_EXPERIMENTAL')) {
$this->registerConsoleCommand('hugo.script', \JaxWilko\Hugo\Console\HugoScript::class);
$this->registerConsoleCommand('hugo.engine.gen', \JaxWilko\Hugo\Console\GenerateEngineInterface::class);
}
}
public function registerFormWidgets()
{
return [
\JaxWilko\Hugo\FormWidgets\LighthouseResults::class => 'lighthouseresults'
];
}
public function registerMailLayouts()
{
return [
'hugo' => 'jaxwilko.hugo::mail.layout-default',
];
}
public function registerPermissions(): array
{
return [
'jaxwilko.hugo.sites' => [
'tab' => 'Hugo',
'label' => 'Access sites',
'roles' => [UserRole::CODE_DEVELOPER, UserRole::CODE_PUBLISHER],
],
'jaxwilko.hugo.scripts' => [
'tab' => 'Hugo',
'label' => 'Access scripts',
'roles' => [UserRole::CODE_DEVELOPER, UserRole::CODE_PUBLISHER],
],
];
}
/**
* Registers backend navigation items for this plugin.
*/
public function registerNavigation(): array
{
$menu = [
'hugo' => [
'label' => 'jaxwilko.hugo::lang.plugin.name',
'url' => Backend::url('jaxwilko/hugo/sites'),
'icon' => 'icon-leaf',
'iconSvg' => 'plugins/jaxwilko/hugo/assets/img/hugo.svg',
'permissions' => ['jaxwilko.hugo.*'],
'order' => 500,
'sideMenu' => [
'sites' => [
'label' => 'Sites',
'icon' => 'icon-cubes',
'url' => Backend::url('jaxwilko/hugo/sites'),
'permissions' => ['jaxwilko.hugo.sites']
],
]
],
];
if (env('HUGO_EXPERIMENTAL')) {
$menu['hugo']['sideMenu']['scripts'] = [
'label' => 'Scripts',
'icon' => 'icon-code',
'url' => Backend::url('jaxwilko/hugo/scripts'),
'permissions' => ['jaxwilko.hugo.scripts']
];
}
return $menu;
}
}