Konstanten in TypoScript verwenden

Motivation

In einem TypoScript-Template lassen sich im CONSTANTS-Bereich Konstanten definieren, die man im SETUP-Bereich verwenden kann. Durch das Prinzip der Vererbung in TypoScript funktioniert das auch über mehrere Templates hinweg. Konstanten sind sehr nützlich, wenn es darum geht, den TypoScript-Code flexibel zu halten.

Beispiel

Die Syntax bei der Definition und der Verwendung von Konstanten ist immer die Selbe: Im CONSTANTS-Bereich des Template legt man einen Namen für die Konstante fest und weist dieser einen Wert zu:

Definition von Konstanten in TypoScript (CONSTANTS)
# 'baseUrl' enthält die Domain der Website
baseUrl = http://www.jochen-froehlich.de/

# 'id_homepage' enthält die UID der Startseite
id_homepage = 2

Im SETUP-Bereich eines beliebigen Templates unterhalb des Templates, in dem die Konstanten definiert wurden, können diese Werte dann eingebunden werden.
Angenommen, unsere beiden Konstanten 'baseUrl' und 'id_homepage' wurden im TypoScript-Template der Startseite auf oberster Ebene definiert, so können die Werte in jedem beliebigen Template im darunter liegenden Seitenbaum verwendet werden.

Das Einbinden einer Konstanten im SETUP-Bereich sieht folgendermaßen aus:

Einbinden von Konstanten in TypoScript (SETUP)
# Verwendung von 'baseUrl' in einem Metatag (absolute URL zu einem Stylesheet)
page = PAGE
page.headerData.10 = TEXT
page.headerData.10.value = <link rel="stylesheet" href="{$baseUrl}/fileadmin/css/style.css" type="text/css" />

# Verwendung von 'id_homepage' in einer Bedingung (Condition)
[globalVar = TSFE:id={$id_homepage}]
# diesen Code nur auf der Startseite ausführen
[global]

Best Practice

Welche praktische Anwendung gibt es für diese beiden Konstanten?

Angenommen, es gibt zwei TYPO3-Systeme: Ein Livesystem, das von Redakteuren gepflegt und erweitert wird. Ein Testsystem, welches auf einer anderen Domain läuft und nicht die selben UIDs für bestimmte Seiten hat (beim Anlegen neuer Seiten auf dem Livesystem erhöht sich der Zähler für die Seiten-IDs, das Testsystem bekommt davon nichts mit).

Durch die Verwendung unserer beiden Konstanten ist es nun möglich, die jeweiligen Werte in getrennten CONSTANTS-Bereichen zu speichern (einen auf dem Testsystem und den anderen auf dem Livesystem) und den selben SETUP-Bereich auf beiden Systemen zu haben.

Die Konstante 'baseUrl' macht es auch sehr einfach, ein System auf eine andere Domain umzuziehen: Es muss nur an einer einzigen Stelle der Name der Domain geändert werden.

Neben der gezeigten Konstante 'id_homepage' können natürlich auch die UIDs weiterer Seiten als Konstanten definiert werden. Praktisch ist dies meist bei Conditions, der 'special'-Eigenschaft von Menüs oder auch Zielen für einzelne Links.

Auch zur Anzeige von Übersetzungen in TypoScript lassen sich Konstanten hervorragend verwenden.

Konstante als Variable verwenden

Statt der Bezeichnung "Konstante" würde der Begriff "Variable" besser passen, da ihre Werte in Templates auf jeder Seite neu definiert werden können. Dies lässt sich zum Beispiel dazu verwenden, ein Inhaltselement auf bestimmten Seiten mit einer Condition ein- und auszublenden:

"Variable Konstante" in TypoScript definieren
# Element standardmäßig nicht anzeigen
# Diese Definition steht im Root-Template auf oberster Ebene
show_element = 0
Wert in einer Condition prüfen
# Element anzeigen, wenn 'show_element' einen Wert größer als 0 (Null) hat
# Diese Bedingung ist Teil des Root-Templates auf oberster Ebene
[globalVar = LIT:0<{$show_element}]
10 = TEXT
10.value = ...Das Inhaltselement...
[global]

Die Angaben im SETUP-Bereich des Root-Templates werden auf alle darunterliegenden Seiten vererbt. Legt man nun auf einer beliebigen Unterseite ein Template an und setzt in dessen CONSTANTS-Bereich den Wert von 'show_element' auf 1, so wird auf dieser Seite (und all ihren Unterseiten) das Inhaltselement in der Condition angezeigt. Setzt man auf einer Unterseite den Wert wieder auf 0 (Null), so wird das Inhaltselement versteckt.

Kommentare zu Konstanten in TypoScript verwenden

Gib jetzt den ersten Kommentar zu diesem Artikel ab!


Kommentar abgeben


(wird nicht veröffentlicht, Gravatar ist eingeschaltet)



* Diese Felder sind für das Kommentieren notwendig

Besucher fanden diese Seite unter folgenden Suchbegriffen:

typoscript konstanten · typo3 konstanten · typo3 condition inhaltselement · config.domain typoscript · typo3 konstanten domain erkennen