dynamic / silverstripe-collection
Display a filterable collection of pages or dataobjects on a page.
Installs: 12 947
Dependents: 2
Suggesters: 0
Security: 0
Stars: 4
Watchers: 8
Forks: 4
Open Issues: 1
Type:silverstripe-vendormodule
Requires
Requires (Dev)
This package is auto-updated.
Last update: 2024-12-05 19:34:56 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:
$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.