Custom Collections

Pages comes with 4 standard collections : https://github.com/joomlatools/joomlatools-pages/wiki/Collection#identifier

  • Pages
  • Filesystem
  • Database
  • Webservice

A custom collection is a collection that derives from a standard collection but extends it's functionality

examples of custom collections are:

  • ext:joomla.model.articles
  • ext:joomla.model.menus
  • etc

Example:
Let's suppose we have an an external source where a field contains a date in a text format like "dd/mm/yy". There is no possibility to filter directly on such a field.
The best way to solve that is create a custom collection and filter the data that comes in transforming the date field to a linux timestamp on the fly, and then filter can pick it up.

Filtering

Custom database collections like the one above that fetch data from different database tables using joins cannot offer filter support out of the box, they would need to implement that themselves (and there is no simple PHP API for that yet).

This is the scope of this issue: https://github.com/joomlatools/joomlatools-pages/issues/698 this is really not easy, the filtering in pages is already doing much more then both Wordpress and Drupal are capable off

Best way to remember or explain this, filtering works for all core collections: database, webservice, filesystem, pages, cache, ... collections out of the box, but not for any custom collections provided by extensions.