This module allows the management of filters in front by template and category
- Copy the module into
<thelia_root>/local/modules/
directory and be sure that the name of the module is ChoiceFilter. - Activate it in your thelia administration panel
Add it in your main thelia composer.json file
composer require thelia/choice-filter-module:~2.0.0
You can choose the position of the filters
- When you edit a template
- When you edit a category
[choice_filter]
Argument | Description |
---|---|
template_id | id of template |
category_id | id of category |
order | position or position_reverse |
Variable | Description |
---|---|
$TYPE | feature or attribute or other |
$ID | id of filter |
$POSITION | position of filter |
$VISIBLE | visible of filter |
{loop name="choice_filter" type="choice_filter" template_id=$template_id}
{if $TYPE == "feature" and $VISIBLE}
{loop type="feature" name="feature-$ID" id=$ID}
{* your code *}
{/loop}
{elseif $TYPE == "attribute" and $VISIBLE}
{loop type="attribute" name="attribute-$ID" id=$ID}
{* your code *}
{/loop}
{elseif $TYPE == "brand" and $VISIBLE}
{* your code *}
{elseif $TYPE == "price" and $VISIBLE}
{* your code *}
{/if}
{/loop}
{loop name="choice_filter" type="choice_filter" category_id=$category_id}
{if $TYPE == "feature" and $VISIBLE}
{loop type="feature" name="feature-$ID" id=$ID}
{* your code *}
{/loop}
{elseif $TYPE == "attribute" and $VISIBLE}
{loop type="attribute" name="attribute-$ID" id=$ID}
{* your code *}
{/loop}
{elseif $TYPE == "brand" and $VISIBLE}
{* your code *}
{elseif $TYPE == "price" and $VISIBLE}
{* your code *}
{/if}
{/loop}
for performance, it is best to use a cache block http://doc.thelia.net/en/documentation/templates/smarty/cache.html
{cache key="choice-filter" ttl=600 category_id==$category_id}
{loop name="choice_filter" type="choice_filter" category_id=$category_id}
{if $TYPE == "feature" and $VISIBLE}
{loop type="feature" name="feature-$ID" id=$ID}
{* your code *}
{/loop}
{elseif $TYPE == "attribute" and $VISIBLE}
{loop type="attribute" name="attribute-$ID" id=$ID}
{* your code *}
{/loop}
{elseif $TYPE == "brand" and $VISIBLE}
{* your code *}
{elseif $TYPE == "price" and $VISIBLE}
{* your code *}
{/if}
{/loop}
{/cache}