Per Standard verschleiert Joomla! alle E-Mail-Adressen in den Artikeln, um sie vor Spam zu schützen. So werden automatische Suchroboter ferngehalten und man erhält keine unerwünschte Werbung an die Adresse. Mit einem eigenen Modul-Chrome passiert das nicht nur in den Artikeln, sondern auch in Modulen.

Das eigene Modul-Chrome definierst Du in der Datei modules.php im Ordner html des Template-Verzeichnis, also z. B. unter
templates/EIGENESTEMPLATE/html/modules.php.
Wenn diese Datei nicht existiert, einfach erstellen und folgenden Code hineinschreiben.
<?php
defined('_JEXEC') or die('Restricted access');
?>
Damit wird verhindert, dass die Datei direkt aufgerufen wird. Darunter folgt die Funktion für das eigene Modul-Chrome.
function modChrome_mailsec($module, &$params, &$attribs) { ?>
<div class="moduletable<?php echo $params->get('moduleclass_sfx'); ?>">
<?php if ($module->showtitle != 0) : ?>
<h3><?php echo $module->title; ?></h3>
<?php endif;
$module->content = JHTML::_('content.prepare', $module->content);
echo $module->content; ?>
</div>
<?php
}
Die Funktion modChrome_mailsec (der Suffix mailsec ist frei gewählt) rendert das Modul ähnlich wie das Chrome xhtml. Es packt den Inhalt in ein div-Tag der Klasse moduletable. Je nachdem, ob ein Modul-Klassen-Suffix mitgegeben wird, wird der Name der Klasse um diesen erweitert. Das passiert aber nur, wenn die drei Variablen $module, &$params, &$attribs der Funktion mitgegeben werden. Was folgt ist die Abfrage, ob im Modul „Titel anzeigen“ auf „Ja“ gestellt ist. Ist dem so, wird er in ein h3-Tag gepackt und als Überschrift ausgegeben. Jetzt kommt die Zeile die veranlasst, dass E-Mail-Adressen verschleiert werden.
$module->content = JHTML::_('content.prepare', $module->content);
Danach wird der Inhalt mit der verschleierten E-Mail-Adresse ausgegeben.
Um das Modul-Chrome anzuweden, wird es der jdoc-Anweisung als style mitgeben. Das geschieht in der index.php des Templates.
<jdoc:include type="modules" name="left" style="mailsec" />
Stünde in der Zeile z. B. xhtml als style, kann es durch Dein eigenes mailsec ersetzte werden. Abspeichern, fertig. Ab sofort werden E-Mail-Adressen auch in Modulen verschleiert.
Weiterer Artikel zur E-Mail-Verschleierung siehe Galileo Computing :: Joomla! – 7.2 Mambots.
Kommentare (0)