Skip to content

Latest commit

 

History

History
127 lines (112 loc) · 4.61 KB

README.md

File metadata and controls

127 lines (112 loc) · 4.61 KB

Paginatedprocessors

License Packagist Downloads TYPO3 TYPO3 TYPO3 Brightside

TYPO3 CMS dataProcessors with pagination

System requirements

  • TYPO3 v11, v12, v13

Features

  • PaginatedDatabaseQueryProcessor
  • PaginatedFilesProcessor
  • PaginatedMenuProcessor
  • Pagination on/off
  • Number of items per page
  • Number of pagination links
  • URL Segment from content element or TypoScript
  • Anchor links to content element or custom id

Installation & Updates

  • composer req t3brightside/paginatedprocessors or from TYPO3 extension repository paginatedprocessors
  • Include static template
  • Enable default CSS from constant editor: paginatedprocessors.enableDefaultStyles = 1
  • See the ChangeLog for updates and breaking changes

Usage

Available DataProcessors

Brightside\Paginatedprocessors\DataProcessing\PaginatedDatabaseQueryProcessor
Brightside\Paginatedprocessors\DataProcessing\PaginatedFilesProcessor
Brightside\Paginatedprocessors\DataProcessing\PaginatedMenuProcessor

TypoScript example

10 = Brightside\Paginatedprocessors\DataProcessing\PaginatedDatabaseQueryProcessor
10 {
  pagination {
    isActive = 1
    # isActive.field = tx_paginatedprocessors_paginationenabled

    itemsPerPage = 10
    itemsPerPage.override.field = tx_paginatedprocessors_itemsperpage

    pageLinksShown = 7
    pageLinksShown.override.field = tx_paginatedprocessors_pagelinksshown

    ## configure anchor links
    # anchorActive = 1
    anchorActive.field = tx_paginatedprocessors_anchor
    ## set element uid manually
    # anchorId = 123
    ## or current content element from uid field
    anchorId.field = uid
    # content uid overriden if custom anchor element set in pagination options
    anchorId.override.field = tx_paginatedprocessors_anchorid

    ## uniqueId is mandatory
    ## returns array 'pagination'
    ## URL example /21/2
    uniqueId.field = uid
    uniquePaginatorName = 0

    ## returns array 'pagination'
    ## URL example /gallery/2
    ## need to map in routeEnhancers, see PaginatedprocessorsByUnigueIdInTs
    # uniqueId = gallery

    ## returns array 'pagination_gallery'
    ## URL example /gallery/2
    ## need to map in routeEnhancers, see PaginatedprocessorsByUnigueIdInTs
    # uniqueId = gallery
    # uniquePaginatorName = 1
  }
  ...
}

Pagination link control examples

pageLinksShown = 1
[<<][<][-4/12-][>][>>]

pageLinksShown = 0 or is bigger than amount of pages + 2
[<][1][2][-3-][4][5][>]

pageLinksShown = 5
[<][1]…[5][6][-7-][8][9]…[60][>]

Template

<f:for each="{pages}" as="page" iteration="iterator">
  <f:render partial="List" arguments="{_all}" />
</f:for>
<f:if condition="{pagination.numberOfPages} > 1">
  <f:render partial="Pagination" arguments="{pagination:pagination}" />
</f:if>
<!-- with uniquePaginatorName turned on -->
<f:if condition="{pagination_gallery.numberOfPages} > 1">
  <f:render partial="Pagination" arguments="{pagination:pagination_gallery}" />
</f:if>

Route enhancers

imports:
  -
    resource: EXT:paginatedprocessors/Configuration/Routes.yaml

In your own extensions

Add pagination fields to custom content element

# There's a palette available to use for tt_content
--palette--;Pagination;paginatedprocessors,

Paginate a custom dataProcessor

Follow the comments in: PaginatedDatabaseQueryProcessor.php

Sources

Development and maintenance

Brightside OÜ – TYPO3 development and hosting specialised web agency