Texte in TYPO3 suchen und ersetzen

Durch die Verwendung von Platzhaltern lassen sich beliebige Zeichenfolgen auf einer Website automatisiert 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:

Verwendung von parseFunc.short TypoScript, Bereich SETUP
# 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.