在TX_News中显示最新的新闻记录

时间:2015-11-17 17:08:18

标签: typo3 tx-news

我在同一页面上有一个列表视图和tx_news的详细视图插件。当我进入没有news-id参数的页面时,我想显示最新的新闻记录。有没有办法做到这一点?

我发现此处的功能请求被拒绝:https://forge.typo3.org/issues/67012

1 个答案:

答案 0 :(得分:2)

解决方案包含在文档中。直到我自己想出大部分内容并且正在寻找我需要的特定方法(useStdWrap)之前我才找到它。这是:

https://docs.typo3.org/typo3cms/extensions/news/AdministratorManual/BestPractice/IntegrationWithTypoScript/Index.html#fallback-in-detail-view-if-no-news-found

# TS SETUP:
plugin.tx_news.settings {
        overrideFlexformSettingsIfEmpty = singleNews,cropMaxCharacters,dateField,timeRestriction,orderBy,orderDirection,backPid,listPid,startingpoint
        useStdWrap = singleNews

        singleNews.stdWrap.cObject = CONTENT
        singleNews.stdWrap.cObject {
                table = tx_news_domain_model_news
                select {
                        max = 1
                        orderBy = datetime
                        # ENTER PID OF YOUR NEWS RECORDS HERE
                        pidInList = 3
                }
                renderObj = TEXT
                renderObj.field = uid
        }
}

此代码不包括按类别过滤的可能性,它会覆盖 overrideFlexformSettingsIfEmpty useStdWrap 中的任何现有配置列表。

如果您需要类别过滤和/或希望在两个配置列表上具有更低的破坏性,这是一个扩展示例:

# TS SETUP:
plugin.tx_news.settings {
        overrideFlexformSettingsIfEmpty := addToList(singleNews)
        useStdWrap := addToList(singleNews)

        singleNews.stdWrap.cObject = CONTENT
        singleNews.stdWrap.cObject {
                table = tx_news_domain_model_news
                select {
                        max = 1
                        orderBy = datetime
                        # ENTER PID OF YOUR NEWS RECORDS HERE
                        pidInList = 3
                        join = sys_category_record_mm ON (tx_news_domain_model_news.uid = sys_category_record_mm.uid_foreign)
                        # ENTER UID OF YOUR CATEGORY HERE (look it up in table sys_category)
                        where = sys_category_record_mm.uid_local = 2
                }
                renderObj = TEXT
                renderObj.field = uid
        }
}