Code-Schnipsel: Mail-Links in Typoscript-TEXT-Elementen schützen
Kategorie: Typo3, Tutorial, TyposcriptVon: Andreas Prucha
Im Editor eingegebene e-mail-Adressen werden von TYPO3 automatisch "verschlüsselt". Nicht so jedoch bei im TypoScript erstellten Text-Elementen. Das lässt sich ändern.
TYPO3 hilft e-mail-Adressen vor Spammern zu schützen, indem es im Backend-Editor eingegebene mailto-links automatisch mit Javascript verschlüsselt.
Dafür ist folgende Einstellung verantwortlich:
Typoscript-Setup:
config.spamProtectEmailAddresses = 1
Manchmal ist es aber auch notwendig Textelemente im Typoscript zu erstellen. Beispielsweise um einen Footer-Text für das Template zu erstellen:
Typoscript-Setup:
lib.footerText = HTML
lib.footerText.value = Example Gmbh - Example Straße 1 - 12345 Testhausen - Mail: <a href="mailto:office@example.com">office@example.com</a>
Einziges Problem dabei: Die e-mail-Adresse bleibt bei der Ausgabe dann ungeschützt, unabhängig von config.spamProtectEmailAddresses.
TYPO3 lässt sich aber überreden den Inhalt zu parsen und die e-mail-adresse entsprechend den Einstellungen zu schützen. Dafür sind folgende kleine Änderungen notwendig:
- Das Element muss als TEXT definiert werden, nicht HTML (keine Ahnung warum - mit HTML hat es nicht funktioniert und ich habe mich dann auch nicht weiter damit beschäftigt warum)
- Es darf nicht der Tag a verwendet werden, sondern der interne TYPO3-Tag LINK
- und es muss lib.parseFunc als parser-Funktion angegeben werden.
Typoscript-Setup:
lib.footerText = TEXT
lib.footerText.value = Example Gmbh - Example Straße 1 - 12345 Testhausen - <LINK office@example.com>office@example.com</LINK>
lib.footerText.parseFunc < lib.parseFunc
In der ersten Zeile wird das Element als TEXT definiert. In der Definition des Strings wird nicht der HTML-Tag a verwendet, sondern der TYPO3-Tag LINK. LINK wird wie folgt verwendet:
<LINK {mail|url|pid}>
Um einen Mailto-Link für office@example.com zu generieren reicht wird also
<LINK office@examle.com>...</LINK>
geschrieben. TYPO3 setzt das dann bei der Ausgabe autoatisch in
<a href="javascript:linkTo_UnCryptMailto('nbjmup+pggjdfAfybnqmf/dpn');" >office(at)example.com</a>
um und schützt damit die Adresse weitgehend vor Adressdieben und Spammern.
Damit das allerdings auch wirklich passiert muss der Text durch die ParseFunc gejagt werden. Dafür wird die Standard-ParseFunc verwendet, die TYPO3 auch für die anderen Content-Elemente benutzt: lib.parseFunc
Tipp: Der LINK-Tag lässt sich auch für die Verlinkung von Seiten benutzen. Dafür muss nur die Page-ID angegeben werden.
<LINK 57>Impressum</LINK>
generiert einen entsprechenden Link zu Seite 57 (beispielsweise das Impressum).
