Texte in TYPO3 suchen und ersetzen
Motivation
Oft gibt es auf einer Website Texte oder einzelne Wörter, die an mehreren Stellen vorkommen. Hier bietet es sich an, diese Texte an einer zentralen Stelle zu speichern und ihnen ein frei wählbares Kürzel zuzuweisen. Diese Kürzel können dann quasi als Platzhalter in den Inhaltselementen der gesamten Website verwendet und automatisiert ersetzt werden.
Negativbeispiel
Ein praktisches Beispiel für die Verwendung von solchen Kürzeln finden Sie auf dieser Seite: Die Überschriften Motivation, Beispiel und Best Practice sind in Wirklichkeit die Platzhalter "MOTIVATION", "EXAMPLE" und "BEST_PRACTICE".
Hier sind es nur einfache Begriffe, es lassen sich auf diese Weise aber auch URLs, ganze Textabschnitte oder HTML-Tags (z.B. img src
Tags für Bilder) ersetzen.
Best Practice
Durch die zentrale Speicherung der Texte und ihrer Platzhalter hat man die Möglichkeit, die Texte einfach modifizieren zu können. Beispielsweise könnte man den Platzhalter "EXAMPLE" ändern in "Fallbeispiel" und der Text wäre in allen Elementen, die das Kürzel verwenden, geändert. Man simuliert dadurch in gewisser Weise die Funktion "Suchen und Ersetzen" in TYPO3.
Dies geschieht mit einem Eintrag der parseFunc.short
Funktion (TEXT
cObject) im Bereich des PAGE-Objektes (hier: page
) in einem TypoScript-Template:
# Sprache 0: Deutsch (Standard) page.stdWrap.parseFunc.short { # einfacher Text EXAMPLE = Beispiel # baseUrl unserer Website (Konstante aus CONSTANTS) BASE_URL = {$baseUrl} # <a href> Tag URL_PARTNER = <a href="http://www.example.com">Partneragentur</a> } # Sprache 1: Englisch [globalVar = GP:L=1] page.stdWrap.parseFunc.short { EXAMPLE = example BASE_URL = {$baseUrl} URL_PARTNER = <a href="http://www.example.com">partner agency</a> } [global]
Wie man sieht, sind verschiedene Zuweisungen möglich (einfache Texte, TypoScript Konstanten, HTML-Tags etc.). Selbstverständlich können mit Conditions auch Übersetzungen für verschiedene Sprachen definiert werden.
Nehmen wir nun einen beispielhaften Text, der die oben definierten Platzhalter enthält:
Original-Text mit Platzhaltern:
Das ist ein EXAMPLE
für die automatische Ersetzung von Platzhaltern mit der parseFunc.short Funktion: Die baseUrl unserer Website ist BASE_URL
und hier folgt ein Hyperlink zu unserer URL_PARTNER
.
Bei Verwendung der oben definierten Kürzel wird dieser Text folgendermaßen ersetzt:
Text nach dem Parsen mit parseFunc.short
:
Das ist ein Beispiel
für die automatische Ersetzung von Platzhaltern mit der parseFunc.short Funktion: Die baseUrl unserer Website ist http://www.jochenfroehlich.com/
und hier folgt ein Hyperlink zu unserer <a href="http://www.example.com">Partneragentur</a>
.
Tipp
Um versehentliches Ersetzen von z.B. beabsichtigten Abkürzungen zu verhindern, bietet es sich an, seinen Platzhaltern ein eindeutiges Merkmal voranzustellen. Wir verwenden bspw. die Zeichenfolge S_
(für "short") vor jedem Kürzel.