Commit 2c4d173e4cb48a56c2952a8e0c8caf77a515a256
1 parent
3ed4a4cd
Base-product#6 functional
Showing
3 changed files
with
22 additions
and
4 deletions
Show diff stats
frontend/controllers/CatalogController.php
... | ... | @@ -120,14 +120,20 @@ class CatalogController extends \yii\web\Controller |
120 | 120 | |
121 | 121 | // Options |
122 | 122 | if (($options = \Yii::$app->request->get('option')) != false) { |
123 | - $query->innerJoin(ProductOption::tableName(), ProductOption::tableName() .'.product_id='. Product::tableName() .'.product_id'); | |
124 | - $query->innerJoin(TaxOption::tableName(), TaxOption::tableName() .'.tax_option_id='. ProductOption::tableName() .'.option_id'); | |
125 | - foreach($options as $group_alias => $option_alias) { | |
123 | +// $query->innerJoin(ProductOption::tableName(), ProductOption::tableName() .'.product_id='. Product::tableName() .'.product_id'); | |
124 | +// $query->innerJoin(TaxOption::tableName(), TaxOption::tableName() .'.tax_option_id='. ProductOption::tableName() .'.option_id'); | |
125 | + foreach($options as $group_alias => $options_alias) { | |
126 | + if (!is_array($options_alias)) { | |
127 | + $options_alias = [$options_alias]; | |
128 | + } | |
129 | + foreach($options_alias as &$option_alias) { | |
130 | + $option_alias = "'". $option_alias ."'"; | |
131 | + } | |
126 | 132 | $group = TaxGroup::find()->where(['like', 'alias', $group_alias])->one(); |
127 | 133 | if (!$group) { |
128 | 134 | continue; |
129 | 135 | } |
130 | - $query->andWhere([TaxOption::tableName() .'.tax_group_id' => $group->tax_group_id, TaxOption::tableName() .'.alias' => $option_alias]); | |
136 | + $query->andWhere(Product::tableName() .'.product_id IN (SELECT product_id FROM product_option INNER JOIN tax_option ON tax_option.tax_option_id = product_option.option_id WHERE tax_option.alias IN ('. implode(',', $options_alias) .'))'); | |
131 | 137 | } |
132 | 138 | } |
133 | 139 | ... | ... |
frontend/views/catalog/products.php
... | ... | @@ -186,6 +186,10 @@ $this->params['breadcrumbs'][] = $category->name; |
186 | 186 | <div class="cat_p_catalog_list"> |
187 | 187 | <div class="title"><?= $category->name?> <span>(<?= $all_count?>)</span></div> |
188 | 188 | |
189 | + <?php if (empty($products)) :?> | |
190 | + <h2>По данному запросу товары не найдены.</h2><br> | |
191 | + <p>Показать <a href="<?= \yii\helpers\Url::to(['catalog/category', 'alias' => $category->alias])?>">все товары из категории "<?= $category->name?>"</a></p> | |
192 | + <?php else :?> | |
189 | 193 | <!-- sort menu --> |
190 | 194 | <div class="sort_menu"> |
191 | 195 | |
... | ... | @@ -267,6 +271,8 @@ $this->params['breadcrumbs'][] = $category->name; |
267 | 271 | </div> |
268 | 272 | </div> |
269 | 273 | </div> |
274 | + | |
275 | + <?php endif?> | |
270 | 276 | </div> |
271 | 277 | </div> |
272 | 278 | ... | ... |
frontend/web/css/concat_all.css
... | ... | @@ -43,6 +43,11 @@ |
43 | 43 | display: inline-block; |
44 | 44 | float: left; |
45 | 45 | } |
46 | +.cat_p_filter_bar:before { | |
47 | + display: block; | |
48 | + content: ''; | |
49 | + clear: both; | |
50 | +} | |
46 | 51 | |
47 | 52 | .cat_p_filter_bar .filter_list ul { |
48 | 53 | list-style: none; |
... | ... | @@ -190,6 +195,7 @@ |
190 | 195 | width: 700px; |
191 | 196 | padding-right: 10px; |
192 | 197 | display: inline-block; |
198 | + min-height: 20em; | |
193 | 199 | } |
194 | 200 | |
195 | 201 | .cat_p_catalog_list ul { | ... | ... |