решения содержится в документации. Я не нашел его там, пока сам не понял, и искал конкретный метод, который мне нужен (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
}
}