2016-10-10 6 views
4

для отображения новостей i've сделан различные макеты шаблонов, чтобы выбрать для серверных редакторов, сконфигурированный в моих theme's конфигурация TS:Как установить специальные условия tx_news в моем typoscript?

tx_news.templateLayouts { 
     10 = LLL:EXT:mytheme/Resources/Private/Language/locallang.xlf:news.layout.withoutDate 
     20 = LLL:EXT:mytheme/Resources/Private/Language/locallang.xlf:news.layout.highlightListView 
     30 = LLL:EXT:mytheme/Resources/Private/Language/locallang.xlf:news.layout.imageTeaserListView 
    } 

В моей жидкости шаблона я могу переключить условия как

<f:switch expression="{settings.templateLayout}"> 
    <f:case value="10"> 
    ... use layout 1 
    </f:case> 
    <f:case value="20"> 
    ... use layout 2 
    </f:case> 
    <f:case value="30"> 
    ... use layout 3 
    </f:case> 
</f:switch> 

Все работает очень хорошо, пока здесь.

Теперь я хочу встраивать javascript только для одного из этих шаблонов шаблонов. Итак, я попытался включить js в условие в typoscript, запросив значение в этой настройке templateLayout. Что-то вроде этого:

[globalVar = GP:tx_news_pi1|settings|templateLayout=30] 
page{ 
    includeJSFooter { 
     test = EXT:mytheme/Resources/Public/JavaScript/news-test.js 
    } 
} 
[global] 

Но это условие не работает. Итак, мой вопрос: что не так? И как я могу управлять этим, чтобы работать, чтобы получить правильное значение для условия? Надеюсь, кто-то может помочь, спасибо заранее.

ответ

6

Условие [globalVar = GP:tx_news_pi1|settings|templateLayout=30] относится к данным, отправленным с использованием HTTP-запроса, что не соответствует этому случаю. settings являются частью части TypoScript и FlexForm внутри элемента плагина, который был создан в бэкэнде TYPO3.

Мое предложение состоит в том, чтобы расширить ваши шаблоны Fluid и загрузить соответствующий ресурс. Вы также можете использовать дополнительную настройку, указывающую на файл.

Новая TypoScript установка для новости:

plugin.tx_news.settings.Mytheme { 
    customLibrary = EXT:mytheme/Resources/Public/JavaScript/news-test.js 
} 

доступа внутрь жидкости:

{namespace n=GeorgRinger\News\ViewHelpers} 

<f:switch expression="{settings.templateLayout}"> 
    <f:case value="10"> 
    ... use layout 1 
    </f:case> 
    <f:case value="20"> 
    ... use layout 2 
    </f:case> 
    <f:case value="30"> 
    ... use layout 3 
    <n:includeFile path="{settings.Mytheme.customLibrary}" /> 
    </f:case> 
</f:switch> 

В приведенном выше примере использует IncludeFileViewHelper ЕХТ: новости

+0

Для полноты: пример, как использовать Выбор шаблона также можно найти в [официальном руководстве расширения новостей] (https://docs.typo3.org/typo3cms/extensions/news/AdministratorManual/Templates/TemplateSelector/Index.html) –