diff --git a/common/models/Page.php b/common/models/Page.php index a5b2b17..6024779 100644 --- a/common/models/Page.php +++ b/common/models/Page.php @@ -107,7 +107,7 @@ class Page extends \yii\db\ActiveRecord { return yii::$app->db->createCommand(' SELECT - `page`.show, + `page`.show, `page`.page_id, `controller`.controller_name, `template`.template_file FROM `page` @@ -123,6 +123,17 @@ class Page extends \yii\db\ActiveRecord { return $page['show'] == 1 ? true : false; } + + static function getPageById ($page_id) + { + return yii::$app->db->createCommand(' + SELECT * + FROM `page` + INNER JOIN `page_lang` ON `page_lang`.page_id = `page`.page_id + AND `page_lang`.lang_id = '.yii::$app->lang_id.' + WHERE `page`.page_id = "'.(int)$page_id.'" + ')->queryOne(); + } // ==== YII ==== @@ -158,10 +169,5 @@ class Page extends \yii\db\ActiveRecord 'lang_id' => Yii::t('field', 'lang_id'), ]; } -/* - public function getPage() - { - return $this->hasMany(PageLang::className(), ['page_id' => 'page_id']); - } -*/ + } diff --git a/frontend/controllers/PageController.php b/frontend/controllers/PageController.php index b65f57d..8949733 100644 --- a/frontend/controllers/PageController.php +++ b/frontend/controllers/PageController.php @@ -1,22 +1,35 @@ view->title = $page['meta_title']; + + // meta_desc + Yii::$app->view->registerMetaTag([ + 'name' => 'description', + 'content' => $page['meta_description'], + ]); - public function actionIndex() - { - die; - return $this->render('index'); + return $this->render('page', $page); } -} + +} \ No newline at end of file diff --git a/frontend/controllers/SiteController.php b/frontend/controllers/SiteController.php index f633201..e602f50 100644 --- a/frontend/controllers/SiteController.php +++ b/frontend/controllers/SiteController.php @@ -13,8 +13,7 @@ use yii\web\Controller; use yii\filters\VerbFilter; use yii\filters\AccessControl; -use common\models\Page; -use frontend\controllers\PageController; +use common\models\Page; /** * Site controller @@ -56,29 +55,7 @@ class SiteController extends Controller * @inheritdoc */ public function actions() - { - // парсим URL, находим контроллер и подключаем view-файл -/* - if ($page = Page::getPageByUrl ('about')) - { - if (Page::isShow ($page) - && $page['template_file'] != NULL - && is_file (yii::$app->viewPath.'/'.$page['template_file'].'.php')) - { - $controller = $page['controller_name'].'Controller'; - require_once __DIR__.'/'.$controller.'.php'; - - //eval ('use '.$controller.';'); - - //return new $controller; - - return $this->render('/'.$page['template_file']); - //return yii::$app->runAction($page['template_file']); - } - } -*/ - - + { // по умолчанию - 404 return [ 'error' => [ @@ -98,7 +75,20 @@ class SiteController extends Controller */ public function actionIndex() { - return $this->render('index'); + // парсим URL, находим контроллер и подключаем view-файл + + if ($page = Page::getPageByUrl ('about')) + { + if (Page::isShow ($page) + && $page['template_file'] != NULL + && is_file (yii::$app->viewPath.'/'.$page['template_file'].'.php')) + { + return Yii::$app->runAction($page['template_file'], [ + 'page_id' => $page['page_id'], + 'template_file' => $page['template_file'], + ]); + } + } } /** diff --git a/frontend/models/Front.php b/frontend/models/Front.php index c533a2c..be6be82 100644 --- a/frontend/models/Front.php +++ b/frontend/models/Front.php @@ -11,6 +11,13 @@ use Yii; */ class Front extends Model { + // страница + + var $meta_title; + var $meta_desc; + var $title; + var $text; + public function actionMenu($location) { return (new Menu)->getMenuList($location); diff --git a/frontend/views/layouts/main.php b/frontend/views/layouts/main.php index 6b5faa4..41a6424 100644 --- a/frontend/views/layouts/main.php +++ b/frontend/views/layouts/main.php @@ -27,15 +27,13 @@ AppAsset::register($this);
'My Company', - 'brandUrl' => Yii::$app->homeUrl, 'options' => [ 'class' => 'navbar-inverse navbar-fixed-top', - ], + ] ]); - + $menuItems = [ ['label' => 'Home', 'url' => ['/site/index']], ['label' => 'About', 'url' => ['/site/about']], diff --git a/frontend/views/page/page.php b/frontend/views/page/page.php index 8fab606..ac3c2b1 100644 --- a/frontend/views/page/page.php +++ b/frontend/views/page/page.php @@ -1 +1,12 @@ -Хуй \ No newline at end of file +registerCssFile('css-file.css'); + + // JS + $this->registerJsFile('script.js'); + + echo Html::encode($text); +?> \ No newline at end of file -- libgit2 0.21.4