Completed
Push — master ( 635289...c7fa2e )
by Alexey
03:05
created

RbacMenu::items()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 26
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 26
rs 8.8571
c 0
b 0
f 0
eloc 13
nc 1
nop 0
cc 1
1
<?php
2
3
namespace modules\rbac\widgets;
4
5
use yii\bootstrap\Widget;
6
use yii\widgets\Menu;
7
use modules\rbac\Module;
8
9
/**
10
 * Class RbacMenu
11
 * @package modules\rbac\widgets
12
 */
13
class RbacMenu extends Widget
14
{
15
    /**
16
     * @inheritdoc
17
     */
18
    public function init()
19
    {
20
        parent::init();
21
        $this->registerAssets();
22
    }
23
24
    /**
25
     * @return string|void
26
     * @throws \Exception
27
     */
28
    public function run()
29
    {
30
        echo Menu::widget([
31
            'options' => ['class' => 'nav nav-pills nav-stacked rbac-menu'],
32
            'activateItems' => true,
33
            'activateParents' => true,
34
            'encodeLabels' => false,
35
            'submenuTemplate' => "\n<ul class='nav sub-menu'>\n{items}\n</ul>\n",
36
            'items' => array_filter($this->items()),
37
        ]);
38
    }
39
40
    /**
41
     * @return array
42
     */
43
    public function items()
44
    {
45
        return [
46
            [
47
                'label' => Module::t('module', 'Permissions'),
48
                'url' => ['permissions/index'],
49
                'items' => [
50
                    [
51
                        'label' => Module::t('module', 'New Permission'),
52
                        'url' => ['permissions/create'],
53
                    ],
54
                ],
55
            ],
56
            [
57
                'label' => Module::t('module', 'Roles'),
58
                'url' => ['roles/index'],
59
                'items' => [
60
                    [
61
                        'label' => Module::t('module', 'New Role'),
62
                        'url' => ['roles/create'],
63
                    ],
64
                ],
65
            ],
66
            [
67
                'label' => Module::t('module', 'Assign rights'),
68
                'url' => ['assign/index'],
69
            ],
70
        ];
71
    }
72
73
    /**
74
     * Register resource
75
     */
76
    protected function registerAssets()
77
    {
78
        $view = $this->view;
79
        RbacMenuAsset::register($view);
80
    }
81
}
82