#75: Blacklisting contenttypes for quicksearch and searchform
Create a blacklist in Plone to exclude certain contenttypes from the quicksearch and from the searchform.
- Proposed by
- Alexander Limi
- Seconded by
- jjmurre
- Proposal type
- User interface
- State
- completed
Motivation
A good example for the use of the mentioned blacklist would be the Plone.org site.
When using the quicksearch, most of the search hits are coming from the issue collector, thus polluting the search result.
It would be convenient if the Collector Issue contenttype could be blacklisted.
Proposal
The catalog searches for the standard plone quicksearch and advanced search are in a skin script/template in the default Plone skin. These catalog searches should be changed is such a way that they use the blacklist to exclude certain content types.
Implementation
The blacklist of contenttypes can placed in a lines property of the portal_properties/site_properties or the portal_catalog tool.
Searching in Plone is provided by the following skin templates:
- search.pt (showing the results)
- search_form.pt
- global_search_box.pt
search.pt is not doing a direct call to portal_catalog, but uses the skin script 'queryCatalog'.
A new method in the portal_utils tool will be provided 'getUserFriendlyTypes' that is able to get
a list of all usable types (all types minus the blacklist). When provided with a typeList argument
containing a list of types, this list if filtered for blacklisted types.
The lines property should be named 'unfriendly_types'.
In this way maintenance through the ZMI is possible. However, this is quite error prone.
Better solution is a configlet where the blacklist can be maintained through 'point-and-click', but this can still use the same backend.
Deliverables
- QuickSearch integration
- Advanced Search integration
- LiveSearch integration
Progress log
Future extensions:
- Make UI for selecting blacklisted types (integrate in a configlet for setting other type-specific properties, e.g. workflow, name, ...)
Participants
Martin Aspeli (helping to finish it off)