thelia / choice-filter-module
Allows the management of filters in front by template and category
Installs: 11 682
Dependents: 2
Suggesters: 0
Security: 0
Stars: 1
Watchers: 6
Forks: 2
Open Issues: 0
Type:thelia-module
Requires
- thelia/installer: ~1.1
README
This module allows the management of filters in front by template and category
Installation
Manually
- 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
Composer
Add it in your main thelia composer.json file
composer require thelia/choice-filter-module:~2.0.0
Usage
You can choose the position of the filters
- When you edit a template
- When you edit a category
Loop
[choice_filter]
Input arguments
Output arguments
Exemple
For a template
{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}
For a category
{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}