Browse Source

Admin menu fix

master
Egorka 6 years ago
parent
commit
ec14ba429c
  1. 264
      backend/views/layouts/left.php
  2. 80
      common/bootstrap/SetUp.php

264
backend/views/layouts/left.php

@ -15,7 +15,8 @@ $model = new SearchForm();
<!-- Sidebar user panel --> <!-- Sidebar user panel -->
<div class="user-panel"> <div class="user-panel">
<div class="pull-left image"> <div class="pull-left image">
<img src="<?= Yii::$app->avatar->show(Yii::$app->user->identity->user->username) ?>" class="img-circle" alt="<?= Yii::$app->user->identity->user->username ?>"/> <img src="<?= Yii::$app->avatar->show(Yii::$app->user->identity->user->username) ?>" class="img-circle"
alt="<?= Yii::$app->user->identity->user->username ?>"/>
</div> </div>
<div class="pull-left info"> <div class="pull-left info">
<p><?= Yii::$app->user->identity->user->username ?></p> <p><?= Yii::$app->user->identity->user->username ?></p>
@ -24,102 +25,183 @@ $model = new SearchForm();
</div> </div>
</div> </div>
<!-- search form --> <!-- search form -->
<?php $form = ActiveForm::begin([ <?php $form = ActiveForm::begin([
'action' => \yii\helpers\Url::to(['/site/search']), 'action' => \yii\helpers\Url::to(['/site/search']),
'options' => [ 'options' => [
'class' => 'sidebar-form' 'class' => 'sidebar-form'
], ],
'enableClientValidation' => false, 'enableClientValidation' => false,
'fieldConfig' => [ 'fieldConfig' => [
'options' => [ 'options' => [
'tag' => false, 'tag' => false,
], ],
], ],
]); ?> ]); ?>
<?= $form->field($model, 'query', [ <?= $form->field($model, 'query', [
'addon' => [ 'addon' => [
'append' => [ 'append' => [
'content' => Html::button('<i class="fa fa-search"></i>', ['class'=>'btn btn-flat', 'id' => 'search-btn']), 'content' => Html::button('<i class="fa fa-search"></i>', ['class' => 'btn btn-flat', 'id' => 'search-btn']),
'asButton' => true 'asButton' => true
] ]
], ],
'template' => "{input}", 'template' => "{input}",
])->textInput(['placeholder' => Yii::t('main', 'Search...')])->label(false)->hint(false); ?> ])->textInput(['placeholder' => Yii::t('main', 'Search...')])->label(false)->hint(false); ?>
<?php ActiveForm::end(); ?> <?php ActiveForm::end(); ?>
<!-- /.search form --> <!-- /.search form -->
<?= dmstr\widgets\Menu::widget( <?= dmstr\widgets\Menu::widget(
[ [
'options' => ['class' => 'sidebar-menu tree', 'data-widget'=> 'tree'], 'options' => ['class' => 'sidebar-menu tree', 'data-widget' => 'tree'],
'items' => \yii\helpers\ArrayHelper::merge([ 'items' => \yii\helpers\ArrayHelper::merge([
['label' => Yii::t('main', 'Menu'), 'options' => ['class' => 'header']], ['label' => Yii::t('main', 'Menu'), 'options' => ['class' => 'header']],
[ [
'label' => Yii::t('dashboard', 'Dashboard'), 'label' => Yii::t('dashboard', 'Dashboard'),
'icon' => 'dashboard', 'icon' => 'dashboard',
'url' => ['/site/index'], 'url' => ['/site/index'],
'active' => $this->context->id == '/site/index'], 'active' => $this->context->id == '/site/index'
],
[
'label' => Yii::t('user', 'Users'), [
'icon' => 'user', 'label' => Yii::t('user', 'Users'),
'url' => ['/user/index'], 'icon' => 'user',
'active' => $this->context->id == 'user', 'url' => ['/user/index'],
'visible' => \Yii::$app->user->can('admin') || \Yii::$app->user->can('UserManagement'), 'active' => $this->context->id == 'user',
], 'visible' => \Yii::$app->user->can('admin') || \Yii::$app->user->can('UserManagement'),
],
['label' => Yii::t('user', 'Access Rules'), 'icon' => 'lock', 'items' => [
['label' => Yii::t('user', 'Roles'), 'icon' => 'caret-right', 'url' => ['/role/index'], 'active' => \Yii::$app->controller->getUniqueId() == 'role'], [
['label' => Yii::t('user', 'Permissions'), 'icon' => 'caret-right', 'url' => ['/permission/index'], 'active' => \Yii::$app->controller->getUniqueId() == 'permission'], 'label' => Yii::t('user', 'Access Rules'),
], 'visible' => \Yii::$app->user->can('admin') || \Yii::$app->user->can('UserManagement')], 'icon' => 'lock',
'items' => [
[ [
'label' => Yii::t('menu', 'Menu'), 'label' => Yii::t('user', 'Roles'),
'icon' => 'bars', 'url' => ['/menu/index'], 'icon' => 'caret-right',
'active' => $this->context->id == 'menu', 'url' => ['/role/index'],
'visible' => \Yii::$app->user->can('admin') || \Yii::$app->user->can('MenuManagement'), 'active' => \Yii::$app->controller->getUniqueId() == 'role'
], ],
[
['label' => Yii::t('main', 'Modules'), 'icon' => 'cubes', 'items' => [ 'label' => Yii::t('user', 'Permissions'),
['label' => Yii::t('main', 'Modules'), 'icon' => 'caret-right', 'url' => ['/module/list'], 'active' => \Yii::$app->controller->action->getUniqueId() == 'module/list'], 'icon' => 'caret-right',
['label' => Yii::t('main', 'Find modules'), 'icon' => 'caret-right', 'url' => ['/module/search'], 'active' => \Yii::$app->controller->action->getUniqueId() == 'module/search'], 'url' => ['/permission/index'],
], 'visible' => \Yii::$app->user->can('admin') || \Yii::$app->user->can('ModuleManagement')], 'active' => \Yii::$app->controller->getUniqueId() == 'permission'
],
/*[ ],
'label' => Yii::t('pages', 'Pages'), 'visible' => \Yii::$app->user->can('admin') || \Yii::$app->user->can('UserManagement')
'icon' => 'file-o', 'url' => ['/page/index'], ],
'active' => $this->context->id == 'page',
'visible' => \Yii::$app->user->can('admin') || \Yii::$app->user->can('PagesManagement'), [
],*/ 'label' => Yii::t('menu', 'Menu'),
'icon' => 'bars',
['label' => Yii::t('post', 'Posts'), 'icon' => 'newspaper-o', 'items' => array_merge( 'url' => ['/menu/index'],
array_map(function(\core\entities\post\PostType $type) { 'active' => $this->context->id == 'menu',
return ['label' => $type->plural, 'icon' => 'caret-right', 'items' => [ 'visible' => \Yii::$app->user->can('admin') || \Yii::$app->user->can('MenuManagement'),
['label' => Yii::t('post', 'Categories'), 'icon' => 'caret-right', 'url' => ['/post/category', 'tid' => $type->id], 'active' => \Yii::$app->controller->getUniqueId() == 'post/category' && \Yii::$app->request->get('tid') == $type->id], ],
['label' => $type->plural, 'icon' => 'caret-right', 'url' => ['/post/post', 'tid' => $type->id], 'active' => \Yii::$app->controller->getUniqueId() == 'post/post' && \Yii::$app->request->get('tid') == $type->id],
['label' => Yii::t('post', 'Tags'), 'icon' => 'caret-right', 'url' => ['/post/tag', 'tid' => $type->id], 'active' => \Yii::$app->controller->getUniqueId() == 'post/tag' && \Yii::$app->request->get('tid') == $type->id], [
]]; 'label' => Yii::t('main', 'Modules'),
}, \core\entities\post\PostType::find()->all()), 'icon' => 'cubes',
[['label' => Yii::t('post', 'Comments'), 'icon' => 'caret-right', 'url' => ['/post/comment'], 'active' => \Yii::$app->controller->getUniqueId() == 'post/comment']], 'items' => [
[['label' => Yii::t('post', 'Types'), 'icon' => 'caret-right', 'url' => ['/post/type'], 'active' => \Yii::$app->controller->getUniqueId() == 'post/type']] [
), 'visible' => \Yii::$app->user->can('admin') || \Yii::$app->user->can('PostManagement')], 'label' => Yii::t('main', 'Modules'),
'icon' => 'caret-right',
[ 'url' => ['/module/list'],
'label' => Yii::t('slider', 'Slider'), 'active' => \Yii::$app->controller->action->getUniqueId() == 'module/list'
'icon' => 'retweet', 'url' => ['/slider/index'], ],
'active' => $this->context->id == 'slider', [
'visible' => \Yii::$app->user->can('admin') || \Yii::$app->user->can('SliderManagement'), 'label' => Yii::t('main', 'Find modules'),
], 'icon' => 'caret-right',
'url' => ['/module/search'],
['label' => Yii::t('main', 'Settings'), 'icon' => 'cog', 'items' => [ 'active' => \Yii::$app->controller->action->getUniqueId() == 'module/search'
['label' => Yii::t('main', 'Settings List'), 'icon' => 'caret-right', 'url' => ['/settings/list/index'], 'active' => \Yii::$app->controller->getUniqueId() == 'settings/list'], ],
//['label' => Yii::t('main', 'Find modules'), 'icon' => 'caret-right', 'url' => ['/module/search'], 'active' => \Yii::$app->controller->action->getUniqueId() == 'module/search'], ],
], 'visible' => \Yii::$app->user->can('admin') || \Yii::$app->user->can('SettingsManagement')], 'visible' => \Yii::$app->user->can('admin') || \Yii::$app->user->can('ModuleManagement')
],
], Yii::$app->params['adminMenu']),
/*[
'label' => Yii::t('pages', 'Pages'),
'icon' => 'file-o', 'url' => ['/page/index'],
'active' => $this->context->id == 'page',
'visible' => \Yii::$app->user->can('admin') || \Yii::$app->user->can('PagesManagement'),
],*/
[
'label' => Yii::t('post', 'Posts'),
'icon' => 'newspaper-o',
'items' => array_merge(
array_map(function (\core\entities\post\PostType $type) {
return [
'label' => $type->plural,
'icon' => 'caret-right',
'items' => [
[
'label' => Yii::t('post', 'Categories'),
'icon' => 'caret-right',
'url' => ['/post/category', 'tid' => $type->id],
'active' => \Yii::$app->controller->getUniqueId() == 'post/category' && \Yii::$app->request->get('tid') == $type->id
],
[
'label' => $type->plural,
'icon' => 'caret-right',
'url' => ['/post/post', 'tid' => $type->id],
'active' => \Yii::$app->controller->getUniqueId() == 'post/post' && \Yii::$app->request->get('tid') == $type->id
],
[
'label' => Yii::t('post', 'Tags'),
'icon' => 'caret-right',
'url' => ['/post/tag', 'tid' => $type->id],
'active' => \Yii::$app->controller->getUniqueId() == 'post/tag' && \Yii::$app->request->get('tid') == $type->id
],
]
];
}, \core\entities\post\PostType::find()->all()),
[
[
'label' => Yii::t('post', 'Comments'),
'icon' => 'caret-right',
'url' => ['/post/comment'],
'active' => \Yii::$app->controller->getUniqueId() == 'post/comment'
]
],
[
[
'label' => Yii::t('post', 'Types'),
'icon' => 'caret-right',
'url' => ['/post/type'],
'active' => \Yii::$app->controller->getUniqueId() == 'post/type'
]
]
),
'visible' => \Yii::$app->user->can('admin') || \Yii::$app->user->can('PostManagement')
],
[
'label' => Yii::t('slider', 'Slider'),
'icon' => 'retweet',
'url' => ['/slider/index'],
'active' => $this->context->id == 'slider',
'visible' => \Yii::$app->user->can('admin') || \Yii::$app->user->can('SliderManagement'),
],
[
'label' => Yii::t('main', 'Settings'),
'icon' => 'cog',
'items' => [
[
'label' => Yii::t('main', 'Settings List'),
'icon' => 'caret-right',
'url' => ['/settings/list/index'],
'active' => \Yii::$app->controller->getUniqueId() == 'settings/list'
],
//['label' => Yii::t('main', 'Find modules'), 'icon' => 'caret-right', 'url' => ['/module/search'], 'active' => \Yii::$app->controller->action->getUniqueId() == 'module/search'],
],
'visible' => \Yii::$app->user->can('admin') || \Yii::$app->user->can('SettingsManagement')
],
], (isset(Yii::$app->params['adminMenu']) && is_array(Yii::$app->params['adminMenu']) ? Yii::$app->params['adminMenu'] : [])),
] ]
) ?> ) ?>

80
common/bootstrap/SetUp.php

@ -7,6 +7,7 @@ namespace common\bootstrap;
//use core\components\modules\ModuleInterface; //use core\components\modules\ModuleInterface;
use common\modules\languages\entities\Language; use common\modules\languages\entities\Language;
use core\entities\ModuleRecord; use core\entities\ModuleRecord;
//use League\Flysystem\Adapter\Ftp; //use League\Flysystem\Adapter\Ftp;
//use League\Flysystem\Filesystem; //use League\Flysystem\Filesystem;
//use shop\cart\Cart; //use shop\cart\Cart;
@ -17,16 +18,19 @@ use core\dispatchers\AsyncEventDispatcher;
use core\dispatchers\DeferredEventDispatcher; use core\dispatchers\DeferredEventDispatcher;
use core\dispatchers\EventDispatcher; use core\dispatchers\EventDispatcher;
use core\dispatchers\SimpleEventDispatcher; use core\dispatchers\SimpleEventDispatcher;
//use core\entities\behaviors\FlySystemImageUploadBehavior; //use core\entities\behaviors\FlySystemImageUploadBehavior;
//use shop\entities\Shop\Product\events\ProductAppearedInStock; //use shop\entities\Shop\Product\events\ProductAppearedInStock;
use core\jobs\AsyncEventJobHandler; use core\jobs\AsyncEventJobHandler;
use core\listeners\user\UserSignupConfirmedListener; use core\listeners\user\UserSignupConfirmedListener;
use core\listeners\user\UserSignupRequestedListener; use core\listeners\user\UserSignupRequestedListener;
//use shop\repositories\events\EntityPersisted; //use shop\repositories\events\EntityPersisted;
//use shop\repositories\events\EntityRemoved; //use shop\repositories\events\EntityRemoved;
use core\services\newsletter\FakeSubscribe; use core\services\newsletter\FakeSubscribe;
use core\services\newsletter\MailChimp; use core\services\newsletter\MailChimp;
use core\services\newsletter\Newsletter; use core\services\newsletter\Newsletter;
//use shop\services\sms\LoggedSender; //use shop\services\sms\LoggedSender;
//use shop\services\sms\SmsRu; //use shop\services\sms\SmsRu;
//use shop\services\sms\SmsSender; //use shop\services\sms\SmsSender;
@ -140,47 +144,45 @@ class SetUp implements BootstrapInterface
$container->set(ImageUploadBehavior::class, FlySystemImageUploadBehavior::class); $container->set(ImageUploadBehavior::class, FlySystemImageUploadBehavior::class);
*/ */
// Set frontend languages // Set frontend languages
if (\Yii::$app->moduleManager->isTableExist('{{%languages}}') && file_exists(Yii::getAlias('@common/modules/languages/LanguagesModule.php'))) { if (\Yii::$app->moduleManager->isTableExist('{{%languages}}') && file_exists(Yii::getAlias('@common/modules/languages/LanguagesModule.php'))) {
$language = Language::find()->active()->default()->one(); $language = Language::find()->active()->default()->one();
Yii::$app->params['defaultLanguage'] = $language ? $language->name : 'ru'; Yii::$app->params['defaultLanguage'] = $language ? $language->name : 'ru';
Yii::$app->params['translatedLanguages'] = ArrayHelper::map( Language::find()->active()->all(), 'name', 'title' ); Yii::$app->params['translatedLanguages'] = ArrayHelper::map(Language::find()->active()->all(), 'name', 'title');
} } else {
else { Yii::$app->params['defaultLanguage'] = 'en';
Yii::$app->params['defaultLanguage'] = 'en'; Yii::$app->params['translatedLanguages'] = ['en'];
Yii::$app->params['translatedLanguages'] = ['en']; }
}
// Set backend languages
// Set backend languages if (basename($app->getBasePath()) === 'backend') {
if (basename($app->getBasePath()) === 'backend') { $app->language = !$app->user->isGuest && $app->user->identity->user->backend_language ? $app->user->identity->user->backend_language : Yii::$app->params['defaultLanguage'];
$app->language = ! $app->user->isGuest && $app->user->identity->user->backend_language ? $app->user->identity->user->backend_language : Yii::$app->params['defaultLanguage']; $app->params['frontendLanguage'] = Yii::$app->session->get('frontendLanguage', Yii::$app->params['defaultLanguage']);
$app->params['frontendLanguage'] = Yii::$app->session->get('frontendLanguage', Yii::$app->params['defaultLanguage']); }
}
// Connect common modules // Connect common modules
if (\Yii::$app->moduleManager->isTableExist('{{%modules}}')) { if (\Yii::$app->moduleManager->isTableExist('{{%modules}}')) {
$modules = ModuleRecord::find()->andWhere(['type' => 'common'])->andWhere(['active' => 1])->all(); $modules = ModuleRecord::find()->andWhere(['type' => 'common'])->andWhere(['active' => 1])->all();
foreach ($modules as $module) { foreach ($modules as $module) {
Yii::$app->setModule($module->name, [ Yii::$app->setModule($module->name, [
'class' => $module->class, 'class' => $module->class,
]); ]);
Yii::$app->getModule($module->name)->bootstrap(Yii::$app); Yii::$app->getModule($module->name)->bootstrap(Yii::$app);
} }
} } else { // connect all existing modules
else { // connect all existing modules $this->connectExistingModules();
$this->connectExistingModules(); }
}
} }
private function connectExistingModules(): void private function connectExistingModules(): void
{ {
$modules = Yii::$app->moduleManager->getLocalModules(); $modules = Yii::$app->moduleManager->getLocalModules();
//print_r($modules); die; //print_r($modules); die;
foreach ($modules as $module) { foreach ($modules as $module) {
Yii::$app->setModule($module['name'], [ Yii::$app->setModule($module['name'], [
'class' => 'common\modules\\' . $module['name'] . '\\' . $module['module'], 'class' => 'common\modules\\' . $module['name'] . '\\' . $module['module'],
]); ]);
Yii::$app->getModule( $module['name'] )->bootstrap( Yii::$app ); Yii::$app->getModule($module['name'])->bootstrap(Yii::$app);
} }
} }
} }
Loading…
Cancel
Save