2012-08-02 81 views
3

如果GET變量爲空,是否有方法使用Typoscript條件爲TypoScript TEXT分配不同的值?空變量的Typoscript條件

類似的東西:

xxxx.1 = TEXT 
[globalVar = GP:print != ""] 
xxxx.1.value = Absent 
[else] 
xxxx.1.value = Present 
[end] 

當然這裏的!= ""不工作,所以我應該怎麼用呢?

回答

7

這裏是「如果」的一個示例:

1 = TEXT 
1 { 
    value = Absent 
    override = Present 
    override.if { 
     isTrue.data = GP:print 
    } 
} 
+0

但這是一個條件?它看起來像一個複雜的默認值? – Bytemain 2012-08-10 12:06:54

+0

這不是一個條件。另請注意,這將被緩存。條件可能是[globalVar = GP:print = 1]。所以你的鏈接將不得不追加「?print = 1」。 – Shufla 2012-09-13 13:14:46

+0

@Phpdna這看起來像一個複雜的默認值,但它是我可以檢查是否設置GET-param的唯一方法。請注意,如果「?print = 0」將被評估爲false,並且在此示例中將使用值「Absent」。 – 2014-09-23 08:07:51

0

起初在typoscript中沒有!=。您只能使用>,<,=作爲條件。

爲了你的需求,你可以使用這個:

[globalVar = GP:view = print] 

[end] 

只要定義一個變量「視圖」,它可以成爲價值「打印」。

  • 您也可以使用「if」和「override」,「ifEmpty」和「required」。
  • 下面是條件的一些其它實例中的TypoScript:http://www.pi-phi.de/19.html
+0

我知道這個答案是舊的,但最後還是因爲6.0版本在TYPO3中有一個=操作:http://docs.typo3.org/typo3cms/TyposcriptReference/Conditions/Reference/Index.html#id23 :) – 2014-10-01 07:27:01

1

隨着globalString它也可以使用一個正則表達式作爲比較。根據具體情況,這也可能是一個可行的解決方案。

[globalString = GP:test = /.+/] 
# This is only evaluated if GP:test contains one or more characters 
[global]