TYPO3 - Как показать список новостей на английском и немецком языках на одной странице - PullRequest
0 голосов
/ 26 апреля 2018

У меня многоязычный язык (One-Tree-Solution) с языками немецкий (по умолчанию) и английский. Новости на немецком и английском языках. На сайте также есть страница новостной рассылки. Информационный бюллетень (Extension newsletter) написан на немецкой странице. Теперь я хочу автоматически добавить последние 3 новости в эту рассылку. Я использую следующий код, который отлично работает:

lib.news = USER
lib.news {
 userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
 extensionName = News
 pluginName = Pi1
 vendorName = GeorgRinger

 switchableControllerActions {
    News {
      1 = list
    }
}

 settings < plugin.tx_news.settings
 settings {
    cropMaxCharacters = 300
    limit = 3
    detailPid = 50
    overrideFlexformSettingsIfEmpty := addToList(detailPid)
    startingpoint = 51
 }
}

Это дает мне список новостей на языке по умолчанию. Как добавить дополнительный список новостей на втором языке?

Ответы [ 3 ]

0 голосов
/ 26 апреля 2018

в зависимости от вашей конфигурации на ум приходят два решения:

  1. использовать разные папки для каждого языка
    если у вас нет строгого перевода новостей, вы можете хранить новости в зависимости от языка в разных папках. тогда язык новостей можно выбрать в плагине, выбрав разные страницы хранения

  2. используйте страницу помощи
    Вы можете создать другую страницу, на которой отображаются только новости (как для запроса AJAX). в своем информационном бюллетене (странице) вы включаете эту страницу дважды: один раз с ?L=0 и один раз с ?L=1

0 голосов
/ 02 мая 2018

Спасибо, Бернд и Андрей, за ваши предложения. Теперь я нашел другое решение и вставил новость чисто опечаткой. Это код, который работает для меня:

lib.newsblock = CONTENT
lib.newsblock.wrap = <div class="news"><h2">Letzte Artikel.</h2>|</div>
lib.newsblock {
table = tx_news_domain_model_news
select {
pidInList = {$global.news.pid}
# disable default language selection
languageField = 0
max = 3
where = deleted = 0 and hidden = 0 AND sys_language_uid = 0
orderBy = datetime DESC
}

renderObj = COA   
renderObj {  

10 = TEXT
10.field = title
10.wrap = <h2></h2>

# get news image
20 = FILES
20 {
 references {
  table = tx_news_domain_model_news
  uid.field = uid
  fieldName = fal_media
 }

 begin = 0
 maxItems = 1
 renderObj = IMAGE  
 renderObj.params = class="left" align="left"    
 renderObj {
   wrap = <p>|</p>
   file.import.data =file:current:publicUrl
   file.width = 120c
   file.height = 120c
  }    
}
30 = COA
30.wrap = <div>|</div>
30.10 = TEXT
30.10.field = teaser
30.10.wrap = <p>|</p>
30.20 = TEXT
30.20.value =  &gt; Weiterlesen
30.20.typolink {
parameter = {$global.news.single}
additionalParams.data = field:uid
additionalParams.wrap = &tx_news_pi1[controller]=News&tx_news_pi1[action]=detail&tx_news_pi1[news]=|
useCacheHash = 1
}
30.20.typolink.title.field = title
30.20.wrap = <p>|</p>  
}     
}

lib.news = COA
# default language German
lib.news.10 < lib.newsblock

# English
lib.news.20 < lib.newsblock
lib.news.20.wrap = <div class="news"><h2>Recent articles.</h2>|</div>
lib.news.20.select.where = deleted = 0 and hidden = 0 AND sys_language_uid = 1
lib.news.20.renderObj.30.20.value =  &gt; Read more
lib.news.20.renderObj.30.20.typolink.additionalParams.wrap = &tx_news_pi1[controller]=News&tx_news_pi1[action]=detail&tx_news_pi1[news]=|&L=1
0 голосов
/ 26 апреля 2018

Единственное решение, которое я вижу, это расширить плагин новостей. Там вы можете найти больше ресурсов http://www.lukasjakob.com/extend-a-typo3-extbase-model-with-custom-field/

...