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

TYPO3 tx_news按年份归档展示活动列表的实现方法咨询

实现tx_news按年份归档的活动列表(TYPO3 v8.7.13 + tx_news v7.0.4)

嘿,刚好我对这个场景有实操经验,你提到的旧tt_news里的datetimeDaysToArchive这类预定义对象确实在tx_news里没有直接替代,但有两种靠谱的方法能实现按年份归档的需求:

方法1:使用TYPO3自带的「日期菜单」内容元素

这是最省心的原生方案,步骤如下:

  • 在后台页面添加一个日期菜单类型的内容元素
  • 在配置面板里,把「数据源」选择为tx_news_domain_model_news(tx_news的新闻记录)
  • 设置「分组方式」为「按年」,按需调整是否显示空年份、排序方向等参数
  • 给这个日期菜单配置自定义FLUID模板,结合tx_news的列表渲染逻辑,输出年份标题+对应新闻条目的结构

方法2:自定义FLUID模板+<f:groupedFor> ViewHelper

如果日期菜单的灵活性不够,直接在tx_news的列表模板里写分组逻辑更直接:
利用TYPO3的f:groupedFor ViewHelper,把新闻按发布日期的年份分组,示例代码如下:

<!-- 在tx_news的列表模板(如List.html)中替换原有列表部分 -->
<f:groupedFor 
    each="{news}" 
    as="newsItemsPerYear" 
    groupBy="datetime" 
    groupKey="currentYear" 
    dateFormat="Y"
>
    <h3>{currentYear}</h3>
    <ul>
        <f:for each="{newsItemsPerYear}" as="newsItem">
            <li>
                <a href="{f:uri.page(pageUid: newsItem.detailPageUid, arguments: {news: newsItem.uid})}">
                    {newsItem.title}
                </a>
            </li>
        </f:for>
    </ul>
</f:groupedFor>

额外注意事项

  • 确保所有tx_news记录都正确填写了datetime字段(发布日期),否则分组会出错
  • 如果需要筛选归档的时间范围(比如只显示近5年),可以在tx_news插件的「记录存储页」配置里,添加「附加where条件」:datetime >= DATE_SUB(NOW(), INTERVAL 5 YEAR)
  • 要是需要分页功能,可以配合tx_news自带的分页配置,或者自定义分页逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:35:21