2017-02-23 59 views
1

我想使用條件語句來爲News(tt_news)應用不同的模板。目前我使用的是一個返回true/false的用戶函數。如果當前新聞具有特定類別並且正常工作,則返回1,否則返回Null如何在Typoscript(TYPO3 6.2)中的條件語句中使用variable/user_func?

我跟着官方文檔和其他網站,所以我提出的條件

[userFunc = user_isLatin] 
plugin.tt_news.templateFile = fileadmin/templates/plugins/tt_news/latin_detail.html 
page.1010 = TEXT 
page.1010.value = LATIN 
[ELSE] 
plugin.tt_news.templateFile = fileadmin/templates/plugins/tt_news/general_detail.html 
page.1010 = TEXT 
page.1010.value = OTHERS  
[END] 

,但它總是顯示OTHERS。我試圖用變量

temp.catuid = USER 
temp.catuid.preUserFunc = user_ttNewsInCat 

latin = TEXT 
latin.value < temp.catuid 

[latin.value = 1] 
.... 
[ELSE] 
.... 
[END] 

但它也不起作用。

+0

你已經找到了解決辦法? –

+0

沒有這種方式。我必須找到另一種解決方法,通過使用標記和Javascript在前端進行編程。 –

回答

0

它的工作原理與您試圖完成的一樣。 這是我現在測試的cobndition:

[userFunc = user_isLatin] 
page.10 = TEXT 
page.10.value = LATIN 
[ELSE] 
page.10 = TEXT 
page.10.value = OTHERS  
[END] 

這是一個必須在AdditionalConfiguration.php或您的自定義擴展的localcon.php文件的用戶功能的實現(我想這是你錯過了)。

function user_isLatin() { 
    return TRUE; 
} 

欲瞭解更多詳情,請參閱該offcial文檔:https://docs.typo3.org/typo3cms/TyposcriptReference/6.2/Conditions/Reference/Index.html#userfunc

+0

我試過你的建議,但Typoscript條件無法正常工作 –

0

你不需要在6.2使用user_功能,你也可以使用一個類。 而你不需要在AdditionalConfiguration.php中定義它。

Typo腳本:

[userFunc = Vendor\ExtName\Condition\TypoScriptCondition::isLatin()] 
... 
[else] 
... 
[global] 

PHP:

<?php 
namespace Vendor\ExtName\Condition; 

class TypoScriptCondition 
{ 

    public static function isLatin() 
    { 
     ... 
     return true; 
    } 
} 
+0

可能有效,但是它在6.2中是一個未公開的功能。至少不在這個特定的範圍內。誠然,在所有用戶函數的全局範圍內,用例名稱空間可以用來解析用戶函數,這是一個有用的信息。 –

+0

我做了一個Pull請求,將它添加到6.2的文檔中,並將它添加到7.6:https://docs.typo3.org/typo3cms/TyposcriptReference/6.2/Conditions/Reference/#userfunc –

相關問題