encMail__XH - a CMSimple_XH Plugin

encMail__XH (encrypt Mail) versucht durch bestes Wissen die platzierten E-Mail-Adressen vor unfreundlichen Spambot Harvestern zu schützen. Es verschleiert E-Mail-Links durch JavaScript, die E-Mail-Adresse selbst mit ASCII-Ersatz und anderen Verschleierungstechniken, die es schwer oder zu teuer für die Mail-Harvester machen, Ihre E-Mail Adresse auszumachen. E-Mail-Adressen innerhalb Formular-Tags bleiben unberührt.

Bitte lesen Sie diese Dokumentation! Unterstützung kann ansonsten nicht gegeben werden. Es ist generell eine gute Idee, die Dokumentation zu lesen, bevor Sie auf irgendwelche Probleme stossen!

Wichtiger Hinweis

encMail_XH konnte nicht in all möglichen Systemumgebungen getestet werden. Es ist soweit eine RC Version. Bitte mit Vorsicht benützen!

Anforderungen

encMail_XH ist ein Plugin für CMSimple_XH ab Version 1.5.4

Installation

Die Installation erfolgt wie bei vielen anderen CMSimple_XH-Plugins auch. Im CMSimple_XH Wiki finden sie ausführliche Hinweise.

  1. Sichern Sie die Daten auf Ihrem Server.
  2. Entpacken Sie die ZIP-Datei auf Ihrem Computer.
  3. Laden Sie das gesamte Verzeichnis encmail/ auf Ihren Server in das plugins/ Verzeichnis von CMSimple_XH hoch.
  4. Vergeben Sie Schreibrechte für die Unterverzeichnisse css/, config/ und languages/.

Einstellung & Benutzung

Es gibt zwei Möglichkeiten die Plugin Funktionalität aufzurufen. Die erste Möglichkeit ist einfach und simpel, die zweite ist anspruchsvoller, bietet aber zusätzliche Einstellungsmöglichkeiten. Details siehe folgende Absätze

  1. einfach & simpel
  2. Folgender Aufruf bitte ins Template ganz am Ende setzen:
    <?php encMailTplBottom();?>

    Die Konfiguration wir wie in allen CMSimple_XH plugins im Admin Modus gemacht. Wähle "Encmail" unter "Plugins".

    Die Standardeinstellungen von encMail_XH können in "Plugins Konfiguration" angepasst werden . Optionshinweise werden beim Darüberfahren der Maus angezeigt. Die Einstellungen "global", "page" (oder "none") sind möglich. Bei der Einstellung "global" werden alle E-Mail Adressen jeder Seite verschleiert. Bei der Einstellung "page" wird beim Seiten Editieren ein zustätzlicher Tab "encmail" angezeigt. Dort kann die Verschleierung seitenweise ein- resp. ausgeschaltet werden.

    Mit dieser jeweiligen Einstellung wird die komplette Seite - also auch die Navigation, das Template und der Output der jeweiligen plugins. Vorsicht bei den newsboxen() und E-Mail Adressen in Template! Diese werden entsprechend der Einstellung der aktuellen Seite verschleiert. Eine generell platzierte newsbox() mit einer beinhaltenden E-Mail Adresse oder eine E-Mail Adresse im Template sollte daher mit der Plugin-Konfigurations­einstellung "global" verschleiert werden.

    Die Übersetzungen können bei Bedarf in "Plugins Sprache " angepasst oder für neu zu übersetzende Sprachen angepasst werden.

    Diese Art der Anwendung passt zu eher kleineren Seiten mit wenigen Plugins.

    Vorteil: Die Einrichtung und Einstellung ist einfach vorzunehmen. Mit der Einstellung "global" bracht man sich keine weiteren Gedanken zu exponierten E-Mail Adressen zu machen.
    Nachteil: Der Such- und Ersetz-Algorithmus stellt eine zusätzliche Belastung für den Webserver dar, weil jeweils die komplette Seite durchsucht werden muss. Dies kann sich bei komplizierten Seiten oder bei hohem Besucherstrom negativ auswirken.

  3. anspruchsvolle Variante
  4. Setze die Konfiguationseinstellung auf "manual" und platziere folgende Befehle:

    Um jeweils die aktuelle Seite zu verschleiern :
    Setze im content folgendes cmsimple scripting:
    #CMSimple encMail($output);# 
    Dies verschleiert die E-Mail Adressen im Seiteninhalt resp im feld $output der aktuellen Seite. Template, Menü and plugins sind davon nicht betroffen. So könnte zum Beispiel das Impressum (mit dazugehörigen E-Mail Adresse) ein einer newsbox() abgelegt werden und nur diese verschleiert. Klein und schnelle Lösung.

    Alternative Option

    Um generell E-Mail Adressen in allen Seiten zu verschleiern:
    Setze im template ganz an den Anfang:
    <?php if (!$adm || !$edit) encMail($c[$s]); ?>

    Dies verschleiert die E-Mail Adressen im Inhalt aller Seiten. Template, Menü and Plugins sind davon nicht betroffen.

    Um eine E-Mail Adresse im Template selber zu verschleiern, setze folgendes an den entprechenden Platz im Template:
    <?php echo encMail_obfuscateSingleAddress([emailaddress],[addLink=false]); ?>
    Setze eine E-Mail Adresse als Parameter. Die addLink Option umschliesst die E-Mail Adresse mit den entsprechenden "mailto:" Link.

Somit kann exakt bestimmt werden, bei welchen Bereichen die Verschleierung/Ersetzung stattfinden soll. Unnötige Bereiche können unberücksichtigt bleiben und reduzieren die Server-Last.

Beschränkungen

Mit im Browser deaktiviertem JavaScript deactivated sind die E-Mail Adressen für Menschen nach wie vor lesen und aus dem Browser kopierbar, aber die "mailto:" Links funktionieren nicht.

Lizenz

encMail__XH ist lizenziert unter GPLv3.

© 2014 Emanuel Marinello

Danksagungen

Der Dank geht an cmb Christoph M. Becker für die Unterstützung bei der Implementierung dieses Plugins.

Dank geht auch an die community des CMSimple forums für Tipps, Anregungen und Tests.

Zu guter Letzt vielen Dank an Peter Harteg, den "Vater" von CMSimple, und allen Entwicklern von CMSimple_XH, ohne die dieses fantastische CMS nicht existieren würde.