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