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'), |