georgringer / paginate-vh
分页 VH
0.1.0
2022-10-14 19:22 UTC
Requires
- php: >=7.4
- typo3/cms-core: ^10.4 || ^11.5 || ^12
README
本扩展仅提供了一个ViewHelper,作为已从TYPO3 11中删除的ViewHelper f:widget.paginate
的替代品。
感谢 in2code 创建了这个ViewHelper并将其添加到 EXT:lux。本扩展仅提供了ViewHelper的简化版本。
重要:始终尝试将分页逻辑移动到控制器中,不要将其放入视图中。如果使用此扩展,请谨慎使用!
安装
使用 composer req georgringer/paginate-vh
安装此扩展。
使用方法
请参考内容元素“文件链接”的示例,该元素可以通过以下TypoScript启用:
lib.contentElement.templateRootPaths.919 = EXT:paginate_vh/Resources/Private/Examples/
不同示例
<paginate:paginate as="paginatedItems" objects="{items}" itemsPerPage="8"> <div> <f:for each="{paginatedItems.paginator.paginatedItems}" as="item" iteration="fileIterator"> <div>{item.title}</div> </f:for> </div> <f:if condition="{paginatedItems.paginator.numberOfPages} > 1"> <ul class="f3-widget-paginator pagination"> <f:if condition="{paginatedItems.pagination.previousPageNumber} && {paginatedItems.pagination.previousPageNumber} >= {paginatedItems.pagination.firstPageNumber}"> <li class="previous"> <a href="{f:uri.page(additionalParams:{currentPage:paginatedItems.pagination.previousPageNumber})}" title="previous" class="page-link"> < </a> </li> </f:if> <f:if condition="{paginatedItems.pagination.hasLessPages}"> <li class="page-item">…</li> </f:if> <f:for each="{paginatedItems.pagination.allPageNumbers}" as="page"> <f:if condition="{page} == {paginatedItems.paginator.currentPageNumber}"> <f:then> <li class="page-item current active"> <span class="page-link">{page}</span> </li> </f:then> <f:else> <li class="page-item"> <a href="{f:uri.page(additionalParams:{currentPage:page})}" class="page-link">{page}</a> </li> </f:else> </f:if> </f:for> <f:if condition="{paginatedItems.pagination.hasMorePages}"> <li class="page-item">…</li> </f:if> <f:if condition="{paginatedItems.pagination.nextPageNumber} && {paginatedItems.pagination.nextPageNumber} <= {paginatedItems.pagination.lastPageNumber}"> <li class="next"> <a href="{f:uri.page(additionalParams:{currentPage:paginatedItems.pagination.nextPageNumber})}" title="next" class="page-link"> > </a> </li> </f:if> </ul> </f:if>
路由
Pagination: type: Simple limitToPages: [5] routePath: '/seite/{currentPage}' requirements: currentPage: '[0-9]{1,3}' _arguments: currentPage: 'currentPage' aspects: currentPage: type: StaticRangeMapper start: '1' end: '20'