Sichere E-mail Adressen in Joomla!-Webseiten
Joomla! bietet mit dem Content Plugin "Email-Cloaking" eine sehr gute Möglichkeit, E-mail Adressen auf Ihrer Webseite vor sogenannten Harvestern - das sind Bot's die Webseiten gezielt nach ungeschützen E-mail Adressen absuchen um diese dann mit Spammail zu überhäufen - zu schützen. Damit Ihre E-mail Adressen auch wirklich sicher verschlüsselt werden sind jedoch einige kleine Fallstricke zu vermeiden.
Joomla! 1.5 - kein E-mail Cloaking in Modulen
Auch wenn Sie das Content Plugin E-mail Cloaking aktiviert haben, werden E-Mail Adressen in Modulen hierdurch nicht geschützt, denn nur das was unter dem Menüpunkt "Content" oder "Inhalt" im Joomla! Backend verwaltet wird - und das sind halt nur die Beiträge - wird auch von de Content Plugins nachbearbeitet. Das ist besonders problematisch, das ein Modul vom Typ "Eigenes HTML" eigentlich eine tolle Möglichkeit ist, um eine Kontakt E-mail Adresse gut sichtbar auf der Webseite zu platzieren.
Zum Glück ist es recht einfach möglich, diese Problem zu beheben, indem man die Module Chrome Technologie von Joomla! verwendet. Hierbei schreibt man ein kleines bisschen PHP-Code, das die Ausgabe des Modules im Template beeinflusst und Content Plugins für diesen Modul-Typ einbindet.
- Legen Sie im eigenen Template ein Verzeichnis mit dem Namen html an (wenn diese nicht schon vorhanden ist).
- Legen Sie in diesem Verzeichnis eine Text-Datei mit dem Namen modules.php an (wenn diese nicht schon vorhanden ist) und öffnen Sie die neu angelegte oder die bereits vorhandene Datei.
Fügen Sie folgenden Code am Ende der Datei ein.
<?php defined('_JEXEC') or die('Restricted access'); function modChrome_mailsec($module, &$params, &$attribs) { if ($module->content) { echo "<div class=\"moduletable " . htmlspecialchars($params->get('moduleclass_sfx')) . "\">"; if ($module->showtitle) { echo "<h3 class=\"page-header\">" . $module->title . "</h3>"; } //Content Plugins anwenden $module->content = JHTML::_('content.prepare', $module->content); echo $module->content; echo "</div>"; } } ?>
War die Datei modules.php bereits vorhanden, so sollte die Zeile
defined('_JEXEC') or die('Restricted access');
bereits oben die der Datei drin stehen sein und müssen sie nicht noch einmal einfügen.Als nächstes müssen Sie das neu angelegt Module Chrome mit einer Module Position in Ihrem Template verbinden. Öffnen Sie nun die Datei index.php in Ihrem Template und fügen Sie dort, wo das Module mit E-mail Cloaking stehen soll, folgende Zeile ein.
<jdoc:include type="modules" name="modulePosition" style="mailsec" />
ein. Statt "modulePosition" müssen Sie den Namen der Modulposition eintragen, die Sie im Backend in der Modul-Verwaltung als "Position" auswählen. Sie können hier auch eine Bezeichnung anlegen, die es bislang im Template noch nicht gibt. Sie müssen dann nur den entsprechenden Namen auch im Backend als "Position" richtig eintippen.- Jetzt müssen Sie nur noch im Backend in der Module-Verwaltung dem Modul, das die E-mail Adresse enthält die richtige Position zuweisen (siehe oben).
Um zu überprüfen, ob das E-mail Cloaking auch wirklich funktinioniert können Sie sich den Quelltext Ihrer Webseite ansehen (rechter Mausklick auf die Webseite -> Seitenquelltext anzeigen) und darin nach dem E-mail Adress String suchen. Er sollte nicht mehr gefunden werden. Stattdessen gibt es ein Script-Element, das die verschlüsselte E-mail enthält.
Joomla! 2.5 und 3 - E-mail Cloaking ist für Module standardmäßig abgeschaltet
Seit Joomla! 2.5 kann die Verwendung von Content Plugins für Module vom Typ "Eigenes HTML" mit Hilfe des Parameter "Inhalte vorbereiten" an- und abgeschaltet werden. Standardmäßig ist dieser Parameter auf nein eingestellt. Sie finden den Parameter im Modul unter Optionen -> Basis Optionen. Bitte denken Sie daran, diesen Parameter auf "ja" zu setzen, wenn Sie ein Modul mit einer E-mail Adresse anlegen!
E-Mail Cloaking für einen einzelnen Beitrag ausschalten
Manchmal möchte man in einem einzelnen Beitrag E-Mail Adressen aus unterschiedlichsten Gründen nicht verschleiern. Dies ist ganz einfach möglich. Geben Sie irgendwo im Text des Beitrags folgenden Code ein: {emailcloaking=off}
. Damit schalten Sie das E-Mail Cloaking für diesen Beitrag ab.
E-Mail Cloaking für eine einzelnen E-Mail-Adresse unterbinden
Mit einem kleinen Trick können Sie für eine spezifische E-Mail Adresse verhindern, das diese verschleiert wird. Sie müssen hierfür das @ Zeichen in der E-Mail Adresse mit der Zeichenfolge @
ersetzen.
Content Plugins für Module
Neben dem E-mail Cloaking werden auch alle anderen Content Plugins angewandt bevor das Modul ausgegeben und angezeigt wird. Sie können auf diesem Weg also z.B. auch Bildergalerien, Videos etc., die mit Hilfe von Content Plugins erzeugt werden, anzeigen.