Navigation Menu

Skip to content

Commit

Permalink
Fixed product filtering with checkboxes when products were additional…
Browse files Browse the repository at this point in the history
…ly filtered with a search query
  • Loading branch information
integry committed Mar 3, 2012
1 parent 9a3aec5 commit bc17c84
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 20 deletions.
38 changes: 21 additions & 17 deletions application/model/product/ProductFilter.php
Expand Up @@ -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');

Expand Down
7 changes: 4 additions & 3 deletions application/view/block/box/filter.tpl
Expand Up @@ -40,7 +40,7 @@
<input type="submit" value="{t _filter}" />
<a href="javascript:void(0);" onclick="Filter.reset();" class="cancel">{t _clear}</a>
</div>

{/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}
Expand All @@ -52,14 +52,15 @@
{/foreach}

{if 'FILTER_STYLE_CHECKBOXES' == $FILTER_STYLE}

<div id="multipleChoiceFilter_bottom" class="hidden">
<input type="hidden" name="q" value="{$request.q}" />
<input type="submit" value="{t _filter}" />
<a href="javascript:void(0);" onclick="Filter.reset();" class="cancel">{t _clear}</a>
</div>
</form>
{/if}

{/content}{footer}
</div>
</div>
Expand Down

0 comments on commit bc17c84

Please sign in to comment.