Sie befinden sich hier

Inhalt

Condition für Typo3: UND-ODER Verknüpfung

Bei der Arbeit mit Typo3 Conditions (Bedingungen) kommt immer wieder die Frage auf wie man diese miteinander verknüpft. Dieses Howto erklärt kurz die Grundlagen.

In den unten verlinkten Artikeln zu Typo3 Conditions können viele Beispiele zum Setzen und Nutzen einer Typo3 Condition gefunden werden. Grundsätzlich kommt aber immer wieder die Frage auf, wie man Typo3 Conditions verknüpft.

Grundlagen

Ein paar Rahmenbedingungen zur Arbeit mit den Typo3 Conditions lassen sich kurz und einfach zusammenfassen:

  • Conditions dürfen nicht verschachtelt werden. Folgende Condition ist demnach falsch:
[Bedingung1]
...
[Bedingung2]
..
[GLOBAL]
[GLOBAL]
  • Conditions dürfen nicht in geschweiften Klammer verwendet werden. Folgende Bedingung ist demnach falsch:
... 
{
[Bedingung]
..
[GLOBAL]
}
  • Die Typo3 Condition muss immer mit [GLOBAL] geschlossen werden.
  • Eine UND-Verknüpfung schlägt eine ODER-Verknüpfung. Es gelten also innerhalb einer Verknüpfung erst die UND-Operatoren, dann die ODER-Operatoren.

Die UND-Verknüpfung

Sollen alle Bedingungen zutreffen bevor ein TS greift muss folgendem Konstrukt verknüpft werden:

[browser = msie] && [version = 7]
...
[GLOBAL]

Das TS innerhalb der Bedingung wird also ausgeführt wenn der Nutzer den Internet Explorer 7 verwendet.

Die ODER-Verknüpfung

Soll eine von mehreren Bedingungen zutreffen bevor ein TS greift muss folgendes Konstrukt verwendet werden:

[browser = msie] || [hour = >5, <11]
...
[GLOBAL]

Das TS wird ausgeführt wenn der Benutzer mit dem Internet Explorer surft, oder die Uhrzeit zwischen 5 und 11 Uhr ist.

Wird zwischen zwei Typo3 Conditions kein Operator gesetzt wird die ODER-Verknüpfung angewendet. Gültig ist als auch:

[browser = msie] [hour = >5, <11]
...
[GLOBAL]

Ich würde aber, insbesondere bei größeren Konstrukten immer den Operator einsetzen.

Die ELSE-Alternative

Gilt eine Typo3 Condition nur innerhalb eines kleinen Bereichs muss meist eine Alternative angeboten werden. Hierzu kann der ELSE-Operator verwendet werden. Das TS danach wird immer dann ausgeführt, wenn eine Bedingung nicht zugetroffen hat.

[browser = msie] && [version = 7]
...
[ELSE]
...
[GLOBAL]

Das TS im Beispiel greif also immer dann, wenn kein IE7 verwendet wird.

Wichtig

Da Typo3 Conditions nicht in geschweiften Klammern verwendet werden drüfen, muss immer der komplette Elementenpfad mit "page" beim Inhalt angegeben werden. Innerhalb der Typo3 Condition kann wieder eine geschweifte Klammer geöffnet werden.

Beispiel:

page.10.headerimage.value = /pfad/zum/bild.jpg

Kontextspalte