Typo3 TypoScript globalVar多条件逻辑问题及解决方法
TypoScript多条件匹配问题:实现逻辑与的正确写法
问题场景
你原本期望一段TypoScript代码仅在语言ID为1且页面ID为1432时执行,最初写出的代码如下:
[globalVar = GP:L =1][globalVar = TSFE:id = 1432] lib.atoz = TEXT lib.atoz.value (some test ) [global]
但实际运行发现,只要满足第一个条件(语言为1)代码就会触发,页面ID的限制完全没生效。
问题根源
在TypoScript的条件语法里,连续写两个[globalVar]条件会被默认解析为逻辑或(OR)关系,而非你需要的逻辑与(AND),所以只要任意一个条件满足,代码就会执行。
正确实现方式
要让多个条件同时生效,必须用AND关键字将两个globalVar条件合并为一个判断:
[globalVar = GP:L =1] AND [globalVar = TSFE:id = 1432] lib.atoz = TEXT lib.atoz.value (some test ) [global]
这样代码就只会在语言ID为1 且 页面ID为1432的场景下才会执行了。
内容的提问来源于stack exchange,提问作者Welsh King
相关产品推荐
相关产品推荐

