TYPO3 - Enterprise Content Management
TYPO3 ist ein sehr mächtiges und weit verbreitetes CMS. Seit vielen Jahren ist das System bei uns erfolgreich in diversen Projekten unterschiedlichen Umfangs im Einsatz. Gerade die Erweiterung des System durch Extensions ist ein sehr großer Vorteil.
Durch die eigene Konfigurationssprache TYPOSCRIPT sind auch ungewöhnliche Anforderungen möglich. Gerade für die Definition der Templates und der Navigationselemente eignet sich TYPOSCRIPT hervorragend.
Nachfolgend haben wir ein paar interessante Codeschnipsel zusammengetragen.
BaseURL abhängig von der Domain definieren
Wenn man die RealURL Erweiterung benutzt, muss man für die Seite eine baseURL definieren. Nun wird es kann es etwas schwierig werden, wenn es viele Domains gibt, die auf die TYPO3-Installation zeigen.
Mit folgenden TYPOSCRIPT im RootTemplate setzt man abhängig vom Servernamen die baseURL:
config.baseURL = http://www.sectorbyte.de/
[globalString = ENV:HTTP_HOST=www.your-domain.com]
config.baseURL = http://www.your-domain.com/
[end]
[globalString = ENV:HTTP_HOST=www.deine-domain.de]
config.baseURL = http://www.deine-domain.de/
[end]
Seit einiger Zeit ist die Verwendung von baseURL umstritten (baseURL is dead - long live absRefPrefix). Es wird geraten, den Parameter config.absRefPrefix zu verwenden. Dieser kann über obige Methode ebenfalls für mehrere Domains gesetzt werden.
Weiterhin ist zu beachten, dass es ein Sicherheitsproblem mit dem Parameter config.prefixLocalAnchors = all gab. Diese Konfiguration also am besten deaktivieren oder auf einen Wert != all setzen.
TYPOSCRIPT auslagern
Gerade bei umfangreichen TYPOSCRIPT Definitionen ist es sehr unübersichtlicht, alles in den Backend-Eingabemasken und somit in der DB zu speichern. Auch, wenn mehrere Beteiligte an dem Projekt mittels eines Versionsverwaltungstools arbeiten, bietet es sich an, so viel wie möglich in externe Dateien auszulagern.
Folgender TYPOSCRIPT Befehl bindet eine externe Datei ein:
<INCLUDE_TYPOSCRIPT: source="FILE: fileadmin/typoscript/extensions.ts">
Viele Entwickler verwenden die .ts Dateiendung. Der Vorteil ist, dass sofort klar ist, um was für eine Datei es sich handelt und einige Editoren ein Syntaxhighlighting anbieten. Es ist aber auch möglich, ganz normale .txt Dateien zu importieren.
Seit TYPO3 Version 6 können auch alle Dateien eines Verzeichnisses und der ggf. vorhandenen Unterverzeichnisse inkludiert werden. Dazu wird die folgende Definition verwendet:
<INCLUDE_TYPOSCRIPT: source="DIR: fileadmin/typoscript/" extensions="ts">
Zu beachten ist, dass hierbei die Dateien in alphabetischer Reihenfolge inkludiert werden. Soll eine spezielle Datei nach allen anderen geladen werden, muss diese also ggf. umbenannt werden.
Mehr Informationen zu den Includes.
SeitenID im Seitenbaum anzeigen
Um im Backend-Seitenbaum sofort die ID einer Seite zu sehen, kann man folgende TYPOSCRIPT Konfiguration (TSConfig) für den jeweiligen Backend-Benutzer oder die Gruppe eintragen:
options.pageTree.showPageIdWithTitle = 1
System Cache leeren
Um in TYPO3 Version 6.2 den System Cache zu leeren, muss folgende Definition im User TSconfig vorgenommen werden:
options.clearCache.system = 1