A small SilverStripe module that applies pagination functionalities to a Controller
and its datalist/s.
- Extends the core
PaginatedList
to also haveAbsoluteNextLink
andAbsolutePrevLink
(in addition to regularNextLink
andPrevLink
) - Adds
PrevPageNum
andNextPageNum
toPaginatedList
- Adds (
int
)PagedLimit
to the extendedPage
- Extends the
PageController
to get aDataList
, wrap it in aPaginatedList
, applies thePagedLimit
and returns it
Note that you do not need to extend a Page
, you can simply add the extension to a Controller
that is already returning a DataList
and the extension will provide the pagination capability.
This module is really just a timesaver for otherwise repetitive and often used functionality.
- silverstripe-framework ^4 and ^5
composer require fromholdio/silverstripe-paged
Install, and then apply:
PagedSiteTreeExtension
to yourPage
class (or subclass)PagedControllerExtension
to yourPageController
class (or subclass)
On your extended Controller
, you must set the following config variable to point the pagination to the source DataList
:
MyNamespace\MyControllerClass:
paged_source_method: 'getMyFullDataList'
If you do not have a page associated to the controller, you can define a per-page-limit on the controller too:
MyNamespace\MyControllerClass:
paged_limit: 12
Review the source, you'll find some hooks in there to update the paginated list and or limit from your base/extended classes, too.
More thorough docs to come. In the meantime please submit questions as issues.
- Better docs