Pagination
The pagination object is returned on listing pages, usually in the {{ pages.pagination }} field.
The pagination object has the following variables and functions available. In the following examples we assume the pagination object is {{ pagination }}
Variables
page
Return current page.
{{ pagination.page }}totalResults
Return total number of results.
{{ pagination.totalResults }}totalPages
Return total number of pages available.
{{ pagination.totalPages }}resultsPerPage
Return number of results per page.
{{ pagination.resultsPerPage }}from
Return result number for first result on this page.
{{ pagination.from }}to
Return result number for last result on this page.
{{ pagination.to }}Example
This is page {{ pagination.page }}, displaying results {{ pagination.from }}-{{ pagination.to }}If pagination is on page 2 with 20 results per page, this will display:
This is page 2, displaying results 11-20firstPage
Are we on the first page of pagination?
<div data-gb-custom-block data-tag="if"></div>
    Do something
</div>
first
Output the first page of pagination. This is normally 1.
{{ pagination.first }}lastPage
Are we on the last page of pagination?
<div data-gb-custom-block data-tag="if"></div>
    Do something
</div>last
Output the last page of pagination.
{{ pagination.last }}previous
Return the previous page number, or 1 if we are on the first page.
{{ pagination.previous }}next
Return the next page number, or the last page number if we are already on the last page.
{{ pagination.next }}Functions
pageLinks($maxPages)
This returns an array of a set of page numbers to display in pagination. It defaults to showing 5 pages at a time, though you can customise this by altering the $maxPages value.
For example, using the default 5 page links for a pagination result set with 50 pages you would get the following results:
- Page 1: - [1,2,3,4,5]
- Page 2: - [1,2,3,4,5]
- Page 6: - [4,5,6,7,8]
- Page 45: - [45,46,47,48,49]
- Page 47: - [46,47,48,49,50]
- Page 50: - [46,47,48,49,50]
Building pagination HTML
See an example at templates/includes/pagination.html.twig
When calling this template you need to pass the pagination object and the page route you want to generate for pagination links. For example:
{{ include('includes/pagination.html.twig', {'pagination': pages.pagination, 'route': 'news_list'}) }}Last updated
