我尝试检查userFunc是否为真。
适用于ELSE:
[userFunc = user_myfunc]
#function returns true
[ELSE]
#function returns false
[end]
但我真正想要的是:(这不起作用!)
[userFunc != user_myfunc]
#function returns false
[end]
是否可以做类似的事情?
我想要这样做的原因是:我想检查myfunc是否为false而myfunc2是否为true。像这样:
[userFunc != user_myfunc] && [userFunc = user_myfunc2]
#user_myfunc returns false & user_myfunc2 returns true
[end]
答案 0 :(得分:1)
这是不可能的,只能进行相同的比较:
http://docs.typo3.org/typo3cms/TyposcriptReference/Conditions/Reference/Index.html#id2 http://docs.typo3.org/typo3cms/TyposcriptReference/Conditions/Reference/Index.html#condition-userfunc
最好的方法是编写一个合并userFunc来进行两项评估。
证明无法否定userFunc的代码在这里: https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/core/Classes/Configuration/TypoScript/ConditionMatching/AbstractConditionMatcher.php#L421
答案 1 :(得分:1)
我通过在我的函数中添加“not”参数解决了这个问题。
[userFunc != user_myfunc]
正在:
[userFunc = user_myfunc(not)]
在函数本身中我做了:
if($not=="not") { // $not is the parameter of the function
return !$returnvalue; // so is the parameter set to "not" I return the oposide.
} else {
return $returnvalue;
}