Filtering the listview¶
In the List view, Detail view, Registration view, Calendar view, Search view you can define criterias for the listview, so it e.g. only
shows the events of a special category or for a special location. Nearly all settings
affecting the demand of the shown events can be overwritten by a URL parameter called
overwriteDemand
.
Below follows some examples for the overwriteDemand setting:
Filter by category¶
The following code snippet shows a list of links which restrict the category to be shown to the given category:
<f:for each="{categories}" as="category">
<f:if condition="{overwriteDemand.category} == {category.uid}">
<f:then>
<f:link.action action="list" controller="Event" arguments="{overwriteDemand:{category: category}}" class="active">{category.title}</f:link.action>
</f:then>
<f:else>
<f:link.action action="list" controller="Event" arguments="{overwriteDemand:{category: category}}">{category.title}</f:link.action>
</f:else>
</f:if>
</f:for>
As all links are generated using the f:link.action
viewHelper, they are fully cached.
Filter by special location properties¶
It is possible to filter events by the location city and country. Using the overwriteDemand parameter is as following:
<f:link.action action="list" controller="Event" arguments="{overwriteDemand:{locationCity: 'Hamburg'}}">Show all events in Hamburg</f:link.action>
<f:link.action action="list" controller="Event" arguments="{overwriteDemand:{locationCountry: 'Germany'}}">Show all events in Germany</f:link.action>
Filter by year, month and/or day¶
It is possible to filter events by a specific year, month or day. Using the overwriteDemand parameter is as following:
<f:link.action action="list" controller="Event" arguments="{overwriteDemand:{year: '2017'}}">All events in 2017</f:link.action>
<f:link.action action="list" controller="Event" arguments="{overwriteDemand:{year: '2017', month: '10'}}">All events in october of the year 2017</f:link.action>
<f:link.action action="list" controller="Event" arguments="{overwriteDemand:{year: '2017', month: '10', day: '1'}}">All events on the 1st of october 2017</f:link.action>
The filtering also respects events, which are in between the given filter criteria. If you for example set the filter option to filter events for the 2st of october 2017, then also an event will be shown, that start at the 1st of october and ends at the 3rd of october.