/
index.php
118 lines (108 loc) · 2.89 KB
/
index.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
<?php
/**
* Output TreeView widget
*
* @var $this yii\web\View
*/
use dmstr\modules\pages\models\Tree;
use kartik\tree\TreeView;
use yii\helpers\Inflector;
$this->title = Inflector::titleize($this->context->module->id);
/**
* Wrapper templates
*/
$headerTemplate = <<< HTML
<div class="row">
<div class="col-sm-6" id="pages-detail-heading">
{heading}
</div>
<div class="col-sm-6" id="pages-detail-search">
{search}
</div>
</div>
HTML;
/**
* Links to settings and copy pages area for toolbar
*/
$copyPages = [
'icon' => 'copy',
'url' => (\Yii::$app->user->can(Tree::COPY_ACCESS_PERMISSION)) ? ['/pages/copy'] : null,
'options' => [
'title' => Yii::t('pages', 'Copy root nodes'),
'disabled' => (\Yii::$app->user->can(Tree::COPY_ACCESS_PERMISSION) ? false : true),
'class' => 'btn btn-success'
],
];
// check settings component and module existence
if (\Yii::$app->has('settings') && \Yii::$app->hasModule('settings')) {
// check module permissions
$settingPermission = false;
if (\Yii::$app->getModule('settings')->accessRoles === null) {
$settingPermission = true;
} else {
foreach (\Yii::$app->getModule('settings')->accessRoles as $role) {
$settingPermission = \Yii::$app->user->can($role);
}
}
$settings = [
'icon' => 'cogs',
'url' => ['/settings', 'SettingSearch' => ['section' => 'pages']],
'options' => [
'title' => Yii::t('pages', 'Settings'),
'disabled' => ! $settingPermission,
'class' => 'btn btn-info'
]
];
}
/**
* Additional toolbar elements
*/
$toolbar = [
TreeView::BTN_SEPARATOR,
TreeView::BTN_SEPARATOR,
TreeView::BTN_SEPARATOR,
'copy' => $copyPages,
TreeView::BTN_SEPARATOR,
'settings' => $settings,
];
$mainTemplate = <<< HTML
<div class="row">
<div class="col-md-4" id="pages-detail-wrapper">
<div class="box">
{wrapper}
</div>
</div>
<div class="col-md-8" id="pages-detail-panel">
{detail}
</div>
</div>
HTML;
/** @var Tree $queryTree */
$queryTree = Tree::find()
->where(
[
Tree::ATTR_ACCESS_DOMAIN => [
\Yii::$app->language,
(Yii::$app->user->can(Tree::GLOBAL_ACCESS_PERMISSION) ? Tree::GLOBAL_ACCESS_DOMAIN : '')
]
]
)
->orderBy('root, lft');
/**
* Render tree view
*/
echo TreeView::widget(
[
'query' => $queryTree,
'isAdmin' => true,
'softDelete' => false,
'displayValue' => 1,
'showTooltips' => false,
'wrapperTemplate' => '{header}{footer}{tree}',
'headingOptions' => ['label' => 'Nodes'],
'treeOptions' => ['style' => 'height:auto; min-height:400px'],
'headerTemplate' => $headerTemplate,
'mainTemplate' => $mainTemplate,
'toolbar' => $toolbar
]
);