Themen
 
Individuelles Webdesign
 
11.12.2009 22:50

Code-Schnipsel: Mail-Links in Typoscript-TEXT-Elementen schützen

Kategorie: Typo3, Tutorial, Typoscript
Von: 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:

  1. 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)
  2. Es darf nicht der Tag a verwendet werden, sondern der interne TYPO3-Tag LINK
  3. 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).



Kommentare


Kommentar schreiben...


Keine Einträge

Keine Einträge im Gästebuch gefunden.

Kommentar schreiben