A very common need across Liferay-based solutions is to be able to display lists of content (or anything actually) while providing end users with the ability to perform certain operations over the list of content such as filtering, search, etc. This need arises in all sorts of use cases from public websites to intranets as well as customer/citizen/partner portals.
Goals: The goal is to have a way to leverage new components to build custom search/filters that will be associated to: Collection Pages, Display Page and Content Pages Templates. So that we can do something similar to search/filters turnkeys (=OOTB) AND facilitate "creating and optimizing" this type of solutions, which we could call "Content Applications", by leveraging :
- fragments to display the list
- fragments for the controls
Here are some examples of this type of need in the real world:
We'd ideally be able to configure the usage of tags/category as default filters but also leverage elastic search capability to search through titles/description/tags/etc. and all what is searchable.
Possible solutions: A common current solution to solve this need is to use Asset Publisher together with the categories navigation widget. Since this only covers limited use cases, it is also common to extend these two portlets and even create custom portlets to support more controls to the end user. Specifically we believe it's possible to provide many more out of the box capabilities to create this type of application and also make it easier to extend them through custom fragments (instead of extending complex portlets) simplifying the maintenance and upgrade process of custom code.
Needs for filters (MVP):
- Ability for Marketers to compose a fragment allowing external users to filter the results of a collection
- Collection Filter based on Category [ Single selector / Multiple selector ]
- Text Search option:
- ex. Incremental text filtering
- Collection result info
- Ability for Marketers to allow the end users to search through the collection using multiple criteria from Filters.
- Support that filtering for all type of Fragment based Pages: Collection Pages, DPT and Content Pages
Feature flags (already enabled)
Enable collection filter fragment with this gogoshell command:
Enable applied filters fragment with this gogoshell command:
Sample collection provider (just for testing)