

First the OR condition ins sample 1
negate is worked out after condition1 and condition2, with a following AND condition. So if is only false, if condition1 and condition2 are false.
It sounds a bit strange, but thats the way it works in typo3
Now the chaining of multiple conditions in the 2nd example:
The isTrue and isFalse (and also some others, see tsref) conditions contain a stdWrap, that means that you can use in a isTrue another if and create all the conditions you need ( if you are able to open the bend in your brain afterwards :) ).
I think this way all combinations of conditions can be implemented..
# Sample 1 # with negate you can combine multiple conditions with OR # Shows the cObject if condition1 and condition2 if { value=1 isLessThan = condition1 isFalse = condition2 negate = 1 } # Example 2 # Using nested if's # condition1 AND NOT (condition2 UND condition3) if { isTrue = condition1 # default return false isFalse = 1 # if this condition is met, the 1 from isFalse is deleted und isFalse returns true isFalse.if { value = 1 isLessThan = condition2 isFalse = condition3 } } # condition1 UND (condition2 ODER condition3) if { isTrue = condition1 isPositive = 1 isPositive.if { value=1 isLessThan = condition2 isFalse = condition3 negate = 1 } }
This snippet was submitted by Till.




AND and OR are *distributables* :
NOT (c1 OR c2) <=> (NOT c1) AND (NOT c2)
NOT (c1 AND c2) <=> (NOT c1) OR (NOT c2)
The first of these rules is used in the first sample,
(c1 OR c2) in fact written as NOT (NOT c1 AND NOT c2)
AND and OR are *associatives* :
c1 AND (c2 OR c3) <=> (c1 AND c2) OR (c1 AND c3)
c1 OR (c2 AND c3) <=> (c1 OR c2) AND (c1 OR c3)
This way, a complex expression can be reduced to be written in TS.
Hope it'll be useful.
Add comment