2016-10-10 59 views
4

顯示新聞從來就做出不同的模板佈局來選擇後端的編輯,我theme's配置PageTSconfig:如何在我的輸入法中設置tx_news特定條件?

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的只有這些模板佈局之一。 所以我試圖在typoscript的條件中包含js,要求在此templateLayout設置中的值。類似這樣的:

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

但是這種情況不起作用。所以我的問題:什麼是錯的?我怎樣才能管理這個工作,爲病情獲得正確的價值? 我希望任何人都可以提前幫助,thanx。

回答

6

條件[globalVar = GP:tx_news_pi1|settings|templateLayout=30]指的是使用HTTP請求發送的數據,在這方面情況並非如此。 settings是在TYPO3後端中創建的插件元素內的TypoScript和FlexForm部分的一部分。

我的建議是擴展你的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> 

上面的例子使用EXT的IncludeFileViewHelper:新聞

+0

爲了完整:一個例子,如何使用模板選擇器也可以在[新聞擴展的官方手冊]中找到(https://docs.typo3.org/typo3cms/extensions/news/AdministratorManual/Templates/TemplateSelector/Index.html) –

相關問題