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,7 +3,7 @@ | ||
| 3 | -- http://www.phpmyadmin.net | 3 | -- http://www.phpmyadmin.net |
| 4 | -- | 4 | -- |
| 5 | -- Хост: 127.0.0.1:3306 | 5 | -- Хост: 127.0.0.1:3306 |
| 6 | --- Час створення: Лис 09 2015 р., 20:55 | 6 | +-- Час створення: Лис 11 2015 р., 00:03 |
| 7 | -- Версія сервера: 5.5.45 | 7 | -- Версія сервера: 5.5.45 |
| 8 | -- Версія PHP: 5.6.12 | 8 | -- Версія PHP: 5.6.12 |
| 9 | 9 | ||
| @@ -30,7 +30,7 @@ CREATE TABLE IF NOT EXISTS `controller` ( | @@ -30,7 +30,7 @@ CREATE TABLE IF NOT EXISTS `controller` ( | ||
| 30 | `controller_id` int(3) NOT NULL AUTO_INCREMENT, | 30 | `controller_id` int(3) NOT NULL AUTO_INCREMENT, |
| 31 | `controller_name` varchar(50) NOT NULL, | 31 | `controller_name` varchar(50) NOT NULL, |
| 32 | PRIMARY KEY (`controller_id`) | 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 | -- Дамп даних таблиці `controller` | 36 | -- Дамп даних таблиці `controller` |
| @@ -39,7 +39,9 @@ CREATE TABLE IF NOT EXISTS `controller` ( | @@ -39,7 +39,9 @@ CREATE TABLE IF NOT EXISTS `controller` ( | ||
| 39 | INSERT INTO `controller` (`controller_id`, `controller_name`) VALUES | 39 | INSERT INTO `controller` (`controller_id`, `controller_name`) VALUES |
| 40 | (1, 'Page'), | 40 | (1, 'Page'), |
| 41 | (2, 'Home'), | 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,19 +284,19 @@ CREATE TABLE IF NOT EXISTS `page_lang` ( | ||
| 282 | -- | 284 | -- |
| 283 | 285 | ||
| 284 | INSERT INTO `page_lang` (`page_id`, `page_title`, `meta_title`, `meta_description`, `text`, `page_alias`, `lang_id`) VALUES | 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,8 +411,8 @@ INSERT INTO `template` (`template_id`, `controller_id`, `template_name`, `templa | ||
| 409 | (1, 1, 'page', 'page/page'), | 411 | (1, 1, 'page', 'page/page'), |
| 410 | (2, 2, 'home', 'page/home'), | 412 | (2, 2, 'home', 'page/home'), |
| 411 | (3, 3, 'catalog', 'shop/catalog'), | 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,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 | -- Структура таблиці `user` | 587 | -- Структура таблиці `user` |
| 560 | -- | 588 | -- |
| 561 | 589 |
frontend/controllers/PageController.php
| @@ -15,7 +15,7 @@ class PageController extends Controller | @@ -15,7 +15,7 @@ class PageController extends Controller | ||
| 15 | * | 15 | * |
| 16 | * @return mixed | 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 | $page = Page::getPageById ($page_id); | 21 | $page = Page::getPageById ($page_id); |
| @@ -29,7 +29,7 @@ class PageController extends Controller | @@ -29,7 +29,7 @@ class PageController extends Controller | ||
| 29 | 'content' => $page['meta_description'], | 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 | \ No newline at end of file | 36 | \ No newline at end of file |
frontend/controllers/SiteController.php
| @@ -55,7 +55,8 @@ class SiteController extends Controller | @@ -55,7 +55,8 @@ class SiteController extends Controller | ||
| 55 | * @inheritdoc | 55 | * @inheritdoc |
| 56 | */ | 56 | */ |
| 57 | public function actions() | 57 | public function actions() |
| 58 | - { | 58 | + { |
| 59 | + | ||
| 59 | // по умолчанию - 404 | 60 | // по умолчанию - 404 |
| 60 | return [ | 61 | return [ |
| 61 | 'error' => [ | 62 | 'error' => [ |
| @@ -74,21 +75,28 @@ class SiteController extends Controller | @@ -74,21 +75,28 @@ class SiteController extends Controller | ||
| 74 | * @return mixed | 75 | * @return mixed |
| 75 | */ | 76 | */ |
| 76 | public function actionIndex() | 77 | public function actionIndex() |
| 77 | - { | 78 | + { |
| 78 | // парсим URL, находим контроллер и подключаем view-файл | 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 | return Yii::$app->runAction($page['template_file'], [ | 91 | return Yii::$app->runAction($page['template_file'], [ |
| 92 | + 'controller_name' => $page['controller_name'], | ||
| 87 | 'page_id' => $page['page_id'], | 93 | 'page_id' => $page['page_id'], |
| 88 | 'template_file' => $page['template_file'], | 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,6 +104,7 @@ class SiteController extends Controller | ||
| 96 | * | 104 | * |
| 97 | * @return mixed | 105 | * @return mixed |
| 98 | */ | 106 | */ |
| 107 | +/* | ||
| 99 | public function actionLogin() | 108 | public function actionLogin() |
| 100 | { | 109 | { |
| 101 | if (!\Yii::$app->user->isGuest) { | 110 | if (!\Yii::$app->user->isGuest) { |
| @@ -111,24 +120,26 @@ class SiteController extends Controller | @@ -111,24 +120,26 @@ class SiteController extends Controller | ||
| 111 | ]); | 120 | ]); |
| 112 | } | 121 | } |
| 113 | } | 122 | } |
| 114 | - | 123 | +*/ |
| 115 | /** | 124 | /** |
| 116 | * Logs out the current user. | 125 | * Logs out the current user. |
| 117 | * | 126 | * |
| 118 | * @return mixed | 127 | * @return mixed |
| 119 | */ | 128 | */ |
| 129 | +/* | ||
| 120 | public function actionLogout() | 130 | public function actionLogout() |
| 121 | { | 131 | { |
| 122 | Yii::$app->user->logout(); | 132 | Yii::$app->user->logout(); |
| 123 | 133 | ||
| 124 | return $this->goHome(); | 134 | return $this->goHome(); |
| 125 | } | 135 | } |
| 126 | - | 136 | +*/ |
| 127 | /** | 137 | /** |
| 128 | * Displays contact page. | 138 | * Displays contact page. |
| 129 | * | 139 | * |
| 130 | * @return mixed | 140 | * @return mixed |
| 131 | */ | 141 | */ |
| 142 | +/* | ||
| 132 | public function actionContact() | 143 | public function actionContact() |
| 133 | { | 144 | { |
| 134 | $model = new ContactForm(); | 145 | $model = new ContactForm(); |
| @@ -146,6 +157,7 @@ class SiteController extends Controller | @@ -146,6 +157,7 @@ class SiteController extends Controller | ||
| 146 | ]); | 157 | ]); |
| 147 | } | 158 | } |
| 148 | } | 159 | } |
| 160 | +*/ | ||
| 149 | 161 | ||
| 150 | /** | 162 | /** |
| 151 | * Displays about page. | 163 | * Displays about page. |
| @@ -162,6 +174,7 @@ class SiteController extends Controller | @@ -162,6 +174,7 @@ class SiteController extends Controller | ||
| 162 | * | 174 | * |
| 163 | * @return mixed | 175 | * @return mixed |
| 164 | */ | 176 | */ |
| 177 | +/* | ||
| 165 | public function actionSignup() | 178 | public function actionSignup() |
| 166 | { | 179 | { |
| 167 | $model = new SignupForm(); | 180 | $model = new SignupForm(); |
| @@ -177,12 +190,14 @@ class SiteController extends Controller | @@ -177,12 +190,14 @@ class SiteController extends Controller | ||
| 177 | 'model' => $model, | 190 | 'model' => $model, |
| 178 | ]); | 191 | ]); |
| 179 | } | 192 | } |
| 180 | - | 193 | +*/ |
| 194 | + | ||
| 181 | /** | 195 | /** |
| 182 | * Requests password reset. | 196 | * Requests password reset. |
| 183 | * | 197 | * |
| 184 | * @return mixed | 198 | * @return mixed |
| 185 | */ | 199 | */ |
| 200 | +/* | ||
| 186 | public function actionRequestPasswordReset() | 201 | public function actionRequestPasswordReset() |
| 187 | { | 202 | { |
| 188 | $model = new PasswordResetRequestForm(); | 203 | $model = new PasswordResetRequestForm(); |
| @@ -200,6 +215,7 @@ class SiteController extends Controller | @@ -200,6 +215,7 @@ class SiteController extends Controller | ||
| 200 | 'model' => $model, | 215 | 'model' => $model, |
| 201 | ]); | 216 | ]); |
| 202 | } | 217 | } |
| 218 | +*/ | ||
| 203 | 219 | ||
| 204 | /** | 220 | /** |
| 205 | * Resets password. | 221 | * Resets password. |
| @@ -208,6 +224,7 @@ class SiteController extends Controller | @@ -208,6 +224,7 @@ class SiteController extends Controller | ||
| 208 | * @return mixed | 224 | * @return mixed |
| 209 | * @throws BadRequestHttpException | 225 | * @throws BadRequestHttpException |
| 210 | */ | 226 | */ |
| 227 | +/* | ||
| 211 | public function actionResetPassword($token) | 228 | public function actionResetPassword($token) |
| 212 | { | 229 | { |
| 213 | try { | 230 | try { |
| @@ -226,4 +243,5 @@ class SiteController extends Controller | @@ -226,4 +243,5 @@ class SiteController extends Controller | ||
| 226 | 'model' => $model, | 243 | 'model' => $model, |
| 227 | ]); | 244 | ]); |
| 228 | } | 245 | } |
| 246 | +*/ | ||
| 229 | } | 247 | } |