ContentBuilder: Advanced Search Module for Joomla!® provides an advanced filter for lists in a module position.
- Joomla!® 3.x or 2.5.
- Intstall an adequate module version
- Download ContentBuilder: Advanced Search Module for Joomla!® 3.x HERE
- Download ContentBuilder: Advanced Search Module for Joomla!® 2.5 HERE
When you install the module go to Extensions > Modules > ContentBuilder - Advanced List Filter. Make sure that is enabled.
ContentBuilder: Advanced Search Module contains 6 different sections:
- Menu Assignment
- Module Permissions
- Filter Settings
Here are few important set up steps you need to apply to get your module working:
- Make sure you enabled "Allow External Filter" in your list view settings (advanced button in view tab), otherwise the filter won't work.
- Make sure you select Module Assigment -> "On All Pages" (or any page you would like) in Menu Assignment tab
- It’s important that you selected "Include in List" in your view setup for all fields you would like to use with this filter. Without that important step the module won’t recognize data from your desired fields.
- In Filter Settings tab:
- Select View section: Select a view from the right you want to connect this filter to.
- Keywords Field and Article Categories Field: Choose if you want to display the keywords and article categories search fields. Article categories will only bring up results, if "Create Articles" is enabled in your view setup and if there are records that have articles behind.
- Force Menu Item: If you want to display this module out of list view context, for example index page and then being redirected to the results list, then please enter the ID of the menu item that is associated with the view you selected. If you leave a zero, the module will only be displayed with the list view selected.
It is possible to add a drill-down selection to the filter. Drill-Down means, that you can display for example a list for Countries and Cities and the select list for cities will be auto-populated depending on the Country selection. If somebody is searching for example for "USA" => "Miami", only records will appear where the country is USA and the city is "Miami".
Please note that the drill down will display all unique values that are already stored in the database and only these. So if your form contains a list of Countries, it doesn't necessarily mean that all these Countries are listed in the drill-down select list before there is no record.
In order to activate the Drill-Down, please enter the Ids of fields you want to drill in the desired order, comma separated. You can retrieve the IDs from the filter fields beside.
- The field will only be used and displayed, if activated by giving an order number beside the textboxes. If you leave out this number, the field won't appear in the module display!
- Each multiline textbox may consume a set of filter values. Each line of a textbox will be used as value for a select that the user can choose from. Means, every textbox will result in a select-list, each item of the list will be a criteria to search for.
- To create a list of search terms, simply add a term per row. For example:
- Grouping of terms is allowed by seperating with "|" (=OR). For example:
This will result in a 2 options list, displaying the terms seperated by comma and executing an or-search per list item.
- Ranges can be defined for dates and numbers. The basic syntax is:
@range/number/1 to 1000
Or, to display up to 1000:
Or, to display starting from 1000:
- Date based ranges can be defined in the same way. The basic syntax is:
@range/date/2011-01-01 to 2011-12-31
Or, to display up to 2011-12-31:
Or, to display starting from 2011-01-01
Ranges (both date and number) may be mixed with regular terms!
- If you want to display a calendar (from/to, from or just to), then just add one of these (and only one of them) into the desired textbox:
If you would like to have a different format in the calendar than the default one, just do it like this:
- Matches are useful if you want to find partial terms, here is a sample of its syntax that would find "Harry":
- Of course you can specify many matches per rule, seperated by semicolon:
- Like ranges and terms, you may mix up matches per textbox.
To establish an initial filter, you may apply the same rules with menu item filters (except for @range/calendar/*).