2015-11-17 2 views
1

У меня есть список просмотра и плагин с подробным представлением tx_news на той же странице. Когда я вхожу на страницу без параметра news-id, я бы хотел показать последнюю новостную запись. Есть ли способ сделать это?Показать последние новости в TX_News

Я обнаружил, что запрос функции для этого было отвергнут здесь: https://forge.typo3.org/issues/67012

ответ

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 
     } 
}