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 | } |