是否可以比较TypoScript中的变量?如果有可能 - 那么如何?
答案 0 :(得分:3)
我在同样的问题上挣扎,所以这就是我发现的。我试图包含一个插件,但只有在已经设置某个TypoScript配置变量的情况下才能使用TypoScript条件,因为这些变量无法访问TypoScript变量!
所以真正走的路是不祥的if
-function。文档说明如下:
如果满足所有当前条件(它们是AND),则此函数返回true。如果单个条件为false,则返回的值为false。
他们所做的不提及的是,如果if
- 函数返回false
,则有问题的元素不会被显示/执行或TypoScript实际上做的任何事情,例如:
10 = TEXT
10.value = foobar
10.if.value = 42
10.if.equals = 24
此TEXT元素永远不会显示,因为条件不会评估为true。但是,将显示以下内容:
10 = TEXT
10.value = foobar
10.if.value = 42
10.if.isGreaterThan = 24
if.value
始终保存您要比较的值,然后您可以使用一堆属性来比较另一个值。
文档中唯一的好例子就是这个:
这是一个GIFBUILDER对象,如果字段“newUntil”的日期小于当前日期,它将在菜单项上写“NEW”!
...
30 = TEXT
30.text = NEW!
30.offset = 10,10
30.if {
value.data = date: U
isLessThan.field = newUntil
negate = 1
}
...
但要注意......这些属性在任何元素类型上都不可用(USER_INT
例如,没有它们)。
我所做的解决方法是将USER_INT
包裹在COA
中,如下所示:
config.enableMyStuff = 1
page.20 = COA
page.20 {
10 =< plugin.tx_myextension_pi1
if.value < config.enableMyStuff
if.equals = 1
}
答案 1 :(得分:0)
您可以使用equals-keyword比较变量。如果你的typoscript是
10.value = 10
然后你可以指定一个
10.equals = 10
和条件
10.iftrue = 20
对不起,这是我的记忆,但你可以在typoscript手册中阅读。我想说这是一个使用相邻树模型的递归数据结构。这是一个链接:http://typo3.org/documentation/document-library/core-documentation/doc_core_tsref/4.5.0/view/1/5/#id2621713
答案 2 :(得分:0)
正常TypoScript "globalString" condition和常数:
是可能的[globalString = LIT:foobar = {$some.typoscript.constant}]
...
[global]