Commit 1504a699dbd9049dee2916fd3f9afe3f9f6040a5
1 parent
db2894a2
big commti
Showing
3 changed files
with
23 additions
and
8 deletions
Show diff stats
common/modules/product/helpers/ProductHelper.php
@@ -186,7 +186,7 @@ | @@ -186,7 +186,7 @@ | ||
186 | * @param $params | 186 | * @param $params |
187 | * @param bool $setPriceLimits | 187 | * @param bool $setPriceLimits |
188 | */ | 188 | */ |
189 | - public static function _setQueryParams(&$query, $params, $setPriceLimits = true) | 189 | + public static function _setQueryParams(&$query, $params) |
190 | { | 190 | { |
191 | if(!empty( $params[ 'keywords' ] )) { | 191 | if(!empty( $params[ 'keywords' ] )) { |
192 | if(!is_array($params[ 'keywords' ])) { | 192 | if(!is_array($params[ 'keywords' ])) { |
frontend/controllers/CatalogController.php
@@ -118,8 +118,7 @@ class CatalogController extends \yii\web\Controller | @@ -118,8 +118,7 @@ class CatalogController extends \yii\web\Controller | ||
118 | 118 | ||
119 | $groups = $category->getActiveFilters(); | 119 | $groups = $category->getActiveFilters(); |
120 | $groups = ArrayHelper::index($groups, null, 'name'); | 120 | $groups = ArrayHelper::index($groups, null, 'name'); |
121 | - | ||
122 | - $priceLimits = $productModel->priceLimits($productProvider->query); | 121 | + $priceLimits = $productModel->priceLimits($category, $params); |
123 | 122 | ||
124 | /* | 123 | /* |
125 | * Greedy search for comments and rating | 124 | * Greedy search for comments and rating |
frontend/models/ProductFrontendSearch.php
@@ -4,10 +4,6 @@ namespace frontend\models; | @@ -4,10 +4,6 @@ namespace frontend\models; | ||
4 | 4 | ||
5 | use common\modules\product\helpers\ProductHelper; | 5 | use common\modules\product\helpers\ProductHelper; |
6 | use common\modules\product\models\Category; | 6 | use common\modules\product\models\Category; |
7 | -use common\modules\product\models\ProductCategory; | ||
8 | -use common\modules\product\models\ProductOption; | ||
9 | -use common\modules\rubrication\models\TaxGroup; | ||
10 | -use common\modules\rubrication\models\TaxOption; | ||
11 | use Yii; | 7 | use Yii; |
12 | use yii\base\Model; | 8 | use yii\base\Model; |
13 | use yii\data\ActiveDataProvider; | 9 | use yii\data\ActiveDataProvider; |
@@ -15,6 +11,7 @@ use yii\db\ActiveQuery; | @@ -15,6 +11,7 @@ use yii\db\ActiveQuery; | ||
15 | 11 | ||
16 | use common\modules\product\models\Product; | 12 | use common\modules\product\models\Product; |
17 | use common\modules\product\models\ProductVariant; | 13 | use common\modules\product\models\ProductVariant; |
14 | +use yii\helpers\ArrayHelper; | ||
18 | 15 | ||
19 | class ProductFrontendSearch extends Product { | 16 | class ProductFrontendSearch extends Product { |
20 | 17 | ||
@@ -106,7 +103,26 @@ class ProductFrontendSearch extends Product { | @@ -106,7 +103,26 @@ class ProductFrontendSearch extends Product { | ||
106 | } | 103 | } |
107 | 104 | ||
108 | 105 | ||
109 | - public function priceLimits($query) { | 106 | + /** |
107 | + * @param Category|null $category | ||
108 | + * @param array $params | ||
109 | + * @return array | ||
110 | + */ | ||
111 | + | ||
112 | + public function priceLimits($category = null, $params = []) { | ||
113 | + if (!empty($category)) { | ||
114 | + /** @var ActiveQuery $query */ | ||
115 | + $query = $category->getProducts(); | ||
116 | + } else { | ||
117 | + $query = Product::find(); | ||
118 | + } | ||
119 | + $query->joinWith('variant'); | ||
120 | + | ||
121 | + // Price filter fix | ||
122 | + unset($params['prices']); | ||
123 | + | ||
124 | + ProductHelper::_setQueryParams($query, $params, false); | ||
125 | + | ||
110 | 126 | ||
111 | return [ | 127 | return [ |
112 | 'min' => $query->min(ProductVariant::tableName() .'.price'), | 128 | 'min' => $query->min(ProductVariant::tableName() .'.price'), |