Commit bb7d15c516648e2eff95e5e70bf6a00fea9a6128
1 parent
19423060
Итерация 3 (Template + Widget + Все категории фильтры)
Showing
21 changed files
with
491 additions
and
136 deletions
Show diff stats
backend/views/page/_form.php
| ... | ... | @@ -14,10 +14,18 @@ use yii\widgets\ActiveForm; |
| 14 | 14 | |
| 15 | 15 | <h2><?= Yii::t('field', 'common'); ?></h2> |
| 16 | 16 | |
| 17 | - <?= $form->field($model, 'date_add')->widget(\yii\jui\DatePicker::classname(), [ | |
| 18 | - 'language' => yii::$app->language, | |
| 19 | - 'dateFormat' => 'yyyy-MM-dd', | |
| 20 | - ]) ?> | |
| 17 | + <? | |
| 18 | + // по умолчанию | |
| 19 | + if (empty ($model->date_add)) | |
| 20 | + { | |
| 21 | + $model->date_add = date('Y-m-d'); | |
| 22 | + } | |
| 23 | + | |
| 24 | + echo $form->field($model, 'date_add')->widget(\yii\jui\DatePicker::classname(), [ | |
| 25 | + 'language' => yii::$app->language, | |
| 26 | + 'dateFormat' => 'yyyy-MM-dd', | |
| 27 | + ]); | |
| 28 | + ?> | |
| 21 | 29 | |
| 22 | 30 | <?= $form->field($model, 'template_id')->textInput() ?> |
| 23 | 31 | ... | ... |
common/models/Menu.php
| ... | ... | @@ -18,14 +18,21 @@ use Yii; |
| 18 | 18 | class Menu extends \yii\db\ActiveRecord |
| 19 | 19 | { |
| 20 | 20 | |
| 21 | - public function getMenuList() | |
| 22 | - { | |
| 21 | + public function getMenuList ($location_name) | |
| 22 | + { | |
| 23 | 23 | return yii::$app->db->createCommand(' |
| 24 | 24 | SELECT |
| 25 | - `termin_lang`.termin_title, `termin_lang`.termin_id | |
| 25 | + `menu`.menu_id, `menu`.menu_pid, `menu`.level, | |
| 26 | + `page_lang`.page_title, | |
| 27 | + `page_lang`.page_alias | |
| 26 | 28 | FROM `menu` |
| 27 | - INNER JOIN `termin_lang` ON `termin_lang`.termin_id = `menu`.termin_id | |
| 28 | - AND `termin_lang`.lang_id = '.yii::$app->lang_id.' | |
| 29 | + INNER JOIN `menu_location` ON `menu_location`.menu_location_id = `menu`.menu_location_id | |
| 30 | + AND `menu_location`.menu_location_name = "'.$location_name.'" | |
| 31 | + INNER JOIN `page` ON `page`.page_id = `menu`.page_id | |
| 32 | + AND `page`.show = 1 | |
| 33 | + INNER JOIN `page_lang` ON `page_lang`.page_id = `page`.page_id | |
| 34 | + AND `page_lang`.lang_id = '.yii::$app->lang_id.' | |
| 35 | + WHERE `menu`.show = 1 | |
| 29 | 36 | ORDER BY `menu`.menu_pid ASC, `menu`.sortorder ASC |
| 30 | 37 | ')->queryAll(); |
| 31 | 38 | /* | ... | ... |
common/models/Page.php
| ... | ... | @@ -101,6 +101,31 @@ class Page extends \yii\db\ActiveRecord |
| 101 | 101 | return $result; |
| 102 | 102 | } |
| 103 | 103 | |
| 104 | + // ==== FRONT ==== | |
| 105 | + | |
| 106 | + static function getPageByUrl ($url) | |
| 107 | + { | |
| 108 | + return yii::$app->db->createCommand(' | |
| 109 | + SELECT | |
| 110 | + `page`.show, | |
| 111 | + `controller`.controller_name, | |
| 112 | + `template`.template_file | |
| 113 | + FROM `page` | |
| 114 | + INNER JOIN `page_lang` ON `page_lang`.page_id = `page`.page_id | |
| 115 | + AND `page_lang`.lang_id = '.yii::$app->lang_id.' | |
| 116 | + AND `page_lang`.page_alias = "'.$url.'" | |
| 117 | + INNER JOIN `template` ON `template`.template_id = `page`.template_id | |
| 118 | + INNER JOIN `controller` ON `controller`.controller_id = `template`.controller_id | |
| 119 | + ')->queryOne(); | |
| 120 | + } | |
| 121 | + | |
| 122 | + static function isShow ($page) | |
| 123 | + { | |
| 124 | + return $page['show'] == 1 ? true : false; | |
| 125 | + } | |
| 126 | + | |
| 127 | + // ==== YII ==== | |
| 128 | + | |
| 104 | 129 | /** |
| 105 | 130 | * @inheritdoc |
| 106 | 131 | */ | ... | ... |
| 1 | +<?php | |
| 2 | + | |
| 3 | +return [ | |
| 4 | + 'page' => 'Страница', | |
| 5 | + 'date_add' => 'Дата добавления', | |
| 6 | + 'template' => 'Шаблон', | |
| 7 | + 'image' => 'Картинка', | |
| 8 | + 'title' => 'Заголовок', | |
| 9 | + 'meta_title' => 'Meta Title', | |
| 10 | + 'meta_description' => 'Meta Description', | |
| 11 | + 'text' => 'Текст', | |
| 12 | + 'page_alias' => 'alias', | |
| 13 | + 'lang_id' => 'ID языка', | |
| 14 | + 'common' => 'Общее', | |
| 15 | + 'lang' => 'Языковые переменные', | |
| 16 | +]; | |
| 0 | 17 | \ No newline at end of file | ... | ... |
db-migration/artbox_db.sql
| ... | ... | @@ -3,7 +3,7 @@ |
| 3 | 3 | -- http://www.phpmyadmin.net |
| 4 | 4 | -- |
| 5 | 5 | -- Хост: 127.0.0.1:3306 |
| 6 | --- Час створення: Лис 06 2015 р., 12:08 | |
| 6 | +-- Час створення: Лис 09 2015 р., 20:55 | |
| 7 | 7 | -- Версія сервера: 5.5.45 |
| 8 | 8 | -- Версія PHP: 5.6.12 |
| 9 | 9 | |
| ... | ... | @@ -23,6 +23,27 @@ SET time_zone = "+00:00"; |
| 23 | 23 | -- -------------------------------------------------------- |
| 24 | 24 | |
| 25 | 25 | -- |
| 26 | +-- Структура таблиці `controller` | |
| 27 | +-- | |
| 28 | + | |
| 29 | +CREATE TABLE IF NOT EXISTS `controller` ( | |
| 30 | + `controller_id` int(3) NOT NULL AUTO_INCREMENT, | |
| 31 | + `controller_name` varchar(50) NOT NULL, | |
| 32 | + PRIMARY KEY (`controller_id`) | |
| 33 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; | |
| 34 | + | |
| 35 | +-- | |
| 36 | +-- Дамп даних таблиці `controller` | |
| 37 | +-- | |
| 38 | + | |
| 39 | +INSERT INTO `controller` (`controller_id`, `controller_name`) VALUES | |
| 40 | +(1, 'Page'), | |
| 41 | +(2, 'Home'), | |
| 42 | +(3, 'Catlog'); | |
| 43 | + | |
| 44 | +-- -------------------------------------------------------- | |
| 45 | + | |
| 46 | +-- | |
| 26 | 47 | -- Структура таблиці `feature` |
| 27 | 48 | -- |
| 28 | 49 | |
| ... | ... | @@ -76,8 +97,8 @@ CREATE TABLE IF NOT EXISTS `language` ( |
| 76 | 97 | -- |
| 77 | 98 | |
| 78 | 99 | INSERT INTO `language` (`language_id`, `lang_code`, `is_default`) VALUES |
| 79 | -(1, 'uk', 1), | |
| 80 | -(2, 'ru', 0); | |
| 100 | +(1, 'uk', 0), | |
| 101 | +(2, 'ru', 1); | |
| 81 | 102 | |
| 82 | 103 | -- -------------------------------------------------------- |
| 83 | 104 | |
| ... | ... | @@ -111,18 +132,77 @@ CREATE TABLE IF NOT EXISTS `menu` ( |
| 111 | 132 | `menu_pid` int(6) NOT NULL, |
| 112 | 133 | `menu_lft` int(6) NOT NULL, |
| 113 | 134 | `menu_rgt` int(6) NOT NULL, |
| 114 | - `termin_id` int(6) NOT NULL, | |
| 135 | + `level` int(6) NOT NULL, | |
| 136 | + `page_id` int(6) NOT NULL, | |
| 115 | 137 | `show` tinyint(1) NOT NULL, |
| 138 | + `menu_location_id` int(6) NOT NULL, | |
| 116 | 139 | `sortorder` int(6) NOT NULL, |
| 117 | - PRIMARY KEY (`menu_id`) | |
| 118 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ; | |
| 140 | + PRIMARY KEY (`menu_id`), | |
| 141 | + KEY `show` (`show`), | |
| 142 | + KEY `sortorder` (`sortorder`), | |
| 143 | + KEY `termin_id` (`page_id`) | |
| 144 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=13 ; | |
| 119 | 145 | |
| 120 | 146 | -- |
| 121 | 147 | -- Дамп даних таблиці `menu` |
| 122 | 148 | -- |
| 123 | 149 | |
| 124 | -INSERT INTO `menu` (`menu_id`, `menu_pid`, `menu_lft`, `menu_rgt`, `termin_id`, `show`, `sortorder`) VALUES | |
| 125 | -(1, 0, 0, 0, 1, 1, 1); | |
| 150 | +INSERT INTO `menu` (`menu_id`, `menu_pid`, `menu_lft`, `menu_rgt`, `level`, `page_id`, `show`, `menu_location_id`, `sortorder`) VALUES | |
| 151 | +(1, 0, 0, 0, 0, 2, 1, 1, 1), | |
| 152 | +(2, 1, 0, 0, 1, 3, 1, 1, 1), | |
| 153 | +(3, 1, 0, 0, 1, 4, 1, 1, 1), | |
| 154 | +(4, 0, 0, 0, 0, 5, 1, 1, 1), | |
| 155 | +(5, 1, 0, 0, 1, 6, 1, 1, 1), | |
| 156 | +(6, 1, 0, 0, 1, 7, 1, 1, 1), | |
| 157 | +(7, 0, 0, 0, 0, 8, 1, 1, 1), | |
| 158 | +(8, 0, 0, 0, 0, 9, 1, 1, 1), | |
| 159 | +(9, 0, 0, 0, 0, 10, 1, 1, 1), | |
| 160 | +(10, 0, 0, 0, 0, 11, 1, 1, 1), | |
| 161 | +(11, 0, 0, 0, 0, 12, 1, 1, 1), | |
| 162 | +(12, 0, 0, 0, 0, 13, 1, 1, 1); | |
| 163 | + | |
| 164 | +-- -------------------------------------------------------- | |
| 165 | + | |
| 166 | +-- | |
| 167 | +-- Структура таблиці `menu_location` | |
| 168 | +-- | |
| 169 | + | |
| 170 | +CREATE TABLE IF NOT EXISTS `menu_location` ( | |
| 171 | + `menu_location_id` int(2) NOT NULL AUTO_INCREMENT, | |
| 172 | + `menu_location_name` varchar(50) DEFAULT NULL, | |
| 173 | + PRIMARY KEY (`menu_location_id`) | |
| 174 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; | |
| 175 | + | |
| 176 | +-- | |
| 177 | +-- Дамп даних таблиці `menu_location` | |
| 178 | +-- | |
| 179 | + | |
| 180 | +INSERT INTO `menu_location` (`menu_location_id`, `menu_location_name`) VALUES | |
| 181 | +(1, 'TOP'), | |
| 182 | +(2, 'CENTER'), | |
| 183 | +(3, 'BOTTOM'); | |
| 184 | + | |
| 185 | +-- -------------------------------------------------------- | |
| 186 | + | |
| 187 | +-- | |
| 188 | +-- Структура таблиці `menu_location_lang` | |
| 189 | +-- | |
| 190 | + | |
| 191 | +CREATE TABLE IF NOT EXISTS `menu_location_lang` ( | |
| 192 | + `menu_location_id` int(2) NOT NULL, | |
| 193 | + `menu_location_title` varchar(50) NOT NULL, | |
| 194 | + `lang_id` int(2) NOT NULL, | |
| 195 | + PRIMARY KEY (`menu_location_id`,`lang_id`) | |
| 196 | +) ENGINE=MyISAM DEFAULT CHARSET=utf8; | |
| 197 | + | |
| 198 | +-- | |
| 199 | +-- Дамп даних таблиці `menu_location_lang` | |
| 200 | +-- | |
| 201 | + | |
| 202 | +INSERT INTO `menu_location_lang` (`menu_location_id`, `menu_location_title`, `lang_id`) VALUES | |
| 203 | +(1, 'Верхнее', 2), | |
| 204 | +(2, 'Центр', 2), | |
| 205 | +(3, 'Низ', 2); | |
| 126 | 206 | |
| 127 | 207 | -- -------------------------------------------------------- |
| 128 | 208 | |
| ... | ... | @@ -154,20 +234,31 @@ INSERT INTO `migration` (`version`, `apply_time`) VALUES |
| 154 | 234 | CREATE TABLE IF NOT EXISTS `page` ( |
| 155 | 235 | `page_id` int(6) NOT NULL AUTO_INCREMENT, |
| 156 | 236 | `date_add` datetime NOT NULL, |
| 237 | + `page_type_id` int(2) NOT NULL, | |
| 157 | 238 | `template_id` int(6) NOT NULL, |
| 158 | 239 | `image_id` int(6) NOT NULL, |
| 159 | 240 | `show` tinyint(1) NOT NULL, |
| 160 | 241 | PRIMARY KEY (`page_id`) |
| 161 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; | |
| 242 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=14 ; | |
| 162 | 243 | |
| 163 | 244 | -- |
| 164 | 245 | -- Дамп даних таблиці `page` |
| 165 | 246 | -- |
| 166 | 247 | |
| 167 | -INSERT INTO `page` (`page_id`, `date_add`, `template_id`, `image_id`, `show`) VALUES | |
| 168 | -(1, '2015-11-03 00:00:00', 0, 0, 1), | |
| 169 | -(2, '2015-11-03 00:00:00', 0, 0, 1), | |
| 170 | -(3, '2015-11-03 00:00:00', 0, 0, 1); | |
| 248 | +INSERT INTO `page` (`page_id`, `date_add`, `page_type_id`, `template_id`, `image_id`, `show`) VALUES | |
| 249 | +(1, '2015-11-09 00:00:00', 0, 2, 0, 1), | |
| 250 | +(2, '2015-11-09 00:00:00', 0, 1, 0, 1), | |
| 251 | +(3, '2015-11-09 00:00:00', 0, 1, 0, 1), | |
| 252 | +(4, '2015-11-09 00:00:00', 0, 1, 0, 1), | |
| 253 | +(5, '2015-11-09 00:00:00', 0, 1, 0, 1), | |
| 254 | +(6, '2015-11-09 00:00:00', 0, 2, 0, 1), | |
| 255 | +(7, '2015-11-09 00:00:00', 0, 1, 0, 1), | |
| 256 | +(8, '2015-11-09 00:00:00', 0, 3, 0, 1), | |
| 257 | +(9, '2015-11-09 00:00:00', 0, 1, 0, 1), | |
| 258 | +(10, '2015-11-09 00:00:00', 0, 1, 0, 1), | |
| 259 | +(11, '2015-11-09 00:00:00', 0, 1, 0, 1), | |
| 260 | +(12, '2015-11-09 00:00:00', 0, 2, 0, 1), | |
| 261 | +(13, '2015-11-09 00:00:00', 0, 5, 0, 1); | |
| 171 | 262 | |
| 172 | 263 | -- -------------------------------------------------------- |
| 173 | 264 | |
| ... | ... | @@ -177,7 +268,7 @@ INSERT INTO `page` (`page_id`, `date_add`, `template_id`, `image_id`, `show`) VA |
| 177 | 268 | |
| 178 | 269 | CREATE TABLE IF NOT EXISTS `page_lang` ( |
| 179 | 270 | `page_id` int(6) NOT NULL, |
| 180 | - `title` varchar(256) NOT NULL, | |
| 271 | + `page_title` varchar(256) NOT NULL, | |
| 181 | 272 | `meta_title` varchar(512) NOT NULL, |
| 182 | 273 | `meta_description` varchar(512) NOT NULL, |
| 183 | 274 | `text` text NOT NULL, |
| ... | ... | @@ -190,11 +281,72 @@ CREATE TABLE IF NOT EXISTS `page_lang` ( |
| 190 | 281 | -- Дамп даних таблиці `page_lang` |
| 191 | 282 | -- |
| 192 | 283 | |
| 193 | -INSERT INTO `page_lang` (`page_id`, `title`, `meta_title`, `meta_description`, `text`, `page_alias`, `lang_id`) VALUES | |
| 194 | -(1, 'Головна сторінка', 'Головна сторінка', 'Головна сторінка - Artbox', '', '/', 1), | |
| 195 | -(1, 'Главная страница', 'Главная страница', 'Главная страница - Artbox', '', '/ru/', 2), | |
| 196 | -(2, 'Магазин Meta Title', 'Магазин Meta Title', 'Магазин Meta Description', 'Магазин Text', 'shop', 1), | |
| 197 | -(3, 'Контент', 'Контент', 'Контент', 'Контент', 'content', 1); | |
| 284 | +INSERT INTO `page_lang` (`page_id`, `page_title`, `meta_title`, `meta_description`, `text`, `page_alias`, `lang_id`) VALUES | |
| 285 | +(1, 'Главная страница', '', '', '', '/', 2), | |
| 286 | +(2, 'О компании', '', '', '', 'about', 2), | |
| 287 | +(3, 'Условия использования', '', '', '', 'use', 2), | |
| 288 | +(4, 'Условия сотрудничества', '', '', '', 'corporation', 2), | |
| 289 | +(5, 'Контакты', '', '', '', 'contacts', 2), | |
| 290 | +(6, 'Магазины', '', '', '', 'shops', 2), | |
| 291 | +(7, 'Поставщики', '', '', '', 'vendors', 2), | |
| 292 | +(8, 'Каталог товаров', '', '', '', 'catalog', 2), | |
| 293 | +(9, 'Оплата', '', '', '', 'payment', 2), | |
| 294 | +(10, 'Доставка', '', '', '', 'delivery', 2), | |
| 295 | +(11, 'Гарантия', '', '', '', 'warranty', 2), | |
| 296 | +(12, 'Акции', '', '', '', 'promotion', 2), | |
| 297 | +(13, 'Новости', '', '', '', 'news', 2); | |
| 298 | + | |
| 299 | +-- -------------------------------------------------------- | |
| 300 | + | |
| 301 | +-- | |
| 302 | +-- Структура таблиці `page_type` | |
| 303 | +-- | |
| 304 | + | |
| 305 | +CREATE TABLE IF NOT EXISTS `page_type` ( | |
| 306 | + `page_type_id` int(2) NOT NULL AUTO_INCREMENT, | |
| 307 | + `page_type_name` varchar(56) NOT NULL, | |
| 308 | + PRIMARY KEY (`page_type_id`) | |
| 309 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ; | |
| 310 | + | |
| 311 | +-- | |
| 312 | +-- Дамп даних таблиці `page_type` | |
| 313 | +-- | |
| 314 | + | |
| 315 | +INSERT INTO `page_type` (`page_type_id`, `page_type_name`) VALUES | |
| 316 | +(1, 'tag'), | |
| 317 | +(2, 'news'), | |
| 318 | +(3, 'article'), | |
| 319 | +(4, 'category'), | |
| 320 | +(5, 'page'); | |
| 321 | + | |
| 322 | +-- -------------------------------------------------------- | |
| 323 | + | |
| 324 | +-- | |
| 325 | +-- Структура таблиці `page_type_lang` | |
| 326 | +-- | |
| 327 | + | |
| 328 | +CREATE TABLE IF NOT EXISTS `page_type_lang` ( | |
| 329 | + `page_type_id` int(2) NOT NULL, | |
| 330 | + `page_type_title` varchar(50) NOT NULL, | |
| 331 | + `lang_id` int(2) NOT NULL, | |
| 332 | + PRIMARY KEY (`page_type_id`,`lang_id`) | |
| 333 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8; | |
| 334 | + | |
| 335 | +-- | |
| 336 | +-- Дамп даних таблиці `page_type_lang` | |
| 337 | +-- | |
| 338 | + | |
| 339 | +INSERT INTO `page_type_lang` (`page_type_id`, `page_type_title`, `lang_id`) VALUES | |
| 340 | +(1, 'Тег', 1), | |
| 341 | +(1, 'Тег', 2), | |
| 342 | +(2, 'Новини', 1), | |
| 343 | +(2, 'Новости', 2), | |
| 344 | +(3, 'Статья', 1), | |
| 345 | +(3, 'Статья', 2), | |
| 346 | +(4, 'Категорія', 1), | |
| 347 | +(4, 'Категория', 2), | |
| 348 | +(5, 'Сторінка', 1), | |
| 349 | +(5, 'Страница', 2); | |
| 198 | 350 | |
| 199 | 351 | -- -------------------------------------------------------- |
| 200 | 352 | |
| ... | ... | @@ -238,34 +390,84 @@ CREATE TABLE IF NOT EXISTS `product_tag` ( |
| 238 | 390 | -- -------------------------------------------------------- |
| 239 | 391 | |
| 240 | 392 | -- |
| 393 | +-- Структура таблиці `template` | |
| 394 | +-- | |
| 395 | + | |
| 396 | +CREATE TABLE IF NOT EXISTS `template` ( | |
| 397 | + `template_id` int(3) NOT NULL AUTO_INCREMENT, | |
| 398 | + `controller_id` int(3) NOT NULL, | |
| 399 | + `template_name` varchar(50) NOT NULL, | |
| 400 | + `template_file` varchar(50) NOT NULL, | |
| 401 | + PRIMARY KEY (`template_id`) | |
| 402 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ; | |
| 403 | + | |
| 404 | +-- | |
| 405 | +-- Дамп даних таблиці `template` | |
| 406 | +-- | |
| 407 | + | |
| 408 | +INSERT INTO `template` (`template_id`, `controller_id`, `template_name`, `template_file`) VALUES | |
| 409 | +(1, 1, 'page', 'page/page'), | |
| 410 | +(2, 2, 'home', 'page/home'), | |
| 411 | +(3, 3, 'catalog', 'shop/catalog'), | |
| 412 | +(4, 0, 'filter', 'shop/filter'), | |
| 413 | +(5, 0, 'news', 'news/all'); | |
| 414 | + | |
| 415 | +-- -------------------------------------------------------- | |
| 416 | + | |
| 417 | +-- | |
| 418 | +-- Структура таблиці `template_lang` | |
| 419 | +-- | |
| 420 | + | |
| 421 | +CREATE TABLE IF NOT EXISTS `template_lang` ( | |
| 422 | + `template_id` int(3) NOT NULL, | |
| 423 | + `template_title` varchar(50) NOT NULL, | |
| 424 | + `lang_id` int(3) NOT NULL, | |
| 425 | + PRIMARY KEY (`template_id`,`lang_id`) | |
| 426 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8; | |
| 427 | + | |
| 428 | +-- | |
| 429 | +-- Дамп даних таблиці `template_lang` | |
| 430 | +-- | |
| 431 | + | |
| 432 | +INSERT INTO `template_lang` (`template_id`, `template_title`, `lang_id`) VALUES | |
| 433 | +(1, 'Страница', 2), | |
| 434 | +(2, 'Главная', 2), | |
| 435 | +(3, 'Каталог', 2), | |
| 436 | +(4, 'Фильтр', 2), | |
| 437 | +(5, 'Новости', 2); | |
| 438 | + | |
| 439 | +-- -------------------------------------------------------- | |
| 440 | + | |
| 441 | +-- | |
| 241 | 442 | -- Структура таблиці `termin` |
| 242 | 443 | -- |
| 243 | 444 | |
| 244 | 445 | CREATE TABLE IF NOT EXISTS `termin` ( |
| 245 | 446 | `termin_id` int(6) NOT NULL AUTO_INCREMENT, |
| 246 | - `termin_type_id` int(2) NOT NULL, | |
| 247 | - `page_id` int(6) NOT NULL DEFAULT '0', | |
| 248 | 447 | PRIMARY KEY (`termin_id`) |
| 249 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=19 ; | |
| 448 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=17 ; | |
| 250 | 449 | |
| 251 | 450 | -- |
| 252 | 451 | -- Дамп даних таблиці `termin` |
| 253 | 452 | -- |
| 254 | 453 | |
| 255 | -INSERT INTO `termin` (`termin_id`, `termin_type_id`, `page_id`) VALUES | |
| 256 | -(1, 5, 1), | |
| 257 | -(2, 0, 0), | |
| 258 | -(3, 0, 0), | |
| 259 | -(4, 0, 0), | |
| 260 | -(5, 0, 0), | |
| 261 | -(6, 0, 0), | |
| 262 | -(7, 0, 0), | |
| 263 | -(8, 0, 0), | |
| 264 | -(9, 0, 0), | |
| 265 | -(10, 0, 0), | |
| 266 | -(16, 0, 0), | |
| 267 | -(17, 0, 0), | |
| 268 | -(18, 0, 0); | |
| 454 | +INSERT INTO `termin` (`termin_id`) VALUES | |
| 455 | +(1), | |
| 456 | +(2), | |
| 457 | +(3), | |
| 458 | +(4), | |
| 459 | +(5), | |
| 460 | +(6), | |
| 461 | +(7), | |
| 462 | +(8), | |
| 463 | +(9), | |
| 464 | +(10), | |
| 465 | +(11), | |
| 466 | +(12), | |
| 467 | +(13), | |
| 468 | +(14), | |
| 469 | +(15), | |
| 470 | +(16); | |
| 269 | 471 | |
| 270 | 472 | -- -------------------------------------------------------- |
| 271 | 473 | |
| ... | ... | @@ -285,19 +487,22 @@ CREATE TABLE IF NOT EXISTS `termin_lang` ( |
| 285 | 487 | -- |
| 286 | 488 | |
| 287 | 489 | INSERT INTO `termin_lang` (`termin_id`, `termin_title`, `lang_id`) VALUES |
| 288 | -(1, 'Головна', 1), | |
| 289 | -(2, 'Завод', 1), | |
| 290 | -(3, 'BMW', 1), | |
| 291 | -(4, 'Mini', 1), | |
| 292 | -(5, 'Года (1996-2000)', 1), | |
| 293 | -(6, 'Кузов', 1), | |
| 294 | -(7, 'Модель', 1), | |
| 295 | -(8, 'Серия', 1), | |
| 296 | -(9, 'Мотор (тип)', 1), | |
| 297 | -(10, 'Мотор (обьем)', 1), | |
| 298 | -(16, '1996', 1), | |
| 299 | -(17, 'X5', 1), | |
| 300 | -(18, 'Новости', 0); | |
| 490 | +(1, 'Главная страница', 2), | |
| 491 | +(2, 'О компании', 2), | |
| 492 | +(3, 'Условия использования', 2), | |
| 493 | +(4, 'Условия сотрудничества', 2), | |
| 494 | +(5, 'Контакты', 2), | |
| 495 | +(6, 'Магазины', 2), | |
| 496 | +(7, 'Поставщики', 2), | |
| 497 | +(8, 'Каталог товаров', 2), | |
| 498 | +(9, 'Оплата', 2), | |
| 499 | +(10, 'Доставка', 2), | |
| 500 | +(11, 'Гарантия', 2), | |
| 501 | +(12, 'Акции ', 2), | |
| 502 | +(13, 'Материалы/блог', 2), | |
| 503 | +(14, 'Арбуз', 2), | |
| 504 | +(15, 'Артишок', 2), | |
| 505 | +(16, 'Баклажан', 2); | |
| 301 | 506 | |
| 302 | 507 | -- -------------------------------------------------------- |
| 303 | 508 | |
| ... | ... | @@ -320,25 +525,22 @@ CREATE TABLE IF NOT EXISTS `termin_option` ( |
| 320 | 525 | -- |
| 321 | 526 | |
| 322 | 527 | INSERT INTO `termin_option` (`termin_id`, `termin_pid`, `level`, `lft`, `rgt`, `sortorder`) VALUES |
| 323 | -(1, 0, 0, 1, 2, 1), | |
| 324 | -(2, 0, 1, 3, 32, 2), | |
| 325 | -(3, 2, 2, 4, 17, 1), | |
| 326 | -(4, 2, 2, 18, 31, 2), | |
| 327 | -(5, 0, 1, 33, 38, 3), | |
| 328 | -(6, 3, 2, 19, 20, 1), | |
| 329 | -(6, 4, 2, 19, 20, 1), | |
| 330 | -(7, 3, 3, 21, 24, 2), | |
| 331 | -(7, 4, 3, 21, 24, 2), | |
| 332 | -(8, 3, 2, 25, 26, 3), | |
| 333 | -(8, 4, 2, 25, 26, 3), | |
| 334 | -(9, 3, 2, 27, 28, 4), | |
| 335 | -(9, 4, 2, 27, 28, 4), | |
| 336 | -(10, 3, 2, 29, 30, 5), | |
| 337 | -(10, 4, 2, 29, 30, 5), | |
| 338 | -(16, 5, 2, 34, 37, 4), | |
| 339 | -(17, 7, 2, 35, 36, 0), | |
| 340 | -(17, 16, 2, 35, 36, 0), | |
| 341 | -(18, 1, 0, 0, 0, 0); | |
| 528 | +(1, 0, 0, 0, 0, 0), | |
| 529 | +(2, 0, 0, 0, 0, 0), | |
| 530 | +(3, 0, 0, 0, 0, 0), | |
| 531 | +(4, 0, 0, 0, 0, 0), | |
| 532 | +(5, 0, 0, 0, 0, 0), | |
| 533 | +(6, 0, 0, 0, 0, 0), | |
| 534 | +(7, 0, 0, 0, 0, 0), | |
| 535 | +(8, 0, 0, 0, 0, 0), | |
| 536 | +(9, 0, 0, 0, 0, 0), | |
| 537 | +(10, 0, 0, 0, 0, 0), | |
| 538 | +(11, 0, 0, 0, 0, 0), | |
| 539 | +(12, 0, 0, 0, 0, 0), | |
| 540 | +(13, 0, 0, 0, 0, 0), | |
| 541 | +(14, 0, 0, 0, 0, 1), | |
| 542 | +(15, 0, 0, 0, 0, 1), | |
| 543 | +(16, 0, 0, 0, 0, 1); | |
| 342 | 544 | |
| 343 | 545 | -- -------------------------------------------------------- |
| 344 | 546 | |
| ... | ... | @@ -354,58 +556,6 @@ CREATE TABLE IF NOT EXISTS `termin_relation` ( |
| 354 | 556 | -- -------------------------------------------------------- |
| 355 | 557 | |
| 356 | 558 | -- |
| 357 | --- Структура таблиці `termin_type` | |
| 358 | --- | |
| 359 | - | |
| 360 | -CREATE TABLE IF NOT EXISTS `termin_type` ( | |
| 361 | - `termin_type_id` int(2) NOT NULL AUTO_INCREMENT, | |
| 362 | - `termin_type_name` varchar(56) NOT NULL, | |
| 363 | - PRIMARY KEY (`termin_type_id`) | |
| 364 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ; | |
| 365 | - | |
| 366 | --- | |
| 367 | --- Дамп даних таблиці `termin_type` | |
| 368 | --- | |
| 369 | - | |
| 370 | -INSERT INTO `termin_type` (`termin_type_id`, `termin_type_name`) VALUES | |
| 371 | -(1, 'tag'), | |
| 372 | -(2, 'news'), | |
| 373 | -(3, 'article'), | |
| 374 | -(4, 'category'), | |
| 375 | -(5, 'page'); | |
| 376 | - | |
| 377 | --- -------------------------------------------------------- | |
| 378 | - | |
| 379 | --- | |
| 380 | --- Структура таблиці `termin_type_lang` | |
| 381 | --- | |
| 382 | - | |
| 383 | -CREATE TABLE IF NOT EXISTS `termin_type_lang` ( | |
| 384 | - `termin_type_id` int(2) NOT NULL, | |
| 385 | - `termin_type_title` varchar(56) NOT NULL, | |
| 386 | - `lang_id` int(2) NOT NULL, | |
| 387 | - PRIMARY KEY (`termin_type_id`,`lang_id`) | |
| 388 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8; | |
| 389 | - | |
| 390 | --- | |
| 391 | --- Дамп даних таблиці `termin_type_lang` | |
| 392 | --- | |
| 393 | - | |
| 394 | -INSERT INTO `termin_type_lang` (`termin_type_id`, `termin_type_title`, `lang_id`) VALUES | |
| 395 | -(1, 'Тег', 1), | |
| 396 | -(1, 'Тег', 2), | |
| 397 | -(2, 'Новини', 1), | |
| 398 | -(2, 'Новости', 2), | |
| 399 | -(3, 'Статья', 1), | |
| 400 | -(3, 'Статья', 2), | |
| 401 | -(4, 'Категорія', 1), | |
| 402 | -(4, 'Категория', 2), | |
| 403 | -(5, 'Сторінка', 1), | |
| 404 | -(5, 'Страница', 2); | |
| 405 | - | |
| 406 | --- -------------------------------------------------------- | |
| 407 | - | |
| 408 | --- | |
| 409 | 559 | -- Структура таблиці `user` |
| 410 | 560 | -- |
| 411 | 561 | ... | ... |
frontend/config/main.php
| ... | ... | @@ -28,6 +28,13 @@ return [ |
| 28 | 28 | 'errorHandler' => [ |
| 29 | 29 | 'errorAction' => 'site/error', |
| 30 | 30 | ], |
| 31 | + 'urlManager' => [ | |
| 32 | + 'enablePrettyUrl' => true, | |
| 33 | + 'showScriptName' => false, | |
| 34 | + 'rules' => [ | |
| 35 | + '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', | |
| 36 | + ] | |
| 37 | + ], | |
| 31 | 38 | ], |
| 32 | 39 | 'params' => $params, |
| 33 | 40 | ]; | ... | ... |
| 1 | +<?php | |
| 2 | + | |
| 3 | +//namespace frontend\controllers; | |
| 4 | + | |
| 5 | +use yii\web\Controller; | |
| 6 | + | |
| 7 | +/** | |
| 8 | + * PageController controller | |
| 9 | + */ | |
| 10 | +class PageController extends Controller | |
| 11 | +{ | |
| 12 | + public function actions() | |
| 13 | + { | |
| 14 | + die; | |
| 15 | + } | |
| 16 | + | |
| 17 | + public function actionIndex() | |
| 18 | + { | |
| 19 | + die; | |
| 20 | + return $this->render('index'); | |
| 21 | + } | |
| 22 | +} | ... | ... |
frontend/controllers/SiteController.php
| ... | ... | @@ -13,6 +13,9 @@ use yii\web\Controller; |
| 13 | 13 | use yii\filters\VerbFilter; |
| 14 | 14 | use yii\filters\AccessControl; |
| 15 | 15 | |
| 16 | +use common\models\Page; | |
| 17 | +use frontend\controllers\PageController; | |
| 18 | + | |
| 16 | 19 | /** |
| 17 | 20 | * Site controller |
| 18 | 21 | */ |
| ... | ... | @@ -53,7 +56,30 @@ class SiteController extends Controller |
| 53 | 56 | * @inheritdoc |
| 54 | 57 | */ |
| 55 | 58 | public function actions() |
| 56 | - { | |
| 59 | + { | |
| 60 | + // парсим URL, находим контроллер и подключаем view-файл | |
| 61 | +/* | |
| 62 | + if ($page = Page::getPageByUrl ('about')) | |
| 63 | + { | |
| 64 | + if (Page::isShow ($page) | |
| 65 | + && $page['template_file'] != NULL | |
| 66 | + && is_file (yii::$app->viewPath.'/'.$page['template_file'].'.php')) | |
| 67 | + { | |
| 68 | + $controller = $page['controller_name'].'Controller'; | |
| 69 | + require_once __DIR__.'/'.$controller.'.php'; | |
| 70 | + | |
| 71 | + //eval ('use '.$controller.';'); | |
| 72 | + | |
| 73 | + //return new $controller; | |
| 74 | + | |
| 75 | + return $this->render('/'.$page['template_file']); | |
| 76 | + //return yii::$app->runAction($page['template_file']); | |
| 77 | + } | |
| 78 | + } | |
| 79 | +*/ | |
| 80 | + | |
| 81 | + | |
| 82 | + // по умолчанию - 404 | |
| 57 | 83 | return [ |
| 58 | 84 | 'error' => [ |
| 59 | 85 | 'class' => 'yii\web\ErrorAction', |
| ... | ... | @@ -71,7 +97,7 @@ class SiteController extends Controller |
| 71 | 97 | * @return mixed |
| 72 | 98 | */ |
| 73 | 99 | public function actionIndex() |
| 74 | - { | |
| 100 | + { | |
| 75 | 101 | return $this->render('index'); |
| 76 | 102 | } |
| 77 | 103 | ... | ... |
frontend/models/Front.php
frontend/views/layouts/main.php
| ... | ... | @@ -45,9 +45,9 @@ AppAsset::register($this); |
| 45 | 45 | // меню с базы |
| 46 | 46 | $menuItems = []; |
| 47 | 47 | |
| 48 | - foreach ((new \frontend\models\Front())->actionMenu() as $row) | |
| 48 | + foreach ((new \frontend\models\Front())->actionMenu('TOP') as $row) | |
| 49 | 49 | { |
| 50 | - $menuItems[] = ['label' => $row['termin_title'], 'url' => $row['termin_id']]; | |
| 50 | + $menuItems[] = ['label' => $row['page_title'], 'url' => $row['page_alias']]; | |
| 51 | 51 | } |
| 52 | 52 | |
| 53 | 53 | if (Yii::$app->user->isGuest) | ... | ... |
frontend/views/site/about.php renamed to frontend/views/site-del/about.php
frontend/views/site/contact.php renamed to frontend/views/site-del/contact.php
| 1 | +<?php | |
| 2 | + | |
| 3 | +/* @var $this yii\web\View */ | |
| 4 | +/* @var $name string */ | |
| 5 | +/* @var $message string */ | |
| 6 | +/* @var $exception Exception */ | |
| 7 | + | |
| 8 | +use yii\helpers\Html; | |
| 9 | + | |
| 10 | +$this->title = $name; | |
| 11 | +?> | |
| 12 | +<div class="site-error"> | |
| 13 | + | |
| 14 | + <h1><?= Html::encode($this->title) ?></h1> | |
| 15 | + | |
| 16 | + <div class="alert alert-danger"> | |
| 17 | + <?= nl2br(Html::encode($message)) ?> | |
| 18 | + </div> | |
| 19 | + | |
| 20 | + <p> | |
| 21 | + The above error occurred while the Web server was processing your request. | |
| 22 | + </p> | |
| 23 | + <p> | |
| 24 | + Please contact us if you think this is a server error. Thank you. | |
| 25 | + </p> | |
| 26 | + | |
| 27 | +</div> | ... | ... |
| 1 | +<?php | |
| 2 | + | |
| 3 | +/* @var $this yii\web\View */ | |
| 4 | + | |
| 5 | +$this->title = 'My Yii Application'; | |
| 6 | +?> | |
| 7 | +<div class="site-index"> | |
| 8 | + | |
| 9 | + <div class="jumbotron"> | |
| 10 | + <h1>Congratulations!</h1> | |
| 11 | + | |
| 12 | + <p class="lead">You have successfully created your Yii-powered application.</p> | |
| 13 | + | |
| 14 | + <p><a class="btn btn-lg btn-success" href="http://www.yiiframework.com">Get started with Yii</a></p> | |
| 15 | + </div> | |
| 16 | + | |
| 17 | + <div class="body-content"> | |
| 18 | + | |
| 19 | + <div class="row"> | |
| 20 | + <div class="col-lg-4"> | |
| 21 | + <h2>Heading</h2> | |
| 22 | + | |
| 23 | + <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et | |
| 24 | + dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip | |
| 25 | + ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu | |
| 26 | + fugiat nulla pariatur.</p> | |
| 27 | + | |
| 28 | + <p><a class="btn btn-default" href="http://www.yiiframework.com/doc/">Yii Documentation »</a></p> | |
| 29 | + </div> | |
| 30 | + <div class="col-lg-4"> | |
| 31 | + <h2>Heading</h2> | |
| 32 | + | |
| 33 | + <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et | |
| 34 | + dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip | |
| 35 | + ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu | |
| 36 | + fugiat nulla pariatur.</p> | |
| 37 | + | |
| 38 | + <p><a class="btn btn-default" href="http://www.yiiframework.com/forum/">Yii Forum »</a></p> | |
| 39 | + </div> | |
| 40 | + <div class="col-lg-4"> | |
| 41 | + <h2>Heading</h2> | |
| 42 | + | |
| 43 | + <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et | |
| 44 | + dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip | |
| 45 | + ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu | |
| 46 | + fugiat nulla pariatur.</p> | |
| 47 | + | |
| 48 | + <p><a class="btn btn-default" href="http://www.yiiframework.com/extensions/">Yii Extensions »</a></p> | |
| 49 | + </div> | |
| 50 | + </div> | |
| 51 | + | |
| 52 | + </div> | |
| 53 | +</div> | ... | ... |
frontend/views/site/login.php renamed to frontend/views/site-del/login.php
frontend/views/site/requestPasswordResetToken.php renamed to frontend/views/site-del/requestPasswordResetToken.php
frontend/views/site/resetPassword.php renamed to frontend/views/site-del/resetPassword.php
frontend/views/site/signup.php renamed to frontend/views/site-del/signup.php