/** * @param \yii\base\Action $action * * @return bool * @throws InvalidParamException */ public function beforeAction($action) { $session = \Yii::$app->session; $request = \Yii::$app->request; if ($request->post('web_id')) { $id = $request->post('web_id'); $session->set('web_id', $id); } elseif ($session->get('web_id')) { $web = WebRecord::findOne($session->get('web_id')); if ($web) { $id = $session->get('web_id'); } else { $id = WebRecord::getMainWebId(); $session->set('web_id', $id); } } else { $id = WebRecord::getMainWebId(); $session->set('web_id', $id); } $session->close(); /** @var $controller MenuController */ $controller = $this->owner; $controller->setWeb($id); return parent::beforeAction($action); }
/** * @inheritdoc */ public function init() { parent::init(); $session = Yii::$app->session; if (WebRecord::existsMoreWebRecords()) { if (!$session->has('web')) { $session->set('web', \Yii::$app->request->get('web', \Yii::$app->params['defaultWeb'])); } if (!($this->web = WebRecord::findOne(FrontEndHelper::getWebIdFromTextId($session->get('web'))))) { $session->set('web', \Yii::$app->params['defaultWeb']); throw new NotFoundHttpException(Yii::t('front', 'The requested page does not exist.')); } } else { $this->redirect(['install/default/index']); } if (!$this->web) { $this->web = WebRecord::findOne(FrontEndHelper::getWebIdFromTextId($session->get('web'))); } $session->set('web', null); $this->setWebTheme($this->web->theme); \Yii::$app->language = \Yii::$app->request->get('language', \Yii::$app->params['defaultLanguage']); $this->language = LanguageRecord::findOne(FrontEndHelper::getLanguageIdFromAcronym()); }
/** * Finds the Web model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return WebRecord the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = WebRecord::findOne($id)) !== null) { return $model; } throw new NotFoundHttpException(Yii::t('back', 'The requested page does not exist.')); }
?> <?php echo $form->field($model, 'title')->textInput(['maxlength' => 255]); ?> <?php echo $form->field($model, 'weburl')->textInput(['maxlength' => 255]); ?> <?php echo $form->field($model, 'theme')->dropDownList(Yii::$app->params['themeOptions']); ?> <?php echo $form->field($model, 'boxes')->inline()->checkboxList([WebRecord::PROPERTY_MAIN => Yii::t('back', 'Main'), WebRecord::PROPERTY_ACTIVE => Yii::t('back', 'Active'), WebRecord::PROPERTY_PUBLIC => Yii::t('back', 'Public')], ['id' => 'modal-boxes', 'data-main' => (WebRecord::existsMoreWebRecords($model->isNewRecord ? true : false) && !$model->main) == true ? 0 : 1]); ?> <div class="form-group modal-footer"> <?php echo Html::submitButton($model->isNewRecord ? Yii::t('back', 'Create') : Yii::t('back', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']); ?> <button type="button" class="btn btn-default" data-dismiss="modal"><?php echo Yii::t('back', 'Close'); ?> </button> </div> <?php ActiveForm::end(); ?>
/** * Sets $_web property * @param integer $id * * @throws NotFoundHttpException */ public function setWeb($id) { if (($this->_web = WebRecord::findOne($id)) === null) { throw new NotFoundHttpException(Yii::t('back', 'The requested web does not exist.')); } }
/** * Gets menu options for dropdown * @return array */ public static function getMenuOptions() { if (!($web_id = Yii::$app->session->get('web_id'))) { $web_id = WebRecord::getMainWebId(); } return ArrayHelper::map(self::find()->andWhere(['web_id' => $web_id])->orderBy('main DESC')->all(), 'id', 'title'); }
</p> <?php Pjax::begin(); ?> <div class="row"> <?php echo Html::beginForm(['menu-item/index']); ?> <div class="form-group col-md-6"> <?php echo Html::label(Yii::t('back', 'Web'), 'web_id'); ?> <?php echo Html::dropDownList('web_id', $web_id, WebRecord::getWebOptions(), ['onchange' => 'this.form.submit()', 'class' => 'form-control']); ?> </div> <?php echo Html::endForm(); ?> <?php echo Html::beginForm(['menu-item/index']); ?> <div class="form-group col-md-6"> <?php echo Html::label(Yii::t('back', 'Menu'), 'menu_id'); ?> <?php echo Html::dropDownList('menu_id', $menu_id, MenuRecord::getMenuOptions(), ['onchange' => 'this.form.submit()', 'class' => 'form-control']);
/** * Returns web id from given web text id * @param $textId * @return bool|string */ public static function getWebIdFromTextId($textId) { $id = WebRecord::find()->select('id')->where(['weburl' => $textId])->scalar(); return $id; }
<title><?php echo Html::encode($this->title); ?> </title> <?php $this->head(); ?> </head> <body> <?php $this->beginBody(); ?> <div class="wrap"> <?php NavBar::begin(['brandLabel' => Html::img('@web/images/design/logo-albert5.png', ['alt' => Yii::t('back', 'Image') . ' - ' . Yii::t('back', 'Albert 5 logo')]), 'brandUrl' => Yii::$app->homeUrl, 'options' => ['class' => 'navbar-inverse navbar-fixed-top']]); $menuItems = [['label' => Yii::t('back', 'Home'), 'url' => ['/site/index'], 'visible' => Yii::$app->user->can('manager')], ['label' => Yii::t('back', 'Content'), 'items' => [['label' => Yii::t('back', 'Articles'), 'url' => ['/article/index'], 'visible' => Yii::$app->user->can('user')], ['label' => Yii::t('back', 'Pages'), 'url' => ['/page/index'], 'visible' => Yii::$app->user->can('user')], '<li class="divider"></li>', ['label' => Yii::t('back', 'Menu items'), 'url' => ['/menu-item/index'], 'visible' => Yii::$app->user->can('manager')], '<li class="divider"></li>', ['label' => Yii::t('back', 'Categories'), 'url' => ['/category/index'], 'visible' => Yii::$app->user->can('manager')], ['label' => Yii::t('back', 'Galleries'), 'url' => ['/gallery/index'], 'visible' => Yii::$app->user->can('user')], '<li class="divider"></li>', ['label' => Yii::t('back', 'Polls'), 'url' => ['/poll/index'], 'visible' => Yii::$app->user->can('user')], '<li class="divider"></li>', ['label' => Yii::t('back', 'Images'), 'url' => ['/file/images'], 'visible' => Yii::$app->user->can('user')], ['label' => Yii::t('back', 'Files'), 'url' => ['/file/files'], 'visible' => Yii::$app->user->can('user')]], 'visible' => Yii::$app->user->can('user')], ['label' => Yii::t('back', 'Reservations'), 'items' => [['label' => Yii::t('back', 'Devices'), 'url' => ['/reservation/device/index'], 'visible' => Yii::$app->user->can('booker')], ['label' => Yii::t('back', 'Subjects'), 'url' => ['/reservation/subject/index'], 'visible' => Yii::$app->user->can('booker')]], 'visible' => isset(Yii::$app->modules['reservation']) && Yii::$app->user->can('booker')], ['label' => Yii::t('back', 'Manage newsletter'), 'items' => [['label' => Yii::t('back', 'Newsletters'), 'url' => ['/newsletter/index'], 'visible' => Yii::$app->user->can('user') && WebRecord::existsMoreWebRecords()], ['label' => Yii::t('back', 'Emails'), 'url' => ['/email/index'], 'visible' => Yii::$app->user->can('user')]], 'visible' => isset(Yii::$app->params['backendModules']['newsletter']) && Yii::$app->user->can('user')], ['label' => Yii::t('back', Yii::t('back', 'Admin')), 'items' => [['label' => Yii::t('back', 'Menus'), 'url' => ['/menu/index'], 'visible' => Yii::$app->user->can('admin') && WebRecord::existsMoreWebRecords()], ['label' => Yii::t('back', 'Webs'), 'url' => ['/web/index'], 'visible' => Yii::$app->user->can('admin')], Yii::$app->user->can('admin') ? '<li class="divider"></li>' : '', ['label' => Yii::t('back', 'Layouts'), 'url' => ['/layout/index'], 'visible' => Yii::$app->user->can('admin')], ['label' => Yii::t('back', 'Additional fields'), 'url' => ['/additional-field/index'], 'visible' => Yii::$app->user->can('admin')], ['label' => Yii::t('back', 'Languages'), 'url' => ['/language/index'], 'visible' => Yii::$app->user->can('admin')], Yii::$app->user->can('admin') ? '<li class="divider"></li>' : '', ['label' => Yii::t('back', 'Users'), 'url' => ['/user/index'], 'visible' => Yii::$app->user->can('admin')]], 'visible' => Yii::$app->user->can('admin')], ['label' => Yii::t('back', Yii::t('back', 'Webs')), 'items' => WebRecord::getNavBarItems(), 'visible' => WebRecord::existsMoreWebRecords()]]; if (Yii::$app->user->isGuest) { /** @noinspection PhpUndefinedFieldInspection */ $menuItems[] = ['label' => Yii::t('back', 'Login'), 'url' => ['/site/login'], 'visible' => $this->context->action->id != 'login']; } else { /** @noinspection PhpUndefinedFieldInspection */ $menuItems[] = ['label' => Yii::t('back', 'Logout') . ' (' . Yii::$app->user->identity->username . ')', 'url' => ['/site/logout'], 'linkOptions' => ['data-method' => 'post']]; } echo Nav::widget(['options' => ['class' => 'navbar-nav navbar-right'], 'items' => $menuItems]); NavBar::end(); ?> <div class="container"> <?php echo Breadcrumbs::widget(['links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : []]); ?>
/** * Returns web list options for dropdown * @return array */ public function getWebListOptions() { return ArrayHelper::map(WebRecord::find()->activeStatus()->all(), 'id', 'title'); }