Commit b905419d39dad9b10c06216559e84207ba134310
1 parent
66285eca
big commti
Showing
20 changed files
with
266 additions
and
211 deletions
Show diff stats
.htaccess
... | ... | @@ -13,7 +13,6 @@ AddDefaultCharset utf-8 |
13 | 13 | RewriteBase / |
14 | 14 | # deal with admin first |
15 | 15 | |
16 | - | |
17 | 16 | Redirect 301 /Kak_vibrat_ryuksak / |
18 | 17 | Redirect 301 /products/ryukzaki /catalog/ryukzaki |
19 | 18 | Redirect 301 /products/koshel_ki /catalog/koshelki |
... | ... | @@ -90,10 +89,8 @@ AddDefaultCharset utf-8 |
90 | 89 | RewriteCond %{THE_REQUEST} \s/+(.+?)/+[?\s] |
91 | 90 | RewriteRule /$ /%1 [R,L] |
92 | 91 | |
93 | - | |
94 | - | |
95 | -# RewriteCond %{HTTP_HOST} ^([^www].*)$ | |
96 | -# RewriteRule ^(.*)$ http://www.%1/$1 [R=301] | |
92 | + RewriteCond %{HTTP_HOST} ^([^www].*)$ | |
93 | + RewriteRule ^(.*)$ http://www.%1/$1 [R=301] | |
97 | 94 | |
98 | 95 | </IfModule> |
99 | 96 | ... | ... |
backend/controllers/EventController.php
common/models/Event.php
common/modules/product/CatalogUrlManager.php
... | ... | @@ -2,10 +2,12 @@ |
2 | 2 | |
3 | 3 | namespace common\modules\product; |
4 | 4 | |
5 | - | |
5 | +use common\modules\product\helpers\FilterHelper; | |
6 | +use common\modules\product\models\Brand; | |
7 | +use common\modules\product\models\BrandSearch; | |
6 | 8 | use common\modules\product\models\CategorySearch; |
7 | 9 | use common\modules\product\models\ProductSearch; |
8 | - | |
10 | +use common\modules\rubrication\models\TaxOption; | |
9 | 11 | use Yii; |
10 | 12 | use yii\helpers\Url; |
11 | 13 | use yii\web\HttpException; |
... | ... | @@ -13,6 +15,8 @@ use yii\web\UrlRuleInterface; |
13 | 15 | |
14 | 16 | class CatalogUrlManager implements UrlRuleInterface { |
15 | 17 | public $route_map = []; |
18 | + | |
19 | + public $option_prefix = 'o:'; | |
16 | 20 | /** |
17 | 21 | * Parses the given request and returns the corresponding route and parameters. |
18 | 22 | * @param \yii\web\UrlManager $manager the URL manager |
... | ... | @@ -25,12 +29,6 @@ class CatalogUrlManager implements UrlRuleInterface { |
25 | 29 | $pathInfo = $request->getPathInfo(); |
26 | 30 | $paths = explode('/', $pathInfo); |
27 | 31 | |
28 | - if(isset($paths[1])) { | |
29 | - if(strripos($request->url,'catalog/'.$paths[1].'?') && (!strripos($request->url,'?page')) && (!strripos($request->url,'?sort'))){ | |
30 | - throw new HttpException(404 ,'Page not found'); | |
31 | - } | |
32 | - | |
33 | - } | |
34 | 32 | |
35 | 33 | |
36 | 34 | if (!array_key_exists($paths[0], $this->route_map)) { |
... | ... | @@ -56,6 +54,24 @@ class CatalogUrlManager implements UrlRuleInterface { |
56 | 54 | $this->parseFilter($paths[2], $params); |
57 | 55 | |
58 | 56 | } |
57 | + else if(strpos($paths[2], 'filter:') === 0){ | |
58 | + $this->parseOldFilter($paths[2], $params); | |
59 | + //['catalog/category', 'category' => $category, 'filters' =>$params['filter']] | |
60 | + | |
61 | + $optionsTemplate = FilterHelper::optionsTemplate(); | |
62 | + array_unshift($optionsTemplate, "special", "brands"); | |
63 | + $filterView = []; | |
64 | + foreach($optionsTemplate as $optionKey){ | |
65 | + if(isset($params['filter'][$optionKey])){ | |
66 | + $filterView[$optionKey] = $params['filter'][$optionKey]; | |
67 | + } | |
68 | + | |
69 | + | |
70 | + } | |
71 | + | |
72 | + | |
73 | + Yii::$app->response->redirect(['catalog/category', 'category' => $category, 'filters' =>$filterView],301); | |
74 | + } | |
59 | 75 | else { |
60 | 76 | throw new HttpException(404 ,'Page not found'); |
61 | 77 | } |
... | ... | @@ -95,7 +111,6 @@ class CatalogUrlManager implements UrlRuleInterface { |
95 | 111 | if (!empty($params['category'])) { |
96 | 112 | $category_alias = is_object($params['category']) ? $params['category']->alias : strtolower($params['category']); |
97 | 113 | $url = 'catalog/'. $category_alias .'/'; |
98 | - unset($params['category']); | |
99 | 114 | } else { |
100 | 115 | $url = 'catalog/'; |
101 | 116 | } |
... | ... | @@ -118,7 +133,6 @@ class CatalogUrlManager implements UrlRuleInterface { |
118 | 133 | case 'catalog/product': |
119 | 134 | if (!empty($params['product'])) { |
120 | 135 | $product_alias = is_object($params['product']) ? $params['product']->alias : strtolower($params['product']); |
121 | - unset($params['product']); | |
122 | 136 | } |
123 | 137 | $url = 'product/'. $product_alias; |
124 | 138 | |
... | ... | @@ -131,6 +145,23 @@ class CatalogUrlManager implements UrlRuleInterface { |
131 | 145 | return $url; |
132 | 146 | break; |
133 | 147 | |
148 | +// case 'catalog/brands': | |
149 | +// if (empty($params['brand'])) { | |
150 | +// return 'brands'; | |
151 | +// } else { | |
152 | +// | |
153 | +// $brand_alias = is_object($params['brand']) ? $params['brand']->alias : strtolower($params['brand']); | |
154 | +// } | |
155 | +// $url = 'brands/'. $brand_alias .'/'; | |
156 | +// | |
157 | +// $this->setFilterUrl($params, $url); | |
158 | +// | |
159 | +// if (!empty($params) && ($query = http_build_query($params)) !== '') { | |
160 | +// $url .= '?' . $query; | |
161 | +// } | |
162 | +// | |
163 | +// return $url; | |
164 | +// break; | |
134 | 165 | } |
135 | 166 | } |
136 | 167 | |
... | ... | @@ -173,18 +204,51 @@ class CatalogUrlManager implements UrlRuleInterface { |
173 | 204 | if (empty($filter_option)) { |
174 | 205 | continue; |
175 | 206 | } |
207 | + $filter_exp = explode('=', $filter_option); | |
208 | + | |
209 | + if(isset($filter_exp[1])){ | |
210 | + list($filter_key, $filter_option) = explode('=', $filter_option); | |
211 | + if($filter_key == 'prices') { // price-interval section | |
212 | + $prices = explode(':', $filter_option); | |
213 | + $params['filters'][$filter_key] = [ | |
214 | + 'min' => floatval($prices[0]), | |
215 | + 'max' => floatval($prices[1]), | |
216 | + ]; | |
217 | + } | |
218 | + else { // brands and other sections | |
219 | + $params['filters'][$filter_key] = explode(',', $filter_option); | |
220 | + } | |
221 | + } else { | |
222 | + throw new HttpException(404 ,'Page not found'); | |
223 | + } | |
224 | + | |
225 | + } | |
226 | + } | |
227 | + | |
228 | + | |
229 | + | |
230 | + private function parseOldFilter($paths, &$params) { | |
231 | + $params['filter'] = []; | |
232 | + $filter_str = substr($paths, 7); | |
233 | + $filter_options = explode(';', $filter_str); | |
234 | + foreach ($filter_options as $filter_option) { | |
235 | + if (empty($filter_option)) { | |
236 | + continue; | |
237 | + } | |
176 | 238 | list($filter_key, $filter_option) = explode('=', $filter_option); |
177 | 239 | if($filter_key == 'prices') { // price-interval section |
178 | 240 | $prices = explode(':', $filter_option); |
179 | - $params['filters'][$filter_key] = [ | |
241 | + $params['filter'][$filter_key] = [ | |
180 | 242 | 'min' => floatval($prices[0]), |
181 | 243 | 'max' => floatval($prices[1]), |
182 | 244 | ]; |
183 | 245 | } |
246 | + elseif (strpos($filter_key, $this->option_prefix) === 0) { // options section | |
247 | + $params['filter'][substr($filter_key, 2)] = explode(',', $filter_option); | |
248 | + } | |
184 | 249 | else { // brands and other sections |
185 | - $params['filters'][$filter_key] = explode(',', $filter_option); | |
250 | + $params['filter'][$filter_key] = explode(',', $filter_option); | |
186 | 251 | } |
187 | 252 | } |
188 | 253 | } |
189 | - | |
190 | 254 | } |
191 | 255 | \ No newline at end of file | ... | ... |
common/modules/product/models/Category.php
... | ... | @@ -208,7 +208,6 @@ class Category extends \yii\db\ActiveRecord |
208 | 208 | ->innerJoin('product_variant', 'product_variant.product_variant_id = product_variant_option.product_variant_id') |
209 | 209 | ->innerJoin('product', 'product.product_id = product_variant.product_id') |
210 | 210 | ->innerJoin('product_category', 'product_category.product_id = product.product_id') |
211 | - ->innerJoin('tax_value_string', 'tax_value_string.tax_option_id = tax_option.tax_option_id') | |
212 | 211 | ->innerJoin('tax_group_to_category', 'tax_group.tax_group_id = tax_group_to_category.tax_group_id') |
213 | 212 | ->where(['product_category.category_id' => $this->category_id, 'tax_group.is_filter' => TRUE,'tax_group_to_category.category_id'=>$this->category_id]) |
214 | 213 | ->andWhere(['!=', 'product_variant.stock', 0]); |
... | ... | @@ -224,7 +223,6 @@ class Category extends \yii\db\ActiveRecord |
224 | 223 | ->innerJoin('product', 'product.product_id = product_option.product_id') |
225 | 224 | ->innerJoin('product_category', 'product_category.product_id = product.product_id') |
226 | 225 | ->innerJoin('product_variant', 'product_variant.product_id = product.product_id') |
227 | - ->innerJoin('tax_value_string', 'tax_value_string.tax_option_id = tax_option.tax_option_id') | |
228 | 226 | ->innerJoin('tax_group_to_category', 'tax_group.tax_group_id = tax_group_to_category.tax_group_id') |
229 | 227 | ->where(['product_category.category_id' => $this->category_id, 'tax_group.is_filter' => TRUE,'tax_group_to_category.category_id'=>$this->category_id]) |
230 | 228 | ->andWhere(['!=', 'product_variant.stock', 0]); |
... | ... | @@ -234,14 +232,13 @@ class Category extends \yii\db\ActiveRecord |
234 | 232 | 'tax_group.*', |
235 | 233 | 'tax_option.alias as option_alias', |
236 | 234 | 'tax_group.alias as group_alias', |
237 | - 'tax_value_string.value as value', | |
235 | + 'tax_option.name as value', | |
238 | 236 | 'tax_option.sort AS tax_option_sort', |
239 | 237 | 'tax_group.sort AS tax_group_sort', |
240 | 238 | ]) |
241 | 239 | ->from(['tax_option' ]) |
242 | 240 | ->where(['tax_option.tax_option_id'=>$query1->union($query2)]) |
243 | 241 | ->innerJoin('tax_group','tax_group.tax_group_id = tax_option.tax_group_id') |
244 | - ->innerJoin('tax_value_string', 'tax_value_string.tax_option_id = tax_option.tax_option_id') | |
245 | 242 | ->orderBy('tax_option.sort, tax_group.sort'); |
246 | 243 | return $query3; |
247 | 244 | } |
... | ... | @@ -251,9 +248,8 @@ class Category extends \yii\db\ActiveRecord |
251 | 248 | |
252 | 249 | $connection = Yii::$app->getDb(); |
253 | 250 | $command = $connection->createCommand(' |
254 | - SELECT ton.alias as option_alias, * | |
251 | + SELECT ton.alias as option_alias,ton.name as value, * | |
255 | 252 | FROM tax_option as ton |
256 | - LEFT JOIN tax_value_string as tvs ON ton.tax_option_id = tvs.tax_option_id | |
257 | 253 | RIGHT JOIN tax_group ON ton.tax_group_id = tax_group.tax_group_id |
258 | 254 | RIGHT JOIN tax_group_to_category ON tax_group.tax_group_id = tax_group_to_category.tax_group_id |
259 | 255 | WHERE ton.tax_option_id IN ( |
... | ... | @@ -276,7 +272,7 @@ class Category extends \yii\db\ActiveRecord |
276 | 272 | |
277 | 273 | public function setTaxGroup($value) |
278 | 274 | { |
279 | - return $this->tax_group = $value; | |
275 | + return $this->taxgroup = $value; | |
280 | 276 | } |
281 | 277 | |
282 | 278 | public function getTaxGroup() | ... | ... |
frontend/controllers/OrderController.php
... | ... | @@ -118,11 +118,7 @@ |
118 | 118 | 'basket' => $basket, |
119 | 119 | ]); |
120 | 120 | } |
121 | - | |
122 | - public function actionSuccess() | |
123 | - { | |
124 | - return $this->render('success'); | |
125 | - } | |
121 | + | |
126 | 122 | |
127 | 123 | public function actionQuick() |
128 | 124 | { |
... | ... | @@ -168,7 +164,14 @@ |
168 | 164 | throw new InvalidConfigException('Товар не найден или не удалось загрузить данные о покупателе.'); |
169 | 165 | } |
170 | 166 | } |
171 | - | |
167 | + | |
168 | + | |
169 | + public function actionSuccess() | |
170 | + { | |
171 | + return $this->render('success'); | |
172 | + } | |
173 | + | |
174 | + | |
172 | 175 | public function actionQuickBasket() |
173 | 176 | { |
174 | 177 | $response = \Yii::$app->response; | ... | ... |
frontend/views/catalog/_product_item.php
... | ... | @@ -51,8 +51,7 @@ use yii\helpers\Url; |
51 | 51 | <?php if($model->variant->price_old){?> |
52 | 52 | <div class="dlexfduinxipi"> |
53 | 53 | <span class="main"> |
54 | - <s><?= $model->variant->price_old ?> | |
55 | - <span class="currency">грн</span><s> | |
54 | + <s><?= $model->variant->price_old ?><span class="currency">грн</span></s> | |
56 | 55 | </span> |
57 | 56 | </div> |
58 | 57 | <?php }?> | ... | ... |
frontend/views/catalog/product.php
... | ... | @@ -137,15 +137,25 @@ FlipclockAsset::register($this); |
137 | 137 | </div><!-- EOF Image part --> |
138 | 138 | |
139 | 139 | <!-- Info table --> |
140 | - | |
140 | + <div class="event_info"> | |
141 | + <div class="events"> | |
142 | + <?php foreach($product->events as $event):?> | |
143 | + <?php if(!empty($event->banner) && $event->isActive()):?> | |
144 | + <?= Html::a(\common\components\artboximage\ArtboxImageHelper::getImage($event->getImageUrl('banner'), 'banner_list'),Url::to(['event/show','alias'=>$event->alias,'id'=>$event->primaryKey]))?> | |
145 | + <?php endif; ?> | |
146 | + <?php endforeach; ?> | |
147 | + </div> | |
148 | + </div> | |
141 | 149 | <div class="info" style="height: auto; opacity: 1;"> |
142 | - | |
150 | + | |
151 | + | |
143 | 152 | <table class="info_table"> |
144 | 153 | <colgroup> |
145 | 154 | <col style="width: 280px;"> |
146 | 155 | <col style="width: 35px;"> |
147 | 156 | <col> |
148 | 157 | </colgroup> |
158 | + | |
149 | 159 | <tbody> |
150 | 160 | <tr> |
151 | 161 | <?php foreach($product->events as $event):?> |
... | ... | @@ -267,6 +277,7 @@ FlipclockAsset::register($this); |
267 | 277 | </tr> |
268 | 278 | <tr> |
269 | 279 | <td class="price_block"> |
280 | + | |
270 | 281 | <div class="price_block_container"> |
271 | 282 | |
272 | 283 | |
... | ... | @@ -405,13 +416,7 @@ FlipclockAsset::register($this); |
405 | 416 | |
406 | 417 | |
407 | 418 | <div class="detail_tabs_content"> |
408 | - <div class="events"> | |
409 | - <?php foreach($product->events as $event):?> | |
410 | - <?php if(!empty($event->banner) && $event->isActive()):?> | |
411 | - <?= Html::a(\common\components\artboximage\ArtboxImageHelper::getImage($event->getImageUrl('banner'), 'event_in_product'),Url::to(['event/show','alias'=>$event->alias,'id'=>$event->primaryKey]))?> | |
412 | - <?php endif; ?> | |
413 | - <?php endforeach; ?> | |
414 | - </div> | |
419 | + | |
415 | 420 | <div class="clear properties tab_div"> |
416 | 421 | <h2 id="characteristics"> |
417 | 422 | Характеристики <?= $product->name ?> | ... | ... |
frontend/views/catalog/products.php
... | ... | @@ -8,11 +8,16 @@ use frontend\widgets\Seo; |
8 | 8 | use yii\helpers\Url; |
9 | 9 | use yii\web\View; |
10 | 10 | use yii\widgets\ListView; |
11 | + | |
12 | + | |
11 | 13 | $this->params['seo']['title'] = !empty($category->meta_title) ? $category->meta_title : ''; |
12 | 14 | |
13 | 15 | $this->params['seo']['fields']['meta-title'] = $category->meta_title; |
14 | 16 | $this->params['seo']['h1'] = !empty($category->h1) ? $category->h1 : $category->name; |
15 | 17 | $this->params['seo']['seo_text'] = $category->seo_text; |
18 | + | |
19 | + | |
20 | + | |
16 | 21 | $this->params['seo']['description'] = $category->meta_desc; |
17 | 22 | $this->params['seo']['meta'] = $category->meta_robots; |
18 | 23 | $this->params['seo']['category_name'] = $category->name; | ... | ... |
frontend/views/event/show.php
... | ... | @@ -58,10 +58,13 @@ $this->title = $model->name; |
58 | 58 | ?> |
59 | 59 | </div> |
60 | 60 | |
61 | + <div class="body_view"> | |
61 | 62 | <?=$model->body?> |
63 | + </div> | |
64 | + | |
62 | 65 | |
63 | 66 | |
64 | - <div class="block-75" itemscope itemtype="http://schema.org/Product"> | |
67 | + <div class="block-100" itemscope itemtype="http://schema.org/Product"> | |
65 | 68 | |
66 | 69 | <div class="catalog_product_list view_table"> |
67 | 70 | ... | ... |
frontend/views/layouts/main.php
... | ... | @@ -63,7 +63,7 @@ use common\models\Event; |
63 | 63 | </head> |
64 | 64 | <?php $this->beginBody() ?> |
65 | 65 | <body> |
66 | - | |
66 | + | |
67 | 67 | |
68 | 68 | <div class="wraper"> |
69 | 69 | <div class="border"> |
... | ... | @@ -422,8 +422,8 @@ use common\models\Event; |
422 | 422 | </div> |
423 | 423 | </footer> |
424 | 424 | |
425 | - <div class="btn-fixeds fixed-events"><a href="#">акции</a></div> | |
426 | - <div class="btn-fixeds fixed-sale"><a href="#">Распродажа</a></div> | |
425 | + <div class="btn-fixeds fixed-events"><a href="/event">акции</a></div> | |
426 | +<!-- <div class="btn-fixeds fixed-sale"><a href="/event">Распродажа</a></div>--> | |
427 | 427 | |
428 | 428 | <table border="0" cellspacing="0" cellpadding="0" class="reqsBox"> |
429 | 429 | </table> |
... | ... | @@ -446,12 +446,7 @@ use common\models\Event; |
446 | 446 | <div class="modal fade" id="price_drop" tabindex="-1" role="dialog" aria-labelledby="myModalLabel3"> |
447 | 447 | <div class="modal-dialog auth" role="document"> |
448 | 448 | <div class="modal-content"> |
449 | - | |
450 | - <div class="modal-header"> | |
451 | - <button type="button" class="close" data-dismiss="modal" aria-label="Close"> | |
452 | - <span aria-hidden="true">×</span></button> | |
453 | - <h4 class="modal-title" id="myModalLabel2">Узнать о снижении цены</h4> | |
454 | - </div> | |
449 | + | |
455 | 450 | |
456 | 451 | <div class="modal-body"> |
457 | 452 | |
... | ... | @@ -492,7 +487,7 @@ use common\models\Event; |
492 | 487 | <div class="modal-header"> |
493 | 488 | <button type="button" class="close" data-dismiss="modal" aria-label="Close"> |
494 | 489 | <span aria-hidden="true">×</span></button> |
495 | - <h4 class="modal-title" id="myModalLabel4">Где купить?</h4> | |
490 | + <span class="modal-title" id="myModalLabel4">Где купить?</span> | |
496 | 491 | </div> |
497 | 492 | |
498 | 493 | <div class="modal-body" style="text-transform:uppercase"> |
... | ... | @@ -515,7 +510,7 @@ use common\models\Event; |
515 | 510 | <div class="modal-header"> |
516 | 511 | <button type="button" class="close" data-dismiss="modal" aria-label="Close"> |
517 | 512 | <span aria-hidden="true">×</span></button> |
518 | - <h4 class="modal-title" id="myModalLabel4">Можно ли вернуть или обменять товар, если он мне не подошел?</h4> | |
513 | + <span class="modal-title" id="myModalLabel4">Можно ли вернуть или обменять товар, если он мне не подошел?</span> | |
519 | 514 | </div> |
520 | 515 | |
521 | 516 | <div class="modal-body"> |
... | ... | @@ -542,7 +537,7 @@ use common\models\Event; |
542 | 537 | <div class="modal-header"> |
543 | 538 | <button type="button" class="close" data-dismiss="modal" aria-label="Close"> |
544 | 539 | <span aria-hidden="true">×</span></button> |
545 | - <h4 class="modal-title" id="myModalLabel">Товар добавлен в закладки</h4> | |
540 | + <span class="modal-title" id="myModalLabel">Товар добавлен в закладки</span> | |
546 | 541 | </div> |
547 | 542 | |
548 | 543 | <div class="modal-body"> | ... | ... |
frontend/views/modal/forgot_password_form_model_window.php
... | ... | @@ -4,7 +4,7 @@ |
4 | 4 | |
5 | 5 | <div class="modal-header"> |
6 | 6 | <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> |
7 | - <h4 class="modal-title" id="myModalLabel2">Напомнить пароль</h4> | |
7 | + <span class="modal-title" id="myModalLabel2">Напомнить пароль</span> | |
8 | 8 | </div> |
9 | 9 | |
10 | 10 | <div class="modal-body"> | ... | ... |
frontend/views/modal/login_window_model_window.php
... | ... | @@ -13,7 +13,7 @@ use yii\widgets\ActiveForm; |
13 | 13 | |
14 | 14 | <div class="modal-header"> |
15 | 15 | <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> |
16 | - <h4 class="modal-title" id="myModalLabel">Вход в личный кабинет</h4> | |
16 | + <span class="modal-title" id="myModalLabel">Вход в личный кабинет</span> | |
17 | 17 | </div> |
18 | 18 | |
19 | 19 | <div class="modal-body"> | ... | ... |
frontend/views/modal/my_callback_modal_window.php
... | ... | @@ -14,7 +14,7 @@ |
14 | 14 | <div class="modal-content"> |
15 | 15 | <div class="modal-header"> |
16 | 16 | <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> |
17 | - <h4 class="modal-title" id="myModalLabel">Заказ обратного звонка</h4> | |
17 | + <span class="modal-title" id="myModalLabel">Заказ обратного звонка</span> | |
18 | 18 | </div> |
19 | 19 | <div class="modal-body"> |
20 | 20 | <?php | ... | ... |
frontend/views/modal/registration_window_model_window.php
... | ... | @@ -13,7 +13,7 @@ use yii\widgets\ActiveForm; |
13 | 13 | |
14 | 14 | <div class="modal-header"> |
15 | 15 | <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> |
16 | - <h4 class="modal-title" id="myModalLabel2">Создание профиля</h4> | |
16 | + <span class="modal-title" id="myModalLabel2">Создание профиля</span> | |
17 | 17 | </div> |
18 | 18 | |
19 | 19 | <div class="modal-body"> | ... | ... |
frontend/views/order/index.php
... | ... | @@ -38,106 +38,6 @@ use yii\web\View; |
38 | 38 | |
39 | 39 | |
40 | 40 | |
41 | - <table border="0" cellspacing="0" cellpadding="0" class="boxGen articleBox"> | |
42 | - <tbody><tr class="bxhead"> | |
43 | - <th class="bxhl"></th> | |
44 | - <th class="bxhc"><div class="h3"> | |
45 | - <a href="view-articles/">Статьи</a> | |
46 | - </div></th> | |
47 | - | |
48 | - <th class="bxhr"></th> | |
49 | - </tr> | |
50 | - | |
51 | - <tr class="bxdelim"> | |
52 | - <td></td> | |
53 | - <td></td> | |
54 | - <td></td> | |
55 | - </tr> | |
56 | - <tr class="bxmiddle"> | |
57 | - <td class="bxl"></td> | |
58 | - <td class="bxc"> <div width="100%" class="articlesBox"><!-- cats_table--> | |
59 | - <div width="100%"> | |
60 | - <div class="articleItem"> | |
61 | - <span class="image"> | |
62 | - </span> | |
63 | - <span align="left" class="title"> | |
64 | - <a href="liniya-sveta-predstavila-trendovye-modeli-na-interior-mebel-85.htm"> | |
65 | - Линия света представила трендовые модели на Interior Mebel | |
66 | - </a> | |
67 | - </span> | |
68 | - | |
69 | - <div align="left" class="desc"> | |
70 | - <p>В Киеве прошла выставка Interior Mebel, которая уже традиционно собирает лучшие образцы дизайна интерьера. На... | |
71 | - <a href="liniya-sveta-predstavila-trendovye-modeli-na-interior-mebel-85.htm"> | |
72 | - подробнее | |
73 | - </a> | |
74 | - </p></div> | |
75 | - | |
76 | - </div> | |
77 | - | |
78 | - | |
79 | - <div class="articleItem"> | |
80 | - <span class="image"> | |
81 | - </span> | |
82 | - <span align="left" class="title"> | |
83 | - <a href="svetodiodnoe-osveschenie-light-topps-svetodiodnye-lampochki-lampy-colon-kupit-dlya-doma-ceny-v-ukraine-84.htm"> | |
84 | - Светодиодное освещение Light Topps | Светодиодные... | |
85 | - </a> | |
86 | - </span> | |
87 | - | |
88 | - <div align="left" class="desc"> | |
89 | - О светодиодных лампах и светильниках, в которых используются светодиодные модули, написано немало и наверняка уже... | |
90 | - <a href="svetodiodnoe-osveschenie-light-topps-svetodiodnye-lampochki-lampy-colon-kupit-dlya-doma-ceny-v-ukraine-84.htm"> | |
91 | - подробнее | |
92 | - </a> | |
93 | - </div> | |
94 | - | |
95 | - </div> | |
96 | - | |
97 | - | |
98 | - <div class="articleItem"> | |
99 | - <span class="image"> | |
100 | - </span> | |
101 | - <span align="left" class="title"> | |
102 | - <a href="lyustry-potolochnye-novye-vozmojnosti-upravleniya-svetom-82.htm"> | |
103 | - Люстры потолочные. Новые возможности управления светом | |
104 | - </a> | |
105 | - </span> | |
106 | - | |
107 | - <div align="left" class="desc"> | |
108 | - Люстры потолочные оснащенные пультом дистанционного управления, позволяют включать/выключать, а также регулировать... | |
109 | - <a href="lyustry-potolochnye-novye-vozmojnosti-upravleniya-svetom-82.htm"> | |
110 | - подробнее | |
111 | - </a> | |
112 | - </div> | |
113 | - | |
114 | - </div> | |
115 | - | |
116 | - | |
117 | - | |
118 | - | |
119 | - | |
120 | - | |
121 | - | |
122 | - | |
123 | - | |
124 | - | |
125 | - <div style="clear: left;"></div> | |
126 | - | |
127 | - | |
128 | - </div> | |
129 | - | |
130 | - | |
131 | - </div></td> | |
132 | - <td class="bxr"></td> | |
133 | - </tr> | |
134 | - <tr class="bxbottom"> | |
135 | - <td class="bxbl"></td> | |
136 | - <td class="bxbc"></td> | |
137 | - <td class="bxbr"></td> | |
138 | - </tr> | |
139 | - </tbody></table> | |
140 | - | |
141 | 41 | <div class="clearfix"></div> |
142 | 42 | |
143 | 43 | ... | ... |
frontend/views/order/success.php
... | ... | @@ -31,7 +31,7 @@ |
31 | 31 | <br><br> |
32 | 32 | <div align="center"> |
33 | 33 | <font size="+1">Спасибо за заказ!!</font><br><br> |
34 | - <a href="?p=start" style="display:inline">« На главную</a> | |
34 | + <a href="/" style="display:inline">« На главную</a> | |
35 | 35 | </div> |
36 | 36 | <!-- Google ECommerce Code --> |
37 | 37 | <script> | ... | ... |
frontend/views/site/index.php
frontend/web/css/css_header.css
... | ... | @@ -14548,4 +14548,23 @@ ul.product-special li.promo div{ |
14548 | 14548 | |
14549 | 14549 | .banner-in-list{ |
14550 | 14550 | margin: 0 !important; |
14551 | -} | |
14552 | 14551 | \ No newline at end of file |
14552 | +} | |
14553 | + | |
14554 | +.event_info{ | |
14555 | + position: relative; | |
14556 | + float: left; | |
14557 | +} | |
14558 | +.event_info .events a{ | |
14559 | + position: absolute; | |
14560 | + left: -10px; | |
14561 | + top: 80px; | |
14562 | + display: inline; | |
14563 | +} | |
14564 | +.body_view{ | |
14565 | + max-width: 1140px; | |
14566 | + overflow: hidden; | |
14567 | +} | |
14568 | + | |
14569 | +.block-100 .catalog_item{ | |
14570 | + width: 25% !important; | |
14571 | +} | ... | ... |
frontend/widgets/Seo.php
... | ... | @@ -148,51 +148,14 @@ class Seo extends Widget |
148 | 148 | $filter = \Yii::$app->request->get('filters', []); |
149 | 149 | |
150 | 150 | |
151 | - $title = $this->selectSeoData(self::TITLE); | |
152 | - | |
153 | - | |
154 | - if(!empty($filter) && isset($this->fields['meta-title']) && $title == $this->fields['meta-title']) { | |
155 | - | |
156 | - $array = [ | |
157 | - 'category' => $this->category_name | |
158 | - ]; | |
159 | - | |
160 | - | |
161 | - if (isset($filter['brands']) && count($filter['brands']) == 1) { | |
162 | - $model = Brand::find()->where(['alias' => $filter['brands'][0]])->one(); | |
163 | - if(!$model instanceof Brand){ | |
164 | - | |
165 | - \Yii::$app->response->redirect(['/site/error'],404); | |
166 | - } else { | |
167 | - $array['brand'] = $model->name; | |
168 | - } | |
169 | - | |
170 | - } | |
171 | - | |
172 | - | |
173 | - $optionsList = ArrayHelper::getColumn(TaxGroup::find()->where(['is_filter' => 'TRUE'])->all(),'alias'); | |
174 | - | |
175 | - | |
176 | - foreach($optionsList as $optionList){ | |
177 | - | |
178 | - | |
179 | - if (isset($filter[$optionList]) && count($filter[$optionList]) == 1) { | |
180 | - | |
181 | - $model = TaxOption::find()->where(['alias' =>$filter[$optionList]])->one(); | |
182 | - if(!$model instanceof TaxOption){ | |
183 | - | |
184 | - \Yii::$app->response->redirect(['site/error'],404); | |
185 | - } else { | |
186 | - $array[$optionList] = $model->value->value; | |
187 | - } | |
188 | 151 | |
189 | 152 | |
190 | - | |
191 | - } | |
192 | - | |
153 | + $title = $this->selectSeoData(self::TITLE); | |
193 | 154 | |
194 | 155 | |
195 | - } | |
156 | +// if(!empty($filter) && isset($this->fields['meta-title']) && $title == $this->fields['meta-title']) { | |
157 | + if(!empty($filter)) { | |
158 | + $array = $this->arrayBuilder($filter); | |
196 | 159 | |
197 | 160 | $title_string = $this->getTitleString($array); |
198 | 161 | |
... | ... | @@ -219,6 +182,14 @@ class Seo extends Widget |
219 | 182 | 'content' => $description |
220 | 183 | ]); |
221 | 184 | |
185 | + } else { | |
186 | + | |
187 | + $filter = \Yii::$app->request->get('filters', []); | |
188 | + if(!empty($filter)){ | |
189 | + $array = $this->arrayBuilder($filter); | |
190 | + return $this->getDescriptionString($array); | |
191 | + } | |
192 | + | |
222 | 193 | } |
223 | 194 | |
224 | 195 | break; |
... | ... | @@ -265,7 +236,7 @@ class Seo extends Widget |
265 | 236 | ) { |
266 | 237 | $this->getView()->registerMetaTag([ |
267 | 238 | 'name' => 'robots', |
268 | - 'content' => 'noindex,follow' | |
239 | + 'content' => 'noindex,nofollow' | |
269 | 240 | ]); |
270 | 241 | } else { |
271 | 242 | |
... | ... | @@ -366,17 +337,112 @@ class Seo extends Widget |
366 | 337 | } |
367 | 338 | |
368 | 339 | public function getTitleString($array){ |
340 | + $row = "{Название раздела: Название блока фильтра: Фильтр 1 | Название блока фильтра: Фильтр 2 | Название блока фильтра: Фильтр 3} - купить в Киеве, Украине - интернет магазин Лінія Світла"; | |
341 | + $row = ''; | |
342 | + foreach($array as $name => $field){ | |
343 | + | |
344 | + if($name == 'category' ){ | |
345 | + $row = $field.': '.$row; | |
346 | + } else { | |
347 | + $row .= $field['name'] .' '.$field['value'].' |' ; | |
348 | + } | |
349 | + | |
350 | + | |
351 | + | |
352 | + } | |
353 | + $row = substr($row, 0,-1 ); | |
354 | + $row .= " - купить в Киеве, Украине - интернет магазин Лінія Світла"; | |
355 | + return $row; | |
356 | +// $template = SeoDynamic::find()->select('title')->where(['param' =>'filters'])->one(); | |
357 | +// if($template instanceof SeoDynamic){ | |
358 | +// foreach ($array as $field_name => $field_value) { | |
359 | +// $template->title = str_replace('{' . $field_name . '}', mb_strtolower($field_value), $template->title); | |
360 | +// } | |
361 | +// $template = preg_replace('/\{.[^\}]*\}\s/','',$template->title); | |
362 | +// return $template; | |
363 | +// } | |
364 | +// | |
365 | +// return false; | |
366 | + | |
367 | + } | |
368 | + | |
369 | + | |
370 | + public function getDescriptionString($array){ | |
371 | + $row = "Лучшие цены на {Название раздела: Название блока фильтра: Фильтр 1 | Название блока фильтра: Фильтр 2 | Название блока фильтра: Фильтр 3}. Лінія Світла"; | |
372 | + $row = 'Лучшие цены на '; | |
373 | + foreach($array as $name => $field){ | |
369 | 374 | |
370 | - $template = SeoDynamic::find()->select('title')->where(['param' =>'filters'])->one(); | |
371 | - if($template instanceof SeoDynamic){ | |
372 | - foreach ($array as $field_name => $field_value) { | |
373 | - $template->title = str_replace('{' . $field_name . '}', mb_strtolower($field_value), $template->title); | |
375 | + if($name == 'category' ){ | |
376 | + $row = $field.': '.$row; | |
377 | + } else { | |
378 | + $row .= $field['name'] .' '.$field['value'].' |' ; | |
374 | 379 | } |
375 | - $template = preg_replace('/\{.[^\}]*\}\s/','',$template->title); | |
376 | - return $template; | |
380 | + | |
381 | + | |
382 | + | |
377 | 383 | } |
384 | + $row = substr($row, 0,-1 ); | |
385 | + $row .= ". Лінія Світла"; | |
386 | + return $row; | |
387 | +// $template = SeoDynamic::find()->select('title')->where(['param' =>'filters'])->one(); | |
388 | +// if($template instanceof SeoDynamic){ | |
389 | +// foreach ($array as $field_name => $field_value) { | |
390 | +// $template->title = str_replace('{' . $field_name . '}', mb_strtolower($field_value), $template->title); | |
391 | +// } | |
392 | +// $template = preg_replace('/\{.[^\}]*\}\s/','',$template->title); | |
393 | +// return $template; | |
394 | +// } | |
395 | +// | |
396 | +// return false; | |
397 | + | |
398 | + } | |
399 | + | |
400 | + | |
401 | + public function arrayBuilder($filter) | |
402 | + { | |
403 | + | |
404 | + $array = [ | |
405 | + 'category' => $this->category_name | |
406 | + ]; | |
407 | + | |
408 | + | |
409 | + if (isset($filter['brands']) && count($filter['brands']) == 1) { | |
410 | + $model = Brand::find()->where(['alias' => $filter['brands'][0]])->one(); | |
411 | + if (!$model instanceof Brand) { | |
412 | + | |
413 | + \Yii::$app->response->redirect(['/site/error'], 404); | |
414 | + } else { | |
415 | + $array['brand']['name'] = 'Бренд'; | |
416 | + $array['brand']['value'] = $model->name; | |
417 | + } | |
418 | + | |
419 | + } | |
420 | + | |
421 | + | |
422 | + $optionsList = ArrayHelper::map(TaxGroup::find()->where(['is_filter' => 'TRUE'])->all(), 'alias', 'name'); | |
423 | + | |
424 | + | |
425 | + foreach ($optionsList as $optionList => $name) { | |
426 | + | |
427 | + | |
428 | + if (isset($filter[$optionList]) && count($filter[$optionList]) == 1) { | |
429 | + | |
430 | + $model = TaxOption::find()->where(['alias' => $filter[$optionList]])->one(); | |
431 | + if (!$model instanceof TaxOption) { | |
432 | + | |
433 | + \Yii::$app->response->redirect(['site/error'], 404); | |
434 | + } else { | |
435 | + $array[$optionList]['value'] = $model->value; | |
436 | + $array[$optionList]['name'] = $name; | |
437 | + } | |
438 | + | |
439 | + | |
440 | + } | |
441 | + | |
442 | + | |
443 | + } | |
378 | 444 | |
379 | - return false; | |
445 | + return $array; | |
380 | 446 | |
381 | 447 | } |
382 | 448 | ... | ... |