pr3set-llc/silverstripe-collection

Display a filterable collection of pages or dataobjects on a page.

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 5

Type:silverstripe-vendormodule

pkg:composer/pr3set-llc/silverstripe-collection

5.0.0 2025-10-09 19:50 UTC

This package is not auto-updated.

Last update: 2025-10-10 19:38:33 UTC


README

Display a filterable collection of pages or dataobjects on a page.

Build Status Scrutinizer Code Quality Code Coverage Build Status codecov

Latest Stable Version Total Downloads Latest Unstable Version License

Requirements

  • SilverStripe 4.x

Installation

composer require dynamic/silverstripe-collection

Configuration

In your config.yml:

Your/Namespace/ExamplePageController:
  managed_object: ExampleObject
  page_size: 10
  extensions:
    - Dynamic\Collection\CollectionExtension

Managed Page/DataObject

Collection will create a search form based on the managed object's $searchable_fields.

private static $searchable_fields = [
  'Title' => [
    'title' => 'Name',
  ],
  'Category.ID' => [
    'title' => 'Category',
  ],
];

For advanced setups, you can also create getCustomSearchContext() on your managed object.

To include a sorting dropdown field, create a getSortOptions() method on your managed object:

public function getSortOptions()
{
  return array(
    'Created' => 'Date',
    'Title' => 'Name A-Z',
    'Title DESC' => 'Name Z-A',
  );
}

Templates

$CollectionSearchForm will display the search form.

You have mutliple options to loop through the results in your template:

  • $Collection will display a list of all results
  • $PaginatedList will paginate the results
  • $GroupedList.GroupedBy(CategoryTitle) will display results grouped by the variable you pass

Documentation

See the docs/en folder.