if

Diese Funktion liefert wahr zurück, wenn ALLE angegebenen Bedingungen erfüllt sind. Wenn eine einzige Bedingung falsch ist, wird als Wert auch falsch zurückgeliefert.
Der zurückgelieferte Wert kann durch die ».negate-Eigenschaft negiert werden.

Eigenschaft

Datentyp

Beschreibung

Standard

isTrue

str / stdWrap

Wenn der Inhalt "wahr" ist,... (kein leerer String und nicht null)

isFalse

str / stdWrap

Wenn der Inhalt "falsch" ist,... (leer oder null)

isPositive

int / stdWrap + calc

Liefert falsch zurück, wenn der Inhalt nicht positiv ist.

isGreaterThan

value / stdWrap

Liefert falsch zurück, wenn der Inhalt nicht größer als ».value ist.

isLessThan

value / stdWrap

Liefert falsch zurück, wenn der Inhalt nicht kleiner als ».value ist.

equals

value / stdWrap

Liefert falsch zurück, wenn der Inhalt nicht ».value gleicht.

isInList

value / stdWrap

Liefert falsch zurück, wenn der Inhalt nicht in der kommaseparierten Liste ».value zu finden ist. Die Liste in ».value darf keine Leerzeichen zwischen den Elementen haben!

value

value / stdWrap

Der "Wert" (Der oben erwähnte Vergleichswert)

negate

boolean

Dies negiert das Ergebnis der Funktion direkt vor der Rückgabe. Wenn die Funktion bis dahin also wahr zurückgeliefert hätte, liefert sie schließlich falsch zurück.

directReturn

boolean

Wenn diese Eigenschaft gesetzt ist, wird automatisch der Wahr/Falsch-Wert dieser Eigenschaft zurückgeliefert. Könnte benutzt werden, um wahr/falsch mit TypoScript-Konstanten zu setzen.

Erläuterung

Die if-Funktion ist eine recht außergewöhnliche Methode, wahr oder falsch zurückzuliefern. Vorsicht beim Gebrauch.

if wird normalerweise benutzt, um zu entscheiden, ob ein Objekt gerendert oder ein Wert zurückgegeben werden soll (siehe die Inhaltsobjekte und »stdWrap)

So funktioniert diese Funktion:
Die Funktion liefert wahr oder falsch zurück. Ob sie nun wahr oder falsch zurückliefert, hängt von ihren Eigenschaften ab. Sagen wir also, Sie setzen isTrue=1, dann ist das Ergebnis wahr. Wenn Sie isTrue.field=header setzen, liefert die Funktion wahr zurück, wenn das Feld header in $cObj->data gesetzt ist.

Wenn Sie Werte vergleichen wollen, müssen Sie einen Ausgangswert in die ».value-Eigenschaft laden. Beispiel:

.value=10
.isGreaterThan=11

Dies würde wahr zurückliefern, da der Wert von .isGreaterThan größer ist als der zugrundeliegende Wert von 10.

Ein komplexeres Beispiel ist dieses hier:

.value=10
.isGreaterThan=11
.isTrue.field=header
.negate=1

Hier gibt es zwei Bedingungen: isGreaterThan und isTrue. Wenn beide wahr sind, ist das Gesamtergebnis auch wahr, ABER (!) die Rückgabe der Funktion ist falsch, da die ».negate-Eigenschaft das Ergebnis umkehrt.

Beispiel

Hierbei handelt es sich um ein GIFBUILDER-Objekt, welches NEU! auf einem Menüelement ausgibt, wenn das Feld newUntil einen Wert hat, der geringer ist als das aktuelle Datum.

  1. ...
  2.   30 = TEXT
  3.   30.value = NEU!
  4.   30.offset = 10,10
  5.   30.if {
  6.     value.data = date: U
  7.     isLessThan.field = newUtil
  8.     negate = 1
  9.   }
  10. ...

Kommentare von registrierten Benutzern:

Kommentar von: Sommer

08. 07. 2008, 14:27
Falls es jemanden mit ähnlichen Problemen interessiert, ich habs folgendermaßen gelöst:
Diese Zeile
Typoscript:Zeilennummerierung:  An / Aus

  1. wrap = <ul id="subNav"><li class="subNavHeader">Header</li>

Kommt in die linke Spalte der Seite, über das Menü, in einem neuen subpart.
Dannach im Typoscript entfernen.
Typoscript:Zeilennummerierung:  An / Aus

  1. page.10.subparts.SUBNAV = HMENU
  2. page.10.subparts.SUBNAV {
  3.         entryLevel = 1
  4.         wrap = |</ul>
  5.         1 = TMENU
  6.         1.NO.allWrap = <li> | </li>
  7.         1.NO.ATagBeforeWrap = 1
  8.         1.ACT = 1
  9.         1.ACT.allWrap = <li class="active"> | </li>
  10.         1.ACT.ATagBeforeWrap = 1       
  11. }

und dem subpart den content zuweisen
Typoscript:Zeilennummerierung:  An / Aus

  1. page.10.subparts.SUBNAV_HEADER < styles.content.getLeft


Profil

Kommentar von: Sommer

08. 07. 2008, 9:52
Hallo,
Ich habe auf meiner Seite 2 Menüs, ein horizontales und ein vertikales.
Das Vertikale beginnt bei entrylevel = 1,
was ja soweit kein Problem ist.

Mein Problem allerdings ist das diese Zeile
Typoscript:Zeilennummerierung:  An / Aus

  1. wrap = <ul id="subNav"><li class="subNavHeader">Header</li> | </ul>

auf jeder Seite angezeigt wird.
Kann ich das per "if" abstellen das er es mir nur bei entylevel = 1 anzeigt und nicht bei = 0,2,3,...?

Hier das vertikale Menü:
Typoscript:Zeilennummerierung:  An / Aus

  1. page.10.subparts.SUBNAV = HMENU
  2. page.10.subparts.SUBNAV {
  3.         entryLevel = 1
  4.         wrap = <ul id="subNav"><li class="subNavHeader">Header</li> | </ul>
  5.         1 = TMENU
  6.         1.NO.allWrap = <li> | </li>
  7.         1.NO.ATagBeforeWrap = 1
  8.         1.ACT = 1
  9.         1.ACT.allWrap = <li class="active"> | </li>
  10.         1.ACT.ATagBeforeWrap = 1       
  11. }


Profil

Kommentar von: BastianBalthasarBux

01. 04. 2008, 17:04
es muss heissen:
Typoscript:Zeilennummerierung:  An / Aus

  1. 30 = TEXT
  2. 30.value = Irgendein String


Es ginge aber auch zum Beispiel:

Typoscript:Zeilennummerierung:  An / Aus

  1. 30 = TEXT
  2. 30.value = <h1>Meine Überschrift</h1>


oder:

Typoscript:Zeilennummerierung:  An / Aus

  1. 30 = TEXT
  2. 30.data = TSFE:page|title


--> Einfach mal bei der Syntax für TEXT nachschauen ;)


Profil

Kommentar von: Sambale

21. 07. 2006, 10:21
Nee Leute, das stimmt so nicht:
Typoscript:Zeilennummerierung:  An / Aus

  1. 30 = TEXT
  2. 30.text= NEU!

ist richtig, ausserdem muss es heissen:
newUntil statt newUtil

Profil

Kommentar von: Martin Helmich

21. 04. 2006, 14:19
Stimmt. Danke für den Hinweis.

Profil

Kommentar von: Oliver Tan

13. 04. 2006, 23:01
Im Beispiel steht:
30 = TEXT
30.text= NEU!

Muss es nicht so aussehen!?
30 = TEXT
30.value = NEU!



Profil



Seite drucken
 
TYPO3 Version 4.2.0 testen

TYPO3 Ver. 4.2.0 testen

Testen Sie die neue TYPO3 Version 4.2.0 kostenlos für einen Monat

TYPO3 Bücher

TYPO3 Workshops


TYPO3 Einführungsschulung
in Berlin:
Montag, 22.09.
in Espelkamp:
Freitag, 10.10.

TYPO3 Intensivschulung
in Köln:
Mo., 01.09. - Mi., 03.09.
in Berlin:

Mi., 24.09. - Fr., 26.09.
in Espelkamp:

Mo., 06.10. - Mi., 08.10.
in Würzburg:
Mo., 27.10. - Mi., 29.10.

TYPO3 Extensionschulung
in Berlin:
Mo., 29.09. - Mi., 01.10.
in Espelkamp:
Mo., 13.10. - Mi., 15.10.