[Typo3-german] if Grundwissen

Torsten Schrade schrade at lineara.de
Fri Dec 9 14:14:09 CET 2005


Andreas Zaugg schrieb:
> hallo zusammen
> 
> habe noch eine wissenslücke bei den "if" abfragen. folgendes problem:
> 
> 1) in "tmp.pidnumrows" steht eine zahl, unterschiedlich, je nach seite.
> 
> 2) tmp.browsenext.value = next / Dieser Wert möchte ich nun verändern, wenn
> in "tmp.pidnumrows" die Zahl gröser als z.B. 8 ist.
> 
> Also, ich denke ich habe da noch ein verständnis problem. wie muss ich das
> mit dem "isGreaterThan" anwenden?
> 
Hi Andreas,

Zunächst allgemeine Info:

"'if' is normally used to decide whether to render an object or return a 
value (see the cObjects and stdWrap)" (TSRef)

Das heißt, Du mußt "if" so anwenden, dass es entweder einen "override" 
in tmp.browsenext auslöst oder nicht, je nachdem ob die gestellte 
Bedingung kommt wahr zurück. Dazu musst Du den Wert von tmp.pidnumrows 
an ensprechende Stelle in tmp.browsenext einkopieren. Also:

# der Vergleichswert
tmp.pidnumrows = TEXT
tmp.pidnumrows = 10

# das Standardobjekt
tmp.browsenext = TEXT
tmp.browsenext.value = next

# das überschreibende Objekt
tmp.browsenext.override.cObject = TEXT
tmp.browsenext.override.cObject.value = hello

# die Bedingung für das Überschreiben (wahr: überschreiben, unwahr: 
nicht ausgeführt)

tmp.browsenext.override.if {
	value = 8
	isGreaterThan < tmp.pidnumrows
}

Ein bißchen verwirrend bei der "if" Funktion ist, dass man dazu tendiert 
es falschrum (eiglt. richtigrum :) zu lesen: wenn Wert '8' isGreaterThan 
'10' > würde eigtl. unwahr bedeuten. Es ist in TYPO aber genau andersrum 
implementiert: 'isGreaterThan' bezieht sich immer auf den Wert in 
'isGreaterThan' selbst. Daher ließt sich obige Bedingung von hinten: 10 
isGreaterThan value 8 = wahr

So, und jetzt viel Spass. Um Kasper zu zitieren: "the "if"-function is a 
very odd way of returning true or false! Beware!"

Gruss, Torsten



More information about the TYPO3-german mailing list