dynamic / silverstripe-collection
Display a filterable collection of pages or dataobjects on a page.
Installs: 13 974
Dependents: 2
Suggesters: 0
Security: 0
Stars: 4
Watchers: 6
Forks: 4
Open Issues: 1
Type:silverstripe-vendormodule
pkg:composer/dynamic/silverstripe-collection
Requires
Requires (Dev)
This package is auto-updated.
Last update: 2025-10-05 21:13:21 UTC
README
Display a filterable collection of pages or dataobjects on a page.
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:
$Collectionwill display a list of all results$PaginatedListwill paginate the results$GroupedList.GroupedBy(CategoryTitle)will display results grouped by the variable you pass
Documentation
See the docs/en folder.