Variablen im RTE

Ich bin das erste Mal über Marker im RTE gestolpert, das war Ende 2009 in einem Türchen des Advendskalender von jweiland.net. Die Idee ist irgendwie cool. Einfach ein

constants.FIRMA = Das ist mein Firmenname

in das TS-Setup und schon kann man mit dem Marker ###FIRMA### den Firmenname in den RTE einbinden. Und falls sich dieser (warum auch immer) mal ändern sollte, braucht man den Firmenname nur im TS-Setup ändern und automatisch ändert sich der Firmenname auch im Frontend.

Dynamische Werte per TypoScript erlauben

Wir werden bei meiner Lösung des Problems auf alle Daten zugreifen können, die Ihr auch mit der stdWrap-Eigenschaft “.data” erreichen könnt. Wer sich auskennt wird wissen, dass man damit auch die Passwörter der Webseitenbenutzer auslesen kann. Deshalb schlage ich vor die folgenden Einstellungen nicht im Seitentemplate , sondern pro Seite mit Hilfe eines +extTemplates (Erweiterungs-Template) vorzunehmen:

TS-Setup:

lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.innerStdWrap_all.insertData = 1

Mit nur dieser Zeile habt Ihr es nun geschafft auf alle TYPO3-Daten zuzugreifen. Hier mal ein Beispieltext, den Ihr nun in den RTE kopieren könnt:

Hallo {TSFE:fe_user|user|name}. Wie geht's? Dein Benutzername ist {TSFE:fe_user|user|username}. Die aktuell aufgerufene Seite hat die ID {PAGE:uid}

Dynamische Werte per TypoScript setzen

Schaut Euch mal mit Hilfe des Template-Analysers das statische Template von css_styled_content an und sucht dort nach der Zeile “tt_content.text”:

# *****************
# CType: text
# *****************
tt_content.text = COA
tt_content.text {
  10 = < lib.stdheader
  <--- Hier haben wir Platz für eigene Elemente --->
  20 = TEXT
  20 {
    field = bodytext
    required = 1
    parseFunc = < lib.parseFunc_RTE
    editIcons = tt_content:bodytext, rte_enabled
    editIcons.beforeLastTag = 1
    editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.bodytext
    prefixComment = 2 | Text:
  }
}

Im oberen Codefragment habe ich einen Bereich markiert, den wir für eigene Contentelemente verwenden können (11 - 19).

Mit dieser Information können wir nun weitere Zeilen in unser TS-Setup einfügen:

lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.innerStdWrap_all.insertData = 1

tt_content.text.11 = LOAD_REGISTER
tt_content.text.11.image.cObject = IMAGE
tt_content.text.11.image.cObject.file = fileadmin/templates/bilder/tolles-bild.png
tt_content.text.11.image.cObject.file.width = 230
tt_content.text.11.image.cObject.border = 1
tt_content.text.12 = LOAD_REGISTER
tt_content.text.12.meinText = Trallala Blabla

tt_content.text.21 = RESTORE_REGISTER
tt_content.text.22 = RESTORE_REGISTER

Im RTE könnt Ihr nun mit Hilfe diesen Textes auf diese beiden neuen CEs zugreifen:

In diesem Satz {REGISTER:image} befindet sich ein Bild und hier ist die Variable meinText: {REGISTER:meinText}