Das folgende Beispiel zeigt, wie man auf einfache Weise mit TypoScript mehrere if-, else-, oder auch elseif-Bedingungen in einem Rutsch auf ihren Gültigkeit hin validieren kann. Die nächsten Zeilen haben die Aufgabe den Untertitel der Startseite auf mehrere Bedingungen hin zu prüfen und gemäß den Ergebnissen umzuschreiben.
// Default TYPO3 page object
// Falls bereits aktiviert, einfach auskommentieren
page = PAGE
// Zunächst das Inhaltselement anlegen, wo die if else Bedingungen erfolgen
page.1 = COA
page.1 {
// Ein wenig CSS zur besseren Darstellung
wrap = <div style="padding:10px; margin:10px; border:1px solid red; color:#000; background:#fff;">|</div>
// Beispiel #1
// Zeige mir den Untertitel der aktuellen Seite
// oder ersetze diesen, falls es keinen gibt
10 = TEXT
10 {
wrap < page.1.wrap
// Direkte Ausgabe ohne Prüfung
field = subtitle
// Die TypoScript Funktion override greift, wenn es keinen Untertitel gibt
override = Text, wenn bei der aktuellen Seite keine Untetitel da ist
// Override mit der TypoScript Funktion isFalse, als einfache if Abfrage
override.if.isFalse.field = subtitle
}
// Beispiel #2
// Zeige mir den Untertitel nur bei der Startseite und beachte ob diese auch einen hat
// if = Startseite AND if = Untertitel
20 = TEXT
20 {
wrap < page.1.wrap
// Mehreren if Statements über ein override cObject verarbeiten
field = subtitle
override.cObject = COA
override.cObject {
10 = TEXT
10 {
// 1. Wenn aktuelle Seiten ID gleich ID der Startseite
value = Info-Text, wenn Seiten ID gleich der Startseite
if {
value = 1
equals.data = TSFE:id
}
// 2. Wenn ein Untertitel für die Startseite vorhanden ist, diesen überschreiben
override = Die Startseite (ID {TSFE:id}) hat einen Untertitel
override {
if.isTrue.field = subtitle
insertData = 1
}
}
}
}
// Beispiel #3
// Kombination aus den Bedingungen
// IF Startseite = true AND Untertitel = true
// ELSE nicht Startseite
30 = COA
30 {
// Übergabe der vorherigen Abfrage aus Beispiel #2
// if = Startseite AND if = Untertitel
10 < page.1.20
// else Anweisung, falls es sich nicht um die Startseite handelt
stdWrap.wrap < page.1.wrap
stdWrap.override = Leider nicht die Startseite
stdWrap.override.if {
value = 1
equals.data = TSFE:id
negate = 1
}
}
}
Die Variationen der if else Bedingungen mittels override lassen sich beliebig fortführen und verknüpfen.
Eine Liste vorbelegter if else Bedingungen und weiter Informationen zu den TYPO3 Conditions, findet man in der: if - TypoScript Funktionsreferenz.