2013-11-26 2 views
0

userFunc이 참이 아닌지 확인하려고합니다. 하지만 내가 정말 원하는이다userfunc true가 아닌지 확인 [userFunc! = user_myfunc]

[userFunc = user_myfunc] 
    #function returns true 
[ELSE] 
    #function returns false 
[end] 

: (문제가 해결되지 않습니다!)

[userFunc != user_myfunc] 
    #function returns false 
[end] 

가 그런 일을 할 수 있나요

그것은 ELSE와 함께 작동?

내가 원하는 이유는 다음과 같습니다. myfunc가 false이고 myfunc2가 true인지 확인하고 싶습니다. 이런 식으로 뭔가 :이 불가능

[userFunc != user_myfunc] && [userFunc = user_myfunc2] 
    #user_myfunc returns false & user_myfunc2 returns true 
[end] 
+0

이 조건을 부정하려면 사용해야 [조건] [ELSE] 재료 [END] – pgampe

답변

1

내가 내 함수에 "없다"매개 변수를 추가하여이 문제를 해결했다.

[userFunc = user_myfunc(not)] 

및 함수 자체에서 내가 할 :

[userFunc != user_myfunc] 

지고

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; 
    } 
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

+0

그게 100 % 맞는지 확실하지 않습니다. 동일한 페이지에서'! ='를 검색하면 "같지 않은"몇 가지 예가 있습니다. 나는'[userFunc =! = user_myfunc]'와'[userFunc = user_myfunc,! = true]'와 같은 다른 것들을 시도했다. 어쩌면 userFunc만으로는 가능하지 않을 수도 있습니다 .. – nbar

+0

'TRUE' 또는'FALSE'를 반환해야하는 함수이기 때문에'='만 가능하다고 생각합니다. 따라서 조건문의 사용 여부를 제어 할 수 있습니다. – tmt

+0

@cascaval 이제는 userFunc의'='가 연산자가 아니라 그냥 char라고 생각합니다. 함수 자체는 조건으로 간주됩니다. 따라서 함수의 반환 값은 반환 값을 다른 것으로 비교하지 않고 조건으로 간주됩니다. – nbar

관련 문제