Mit if
ist es möglich, eine oder mehrere Bedingungen zu definieren, bevor das Ergebnis eines cObjects ausgegeben wird. Bei Erfüllung aller Kriterien wird true zurückgegeben. Wenn nur eine Bedingung nicht erfüllt wird, führt dies mit der Meldung false zum Abbruch.
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
isNull | stdWrap | Bedingung ist erfüllt, wenn der abgefragte Wert der PHP-Wert NULL ist. Da dieser Wert nicht in TypoScript gesetzt werden kann (NULL würde als String angesehen), sind nur die stdWrap-Funktionen verfügbar. 10 = TEXT 10.value = Das Feld 'media' ist leer. 10.if.isNull.data = field:media |
isTrue | string /stdWrap | Bedingung ist erfüllt, wenn der abgefragte Wert nicht leer oder 0 ist. 10 = TEXT 10.value = Es existiert eine Datei im Feld 'media'. 10.if.isTrue.data = field:media |
isFalse | string /stdWrap | Bedingung ist erfüllt, wenn der abgefragte Wert leer oder 0 ist. 10 = TEXT 10.value = Das Feld 'media' ist leer. 10.if.isFalse.data = field:media |
isPositive | integer / stdWrap +calc | Bedingung ist erfüllt, wenn der abgefragte Wert eine Zahl ≥ 1 ist.10 = TEXT 10.value = Der Wert ist positiv. 10.if.isPositive = -5 + 6 |
isGreaterThan | value / stdWrap | Bedingung ist erfüllt, wenn der abgefragte Wert höher ist als der Wert unter if.value . 10 = TEXT 10.value = Die Seiten-ID ist größer als 4. 10.if.isGreaterThan.data = GP:id 10.if.value = 4 |
isLessThan | value / stdWrap | Bedingung ist erfüllt, wenn der abgefragte Wert niedriger ist als der Wert unter if.value . 10 = TEXT 10.value = Die Seiten-ID ist kleiner als 4. 10.if.isLessThan.data = GP:id 10.if.value = 4 |
equals | value / stdWrap | Bedingung ist erfüllt, wenn der abgefragte Wert mit dem Wert unter if.value übereinstimmt. 10 = TEXT 10.value = Die aktuelle Seite heißt 'Impressum'. 10.if.equals.field = title 10.if.value = Impressum |
isInList | value / stdWrap | Bedingung ist erfüllt, wenn der abgefragte Wert in der kommaseparierten Liste unter if.value enthalten ist. 10 = TEXT 10.value = Der Untertitel lautet 'Hund', 'Katze' oder 'Maus'. 10.if.isInList.data = field:subtitle 10.if.value = Hund,Katze,Maus |
value | value / stdWrap | Der hier angegebene Wert dient zum Vergleich mit den Daten, die mit isGreaterThan , isLessThan , equals oder isInList abgefragt wurden. |
negate | boolean | Wenn aktiviert, wird das Ergebnis der Abfrage ins Gegenteil verkehrt. if.negate = 1 bewirkt: if.isTrue → falseif.isFalse → trueif.isPositive → 0 oder negativif.isGreaterThan → kleiner oder gleichif.isLessThan → größer oder gleichif.equals → ungleichif.isInList → nicht enthaltenBei mehreren Bedingungen gilt das Gesamtergebnis dieser Abfragen, also true oder false. |
directReturn | boolean | Ist diese Eigenschaft vorhanden (egal welcher Wert), haben alle anderen Eigenschaften von if keine Wirksamkeit! Die Ausgabe wird nur noch durch den folgenden Wert bestimmt.Mit dieser Eigenschaft kann man zum einen die Ausgabe simulieren; zum anderen könnte der Wert mithilfe einer Konstante gesetzt werden. |
Der Wert true wird zurückgegeben, wenn alle Bedingungen erfüllt sind. Die Eigenschaft if.value
kann nur einmal definiert werden und gilt somit für alle vergleichenden if-Eigenschaften.
10 = TEXT 10 { value = Ausgabetext if.isPositive = 1+3 if.equals = foo if.value = foo } # Beide Vergleiche beziehen sich auf 'if.value': 20 = TEXT 20 { value = Ausgabetext if.isGreaterThan = 5 if.equals = 2 if.value = 2 }