From 1942306050347d442cc93fb86ea60dbdd08b4973 Mon Sep 17 00:00:00 2001 From: andryeyev Date: Fri, 6 Nov 2015 20:32:36 +0200 Subject: [PATCH] + 1-уровневое меню на frontend --- common/models/Menu.php | 23 +++++++++++++++++++++++ common/models/Page-i18n.php | 51 --------------------------------------------------- common/models/Page.php | 9 ++------- frontend/models/Front.php | 18 ++++++++++++++++++ frontend/views/layouts/main.php | 22 ++++++++++++++++++++-- 5 files changed, 63 insertions(+), 60 deletions(-) delete mode 100644 common/models/Page-i18n.php create mode 100644 frontend/models/Front.php diff --git a/common/models/Menu.php b/common/models/Menu.php index 92ec5f3..3f49759 100644 --- a/common/models/Menu.php +++ b/common/models/Menu.php @@ -17,6 +17,29 @@ use Yii; */ class Menu extends \yii\db\ActiveRecord { + + public function getMenuList() + { + return yii::$app->db->createCommand(' + SELECT + `termin_lang`.termin_title, `termin_lang`.termin_id + FROM `menu` + INNER JOIN `termin_lang` ON `termin_lang`.termin_id = `menu`.termin_id + AND `termin_lang`.lang_id = '.yii::$app->lang_id.' + ORDER BY `menu`.menu_pid ASC, `menu`.sortorder ASC + ')->queryAll(); +/* + return $this->find() + ->selectOption('`termin_lang`.termin_title') + ->from('menu') + ->join( + 'INNER JOIN', + '`termin_lang`.termin_id = `menu`.termin_id', + ['lang_id' => yii::$app->lang_id]) + ->all(); +*/ + } + /** * @inheritdoc */ diff --git a/common/models/Page-i18n.php b/common/models/Page-i18n.php deleted file mode 100644 index 07aa923..0000000 --- a/common/models/Page-i18n.php +++ /dev/null @@ -1,51 +0,0 @@ - Yii::t('app/Lang', 'Page ID'), - 'date_add' => Yii::t('app/Lang', 'Date Add'), - 'template_id' => Yii::t('app/Lang', 'Template ID'), - 'image_id' => Yii::t('app/Lang', 'Image ID'), - 'show' => Yii::t('app/Lang', 'Show'), - ]; - } -} diff --git a/common/models/Page.php b/common/models/Page.php index b938924..ca0a1d2 100644 --- a/common/models/Page.php +++ b/common/models/Page.php @@ -31,7 +31,7 @@ class Page extends \yii\db\ActiveRecord public function getData() { - $this->data = PageLang::find()->where(['page_id' => $this->page_id, 'lang_id' => 1])->one(); + $this->data = PageLang::find()->where(['page_id' => $this->page_id, 'lang_id' => yii::$app->lang_id])->one(); } public function getDataByKey($key) @@ -45,12 +45,7 @@ class Page extends \yii\db\ActiveRecord } // ==== DATA PAGE LANG FIELD ==== - - public function getExtraField($key) - { - return PageLang::find()->where(['page_id' => $this->page_id, 'lang_id' => 1])->one()->$key; - } - + public function getTitle() { return $this->getDataByKey('title'); diff --git a/frontend/models/Front.php b/frontend/models/Front.php new file mode 100644 index 0000000..a962928 --- /dev/null +++ b/frontend/models/Front.php @@ -0,0 +1,18 @@ +getMenuList(); + } +} diff --git a/frontend/views/layouts/main.php b/frontend/views/layouts/main.php index 3e09838..ab4bcd5 100644 --- a/frontend/views/layouts/main.php +++ b/frontend/views/layouts/main.php @@ -27,6 +27,7 @@ AppAsset::register($this);
'My Company', 'brandUrl' => Yii::$app->homeUrl, @@ -34,27 +35,44 @@ AppAsset::register($this); 'class' => 'navbar-inverse navbar-fixed-top', ], ]); + $menuItems = [ ['label' => 'Home', 'url' => ['/site/index']], ['label' => 'About', 'url' => ['/site/about']], ['label' => 'Contact', 'url' => ['/site/contact']], ]; - if (Yii::$app->user->isGuest) { + + // меню с базы + $menuItems = []; + + foreach ((new \frontend\models\Front())->actionMenu() as $row) + { + $menuItems[] = ['label' => $row['termin_title'], 'url' => $row['termin_id']]; + } + + if (Yii::$app->user->isGuest) + { $menuItems[] = ['label' => 'Signup', 'url' => ['/site/signup']]; $menuItems[] = ['label' => 'Login', 'url' => ['/site/login']]; - } else { + } + else + { $menuItems[] = [ 'label' => '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(); + ?> +