diff --git a/application/model/product/ProductFilter.php b/application/model/product/ProductFilter.php index df25f8bd7..dfcc1e4e2 100644 --- a/application/model/product/ProductFilter.php +++ b/application/model/product/ProductFilter.php @@ -57,27 +57,31 @@ public function getSelectFilter($disableFilters = false) $selectFilter = $this->category->getProductsFilter($this, false); $selectFilter->merge($this->productFilter); $cond = null; - if ($disableFilters == false) + + $list = array(); + // group filters by class + foreach ($this->filters as $filter) { - $list = array(); - // group filters by class - foreach ($this->filters as $filter) - { - $id = ($filter instanceof SpecificationFilterInterface) ? $filter->getFilterGroup()->getID() : ''; - $list[get_class($filter) . '_' . $id][] = $filter->getCondition(); - $filter->defineJoin($selectFilter); - } - // convert filter group to OrChainCondition - foreach ($list as &$filterGroup) + if ($disableFilters && !($filter instanceof SearchFilter)) { - $filterGroup = new OrChainCondition($filterGroup); + continue; } - if ($fCond = $selectFilter->getCondition()) - { - $list[] = $fCond; - } - $selectFilter->setCondition(new AndChainCondition($list)); // all merged with and + + $id = ($filter instanceof SpecificationFilterInterface) ? $filter->getFilterGroup()->getID() : ''; + $list[get_class($filter) . '_' . $id][] = $filter->getCondition(); + $filter->defineJoin($selectFilter); + } + + // convert filter group to OrChainCondition + foreach ($list as &$filterGroup) + { + $filterGroup = new OrChainCondition($filterGroup); + } + if ($fCond = $selectFilter->getCondition()) + { + $list[] = $fCond; } + $selectFilter->setCondition(new AndChainCondition($list)); // all merged with and $selectFilter->setOrder(f('Product.ID'), 'DESC'); diff --git a/application/view/block/box/filter.tpl b/application/view/block/box/filter.tpl index f31a147f4..e54e8cddc 100644 --- a/application/view/block/box/filter.tpl +++ b/application/view/block/box/filter.tpl @@ -40,7 +40,7 @@ {t _clear} - + {/if} {include file=$FILTER_STYLE_TEMPLATE sectionFilters=$manGroup title=_by_brand allLink=$allManufacturers allTitle=_show_all_brands} {include file=$FILTER_STYLE_TEMPLATE sectionFilters=$priceGroup title=_by_price} @@ -52,14 +52,15 @@ {/foreach} {if 'FILTER_STYLE_CHECKBOXES' == $FILTER_STYLE} - + {/if} - + {/content}{footer}