You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TYPO3环境tx_news 9.0分页最大链接数配置失效如何解决

tx_news 9.0 分页最大链接数配置失效解决方案

失效原因

TYPO3 11及以上版本废弃了fluid的widget分页组件,改用核心原生的SimplePaginator+SlidingWindowPagination分页逻辑,旧版widget会自动读取settings.list.paginate.maximumNumberOfLinks配置,新版逻辑需要手动传递参数才能生效。

解决方案步骤

  • 第一步:确认TypoScript配置完整,补充分页参数映射
    在你的站点TypoScript Setup中添加以下配置,保持最大链接数配置一致:
    plugin.tx_news {
      settings {
        list {
          paginate {
            # 保留原有的最大链接数配置,可自行修改数值
            maximumNumberOfLinks = 10
            # 新增适配新版分页的参数映射
            pagination {
              maximumNumberOfLinks = {$plugin.tx_news.settings.list.paginate.maximumNumberOfLinks}
            }
          }
        }
      }
    }
    
  • 第二步:调整列表模板的分页partial调用参数
    找到你替换n:widget.paginate后的列表模板代码,在渲染分页partial时手动传入最大链接数配置:
    <!-- 新闻列表渲染逻辑 -->
    <f:for each="{pagination.paginator.paginatedItems}" as="newsItem">
        <!-- 你的新闻项渲染代码 -->
    </f:for>
    
    <!-- 分页导航渲染,新增maximumNumberOfLinks参数传递 -->
    <f:render partial="Pagination" arguments="{
        pagination: pagination,
        maximumNumberOfLinks: settings.list.paginate.maximumNumberOfLinks
    }" />
    
  • 第三步:确认分页partial逻辑(自定义partial需要检查,使用tx_news自带partial可直接跳过)
    如果你使用自定义的分页partial,确保循环页码时使用滑动窗口的范围参数控制显示数量,参考逻辑:
    <f:if condition="{pagination.numberOfPages} > 1">
      <ul class="pagination">
        <!-- 上一页按钮 -->
        <li class="page-item{f:if(condition: pagination.previousPageNumber, else: ' disabled')}">
          <a class="page-link" href="{f:uri.page(pageNumber: pagination.previousPageNumber)}">&laquo;</a>
        </li>
    
        <!-- 按最大链接数控制显示的页码 -->
        <f:for each="{pagination.allPageNumbers}" as="pageNumber">
          <f:if condition="{pageNumber} >= {pagination.firstPageNumberInSlidingWindow} && {pageNumber} <= {pagination.lastPageNumberInSlidingWindow}">
            <li class="page-item{f:if(condition: pageNumber == pagination.currentPageNumber, then: ' active')}">
              <a class="page-link" href="{f:uri.page(pageNumber: pageNumber)}">{pageNumber}</a>
            </li>
          </f:if>
        </f:for>
    
        <!-- 下一页按钮 -->
        <li class="page-item{f:if(condition: pagination.nextPageNumber, else: ' disabled')}">
          <a class="page-link" href="{f:uri.page(pageNumber: pagination.nextPageNumber)}">&raquo;</a>
        </li>
      </ul>
    </f:if>
    

问题现象参考

被截断的分页问题截图

内容的提问来源于stack exchange,提问作者MichiBeck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 01:15:03