Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
Filter articles using their custom field
Hi there,
I’ve got a list of articles grouped first by category. When I see all articles of one category is possible to filter them by custom fields?
All articles describe a professional guide in Tuscany. All guides are separeted by province of appartenence (that is a category). But a guide had one or more areas of interest too (like hiking, trekking etc…) and it’s set with a checkbox custom field.
How can I create, at this point, a way to restrict my list in base of guide’s specific area?
Offline
Re: Filter articles using their custom field
I found a possible solution.
Using smd_if I check url for some variable. If used the form will print all articles with custom field value.
<txp:smd_if field="urlvar:tipologie" operator="isused">
<txp:article limit="999" sort="title" tipologie="{smd_if_tipologie}" />
<txp:else />
<txp:article limit="999" sort="title" />
</txp:smd_if>
Everything goes fine only if the value of custom field is exactly the same. But using a check-box for the custom field (glz_cf) the real values stored in database are delimeted.
How can I check if the urlvalues are contained in the custom field?
Last edited by wornout (2011-04-28 11:23:22)
Offline
Re: Filter articles using their custom field
I’ve got it!
Adding a simple <txp:if_custom_field /> to the previous code.
<txp:smd_if field="urlvar:tipologie" operator="isused">
<txp:article limit="999" sort="title">
<txp:if_custom_field name="tipologie" match="any" separator="|" value="{smd_if_tipologie}">
<h1><txp:title /></h1>
</txp:if_custom_field>
</txp:article>
<txp:else />
<txp:article limit="999" sort="title" />
</txp:smd_if>
Now I’ve got to create the form to submit values!
Edit:
It’s possible to use soo_article_filter too. Like this:
<txp:smd_if field="urlvar:tipologie" operator="isused">
<txp:soo_article_filter tipologie="{smd_if_tipologie}">
<txp:article limit="999" sort="title" />
</txp:soo_article_filter>
<txp:else />
<txp:article limit="999" sort="title" />
</txp:smd_if>
Last edited by wornout (2011-05-10 16:14:29)
Offline
#4 2011-04-28 12:48:30
- uli
- Moderator

- From: Cologne
- Registered: 2006-08-15
- Posts: 4,316
Re: Filter articles using their custom field
Always nice to see people sharing solutions even if there wasn’t an input from outside. Thanks, Edoardo :)
In bad weather I never leave home without wet_plugout, smd_where_used and adi_form_links
Offline
Re: Filter articles using their custom field
This is the code that generates a little form to choose the custom field value.
The hidden value is set to remain in the same category.
I wish it can help you!
<form action="<txp:page_url />">
<input type="hidden" name="c" value='<txp:category />' />
<select name="tipologies" onChange="this.form.submit();">
<option value="">Show all</option>
<txp:smd_each type="fixed" include='<txp:esq_glzcfvallist fieldname="tipologies" delimiter=":" />' subset="2">
<txp:smd_if field="urlvar:tipologies" operator="eq" value='{smd_var_value}'>
<option selected="selected" value="{smd_var_value}">{smd_var_value}</option>
<txp:else />
<option value="{smd_var_value}">{smd_var_value}</option>
</txp:smd_if>
</txp:smd_each>
</select>
</form>
Last edited by wornout (2011-05-06 13:49:07)
Offline