是否可以比较 TypoScript 中的变量?如果有可能 - 那么如何?
3 回答
我在同样的问题上苦苦挣扎,所以这就是我发现的。我试图包含一个插件,但前提是已经设置了某个 TypoScript 配置变量,使用 TypoScript 条件是不可能的,因为这些无法访问 TypoScript 变量!
所以真正要走的路是不祥的if
-function。该文档说明了以下内容:
如果满足所有当前条件(它们是“与”),则此函数返回 true。如果单个条件为假,则返回的值为假。
他们没有提到的是,如果if
-function 返回false
,则有问题的 Element 不会显示/执行或 TypoScript 实际执行的任何操作,例如:
10 = TEXT
10.value = foobar
10.if.value = 42
10.if.equals = 24
此 TEXT 元素将永远不会显示,因为条件不会评估为真。但是,将显示以下内容:
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
a包装COA
如下:
config.enableMyStuff = 1
page.20 = COA
page.20 {
10 =< plugin.tx_myextension_pi1
if.value < config.enableMyStuff
if.equals = 1
}
您可以使用等号关键字来比较变量。如果你的打字稿是
10.value = 10
然后你可以分配一个
10.equals = 10
和一个条件
10.iftrue = 20
对不起,这是我的记忆,但你可以在印刷手册中阅读。我想说它是一个使用相邻树模型的递归数据结构。这是一个链接:http ://typo3.org/documentation/document-library/core-documentation/doc_core_tsref/4.5.0/view/1/5/#id2621713
使用普通的TypoScript “globalString” 条件和常量是可能的:
[globalString = LIT:foobar = {$some.typoscript.constant}]
...
[global]