Commit 8609d3110e2bd6f9a66ab9922a8be21fedef154b
1 parent
703388f5
Парсинг url и подгрузка страниц без всякой регулярки
Showing
3 changed files
with
79 additions
and
33 deletions
Show diff stats
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 | --- Час створення: Лис 09 2015 р., 20:55 | |
| 6 | +-- Час створення: Лис 11 2015 р., 00:03 | |
| 7 | 7 | -- Версія сервера: 5.5.45 |
| 8 | 8 | -- Версія PHP: 5.6.12 |
| 9 | 9 | |
| ... | ... | @@ -30,7 +30,7 @@ CREATE TABLE IF NOT EXISTS `controller` ( |
| 30 | 30 | `controller_id` int(3) NOT NULL AUTO_INCREMENT, |
| 31 | 31 | `controller_name` varchar(50) NOT NULL, |
| 32 | 32 | PRIMARY KEY (`controller_id`) |
| 33 | -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; | |
| 33 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ; | |
| 34 | 34 | |
| 35 | 35 | -- |
| 36 | 36 | -- Дамп даних таблиці `controller` |
| ... | ... | @@ -39,7 +39,9 @@ CREATE TABLE IF NOT EXISTS `controller` ( |
| 39 | 39 | INSERT INTO `controller` (`controller_id`, `controller_name`) VALUES |
| 40 | 40 | (1, 'Page'), |
| 41 | 41 | (2, 'Home'), |
| 42 | -(3, 'Catlog'); | |
| 42 | +(3, 'Catlog'), | |
| 43 | +(4, 'News'), | |
| 44 | +(5, 'Filter'); | |
| 43 | 45 | |
| 44 | 46 | -- -------------------------------------------------------- |
| 45 | 47 | |
| ... | ... | @@ -282,19 +284,19 @@ CREATE TABLE IF NOT EXISTS `page_lang` ( |
| 282 | 284 | -- |
| 283 | 285 | |
| 284 | 286 | 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); | |
| 287 | +(1, 'Главная страница', 'Главная страница | ukrseeds.net.ua', '', '', '/', 2), | |
| 288 | +(2, 'О компании', 'О компании | ukrseeds.net.ua', '', 'На протяжении уже нескольких лет, наша компания производит заготовку и выращивание на договорной основе семян овощных и цветочных культур в Украине, а также ведет тесное сотрудничество с ведущими европейскими семенными компаниями. Перед тем как поступить в продажу, продукция проходит проверку в нашей лаборатории и Государственной семенной инспекции, что подтверждается сертификатом и гарантирует качество семян согласно ГОСТу Украины. ', 'about', 2), | |
| 289 | +(3, 'Условия использования', 'Условия использования | ukrseeds.net.ua', '', '', 'use', 2), | |
| 290 | +(4, 'Условия сотрудничества', 'Условия сотрудничества | ukrseeds.net.ua', '', '', 'corporation', 2), | |
| 291 | +(5, 'Контакты', 'Контакты | ukrseeds.net.ua', '', 'Головной офис:<br/>\r\nг. Киев-04128, ул. Стеценка, 35,<br/>\r\nт/ф: /044/ 503-7827, e-mail: ukrseeds@gmail.com<br/>\r\nFacebook <br/>\r\n<br/>\r\nМелкооптовая продажа:<br/>\r\nг. Киев, бульвар Академика Вернадского, 14А,<br/>\r\nтел.: /044/ 450-7932, факс: /044/ 452-6497,<br/>\r\ne-mail: 4507932@gmail.com <br/>', 'contacts', 2), | |
| 292 | +(6, 'Магазины', 'Магазины | ukrseeds.net.ua', '', '', 'shops', 2), | |
| 293 | +(7, 'Поставщики', 'Поставщики | ukrseeds.net.ua', '', 'На сегодняшний день, благодаря динамическому развитию дилерской сети, наша продукция представлена во многих регионах Украины, и уже многие имели возможность удостовериться в качестве наших семян.\nС уважением,\nдиректор ТМ "Семена Украины"', 'vendors', 2), | |
| 294 | +(8, 'Каталог товаров', 'Каталог товаров | ukrseeds.net.ua', '', '', 'catalog', 2), | |
| 295 | +(9, 'Оплата', 'Оплата | ukrseeds.net.ua', '', '', 'payment', 2), | |
| 296 | +(10, 'Доставка', 'Доставка | ukrseeds.net.ua', '', '', 'delivery', 2), | |
| 297 | +(11, 'Гарантия', 'Гарантия | ukrseeds.net.ua', '', '', 'warranty', 2), | |
| 298 | +(12, 'Акции', 'Акции | ukrseeds.net.ua', '', '', 'promotion', 2), | |
| 299 | +(13, 'Новости', 'Новости | ukrseeds.net.ua', '', '', 'news', 2); | |
| 298 | 300 | |
| 299 | 301 | -- -------------------------------------------------------- |
| 300 | 302 | |
| ... | ... | @@ -409,8 +411,8 @@ INSERT INTO `template` (`template_id`, `controller_id`, `template_name`, `templa |
| 409 | 411 | (1, 1, 'page', 'page/page'), |
| 410 | 412 | (2, 2, 'home', 'page/home'), |
| 411 | 413 | (3, 3, 'catalog', 'shop/catalog'), |
| 412 | -(4, 0, 'filter', 'shop/filter'), | |
| 413 | -(5, 0, 'news', 'news/all'); | |
| 414 | +(4, 5, 'filter', 'shop/filter'), | |
| 415 | +(5, 4, 'news', 'news/all'); | |
| 414 | 416 | |
| 415 | 417 | -- -------------------------------------------------------- |
| 416 | 418 | |
| ... | ... | @@ -556,6 +558,32 @@ CREATE TABLE IF NOT EXISTS `termin_relation` ( |
| 556 | 558 | -- -------------------------------------------------------- |
| 557 | 559 | |
| 558 | 560 | -- |
| 561 | +-- Структура таблиці `translate` | |
| 562 | +-- | |
| 563 | + | |
| 564 | +CREATE TABLE IF NOT EXISTS `translate` ( | |
| 565 | + `translate_id` int(6) NOT NULL AUTO_INCREMENT, | |
| 566 | + `translate_key` varchar(20) NOT NULL, | |
| 567 | + PRIMARY KEY (`translate_id`), | |
| 568 | + UNIQUE KEY `translate_key` (`translate_key`) | |
| 569 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; | |
| 570 | + | |
| 571 | +-- -------------------------------------------------------- | |
| 572 | + | |
| 573 | +-- | |
| 574 | +-- Структура таблиці `translate_lang` | |
| 575 | +-- | |
| 576 | + | |
| 577 | +CREATE TABLE IF NOT EXISTS `translate_lang` ( | |
| 578 | + `translate_id` int(6) NOT NULL, | |
| 579 | + `translate_value` varchar(3000) NOT NULL, | |
| 580 | + `lang_id` int(2) NOT NULL, | |
| 581 | + PRIMARY KEY (`translate_id`,`lang_id`) | |
| 582 | +) ENGINE=InnoDB DEFAULT CHARSET=utf8; | |
| 583 | + | |
| 584 | +-- -------------------------------------------------------- | |
| 585 | + | |
| 586 | +-- | |
| 559 | 587 | -- Структура таблиці `user` |
| 560 | 588 | -- |
| 561 | 589 | ... | ... |
frontend/controllers/PageController.php
| ... | ... | @@ -15,7 +15,7 @@ class PageController extends Controller |
| 15 | 15 | * |
| 16 | 16 | * @return mixed |
| 17 | 17 | */ |
| 18 | - public function actionPage($page_id, $template_file) | |
| 18 | + public function actionPage($controller_name, $page_id, $template_file) | |
| 19 | 19 | { |
| 20 | 20 | // страница |
| 21 | 21 | $page = Page::getPageById ($page_id); |
| ... | ... | @@ -29,7 +29,7 @@ class PageController extends Controller |
| 29 | 29 | 'content' => $page['meta_description'], |
| 30 | 30 | ]); |
| 31 | 31 | |
| 32 | - return $this->render('page', $page); | |
| 32 | + return $this->render($controller_name, $page); | |
| 33 | 33 | } |
| 34 | 34 | |
| 35 | 35 | } |
| 36 | 36 | \ No newline at end of file | ... | ... |
frontend/controllers/SiteController.php
| ... | ... | @@ -55,7 +55,8 @@ class SiteController extends Controller |
| 55 | 55 | * @inheritdoc |
| 56 | 56 | */ |
| 57 | 57 | public function actions() |
| 58 | - { | |
| 58 | + { | |
| 59 | + | |
| 59 | 60 | // по умолчанию - 404 |
| 60 | 61 | return [ |
| 61 | 62 | 'error' => [ |
| ... | ... | @@ -74,21 +75,28 @@ class SiteController extends Controller |
| 74 | 75 | * @return mixed |
| 75 | 76 | */ |
| 76 | 77 | public function actionIndex() |
| 77 | - { | |
| 78 | + { | |
| 78 | 79 | // парсим URL, находим контроллер и подключаем view-файл |
| 79 | - | |
| 80 | - if ($page = Page::getPageByUrl ('about')) | |
| 81 | - { | |
| 82 | - if (Page::isShow ($page) | |
| 83 | - && $page['template_file'] != NULL | |
| 84 | - && is_file (yii::$app->viewPath.'/'.$page['template_file'].'.php')) | |
| 85 | - { | |
| 80 | + if (($url = substr(yii::$app->request->url, 1)) == '') | |
| 81 | + { | |
| 82 | + $url = '/'; | |
| 83 | + } | |
| 84 | + | |
| 85 | + if ($page = Page::getPageByUrl ($url)) | |
| 86 | + { | |
| 87 | + if (Page::isShow ($page) | |
| 88 | + && $page['template_file'] != NULL | |
| 89 | + && is_file (yii::$app->viewPath.'/'.$page['template_file'].'.php')) | |
| 90 | + { | |
| 86 | 91 | return Yii::$app->runAction($page['template_file'], [ |
| 92 | + 'controller_name' => $page['controller_name'], | |
| 87 | 93 | 'page_id' => $page['page_id'], |
| 88 | 94 | 'template_file' => $page['template_file'], |
| 89 | 95 | ]); |
| 90 | 96 | } |
| 91 | - } | |
| 97 | + } | |
| 98 | + | |
| 99 | + return $this->render('index'); | |
| 92 | 100 | } |
| 93 | 101 | |
| 94 | 102 | /** |
| ... | ... | @@ -96,6 +104,7 @@ class SiteController extends Controller |
| 96 | 104 | * |
| 97 | 105 | * @return mixed |
| 98 | 106 | */ |
| 107 | +/* | |
| 99 | 108 | public function actionLogin() |
| 100 | 109 | { |
| 101 | 110 | if (!\Yii::$app->user->isGuest) { |
| ... | ... | @@ -111,24 +120,26 @@ class SiteController extends Controller |
| 111 | 120 | ]); |
| 112 | 121 | } |
| 113 | 122 | } |
| 114 | - | |
| 123 | +*/ | |
| 115 | 124 | /** |
| 116 | 125 | * Logs out the current user. |
| 117 | 126 | * |
| 118 | 127 | * @return mixed |
| 119 | 128 | */ |
| 129 | +/* | |
| 120 | 130 | public function actionLogout() |
| 121 | 131 | { |
| 122 | 132 | Yii::$app->user->logout(); |
| 123 | 133 | |
| 124 | 134 | return $this->goHome(); |
| 125 | 135 | } |
| 126 | - | |
| 136 | +*/ | |
| 127 | 137 | /** |
| 128 | 138 | * Displays contact page. |
| 129 | 139 | * |
| 130 | 140 | * @return mixed |
| 131 | 141 | */ |
| 142 | +/* | |
| 132 | 143 | public function actionContact() |
| 133 | 144 | { |
| 134 | 145 | $model = new ContactForm(); |
| ... | ... | @@ -146,6 +157,7 @@ class SiteController extends Controller |
| 146 | 157 | ]); |
| 147 | 158 | } |
| 148 | 159 | } |
| 160 | +*/ | |
| 149 | 161 | |
| 150 | 162 | /** |
| 151 | 163 | * Displays about page. |
| ... | ... | @@ -162,6 +174,7 @@ class SiteController extends Controller |
| 162 | 174 | * |
| 163 | 175 | * @return mixed |
| 164 | 176 | */ |
| 177 | +/* | |
| 165 | 178 | public function actionSignup() |
| 166 | 179 | { |
| 167 | 180 | $model = new SignupForm(); |
| ... | ... | @@ -177,12 +190,14 @@ class SiteController extends Controller |
| 177 | 190 | 'model' => $model, |
| 178 | 191 | ]); |
| 179 | 192 | } |
| 180 | - | |
| 193 | +*/ | |
| 194 | + | |
| 181 | 195 | /** |
| 182 | 196 | * Requests password reset. |
| 183 | 197 | * |
| 184 | 198 | * @return mixed |
| 185 | 199 | */ |
| 200 | +/* | |
| 186 | 201 | public function actionRequestPasswordReset() |
| 187 | 202 | { |
| 188 | 203 | $model = new PasswordResetRequestForm(); |
| ... | ... | @@ -200,6 +215,7 @@ class SiteController extends Controller |
| 200 | 215 | 'model' => $model, |
| 201 | 216 | ]); |
| 202 | 217 | } |
| 218 | +*/ | |
| 203 | 219 | |
| 204 | 220 | /** |
| 205 | 221 | * Resets password. |
| ... | ... | @@ -208,6 +224,7 @@ class SiteController extends Controller |
| 208 | 224 | * @return mixed |
| 209 | 225 | * @throws BadRequestHttpException |
| 210 | 226 | */ |
| 227 | +/* | |
| 211 | 228 | public function actionResetPassword($token) |
| 212 | 229 | { |
| 213 | 230 | try { |
| ... | ... | @@ -226,4 +243,5 @@ class SiteController extends Controller |
| 226 | 243 | 'model' => $model, |
| 227 | 244 | ]); |
| 228 | 245 | } |
| 246 | +*/ | |
| 229 | 247 | } | ... | ... |