Commit b905419d39dad9b10c06216559e84207ba134310

Authored by Administrator
1 parent 66285eca

big commti

.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
... ... @@ -161,6 +161,7 @@ class EventController extends Controller
161 161  
162 162 public function actionDelimg($id,$field){
163 163 $model = $this->findModel($id);
  164 + $model->detachBehavior('img');
164 165 $model->$field = '';
165 166 $model->save();
166 167 return true;
... ...
common/models/Event.php
... ... @@ -47,7 +47,7 @@ class Event extends \yii\db\ActiveRecord
47 47 public function behaviors()
48 48 {
49 49 return [
50   - [
  50 + 'img'=>[
51 51 'class' => SaveImgBehavior::className(),
52 52 'fields' => [
53 53 ['name'=>'imageUpload','directory' => 'event' ],
... ...
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-&gt;title = $model-&gt;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">&times;</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">&times;</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">&times;</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">&times;</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">&times;</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">&times;</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">&times;</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">&times;</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
... ... @@ -3,6 +3,8 @@
3 3 use yii\helpers\Html;
4 4 use yii\web\View;
5 5  
  6 +
  7 +
6 8 ?>
7 9  
8 10  
... ...
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  
... ...