https://github.com/dynamic/silverstripe-collection
Display a filterable collection of pages or dataobjects on a page
https://github.com/dynamic/silverstripe-collection
hacktoberfest silverstripe
Last synced: 6 months ago
JSON representation
Display a filterable collection of pages or dataobjects on a page
- Host: GitHub
- URL: https://github.com/dynamic/silverstripe-collection
- Owner: dynamic
- License: bsd-3-clause
- Created: 2017-02-14T02:25:44.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-03-05T17:55:21.000Z (over 1 year ago)
- Last Synced: 2024-11-28T23:37:23.597Z (7 months ago)
- Topics: hacktoberfest, silverstripe
- Language: PHP
- Homepage:
- Size: 38.1 KB
- Stars: 4
- Watchers: 8
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Silverstripe Collection
Display a filterable collection of pages or dataobjects on a page.
[](https://travis-ci.org/dynamic/silverstripe-collection)
[](https://scrutinizer-ci.com/g/dynamic/silverstripe-collection/?branch=master)
[](https://scrutinizer-ci.com/g/dynamic/silverstripe-collection/?branch=master)
[](https://scrutinizer-ci.com/g/dynamic/silverstripe-collection/build-status/master)
[](https://codecov.io/gh/dynamic/silverstripe-collection)[](https://packagist.org/packages/dynamic/silverstripe-collection)
[](https://packagist.org/packages/dynamic/silverstripe-collection)
[](https://packagist.org/packages/dynamic/silverstripe-collection)
[](https://packagist.org/packages/dynamic/silverstripe-collection)## 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](docs/en/index.md) folder.