Wikini

EncodageDesEmails

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes ec2-54-163-19-57.compute-1.amazonaws.com

Introduction


Cette modification permet de coder automatiquement les adresses email contenues dans le Wiki en hexadécimal. Pour éviter qu'elles soient récupérées par des collecteurs d'adresses qui servent au spam.
Le script utilisé pour l'encodage est celui de Neokraft : http://www.neokraft.net/sottises/mailencoder/
Attention, toutefois, l'adresse email reste en clair dans le fichier source, si la page est modifiable par tous, probable que les collecteurs d'adresses suivent le lien de modification et pourront récupérer l'adresse quand même.
Vos suggestions sont les bienvenues


Modifications


La modification n'est pas complexe mais nécessite de comprendre le code source de WikiNi. Si ça ne pose pas de problème particulier, il sera peut-être judicieux de l'ajouter au code source directement. En proposant peut-être une balise pour préciser qu'on veut encoder l'email (pour ceux qui n'aimerait pas cette fonctionnalité)
Tout ce qui doit être modifié se trouve dans le fichier /formatters/wakka.php
Après le premier test :


if (!function_exists("wakka2callback"))
{




On ajoute la fonction d'encodage. C'est un peu en vrac, mais vu sa taille très réduite et son utilité juste dans ce fichier, ça convient.


if (!function_exists("wakka2callback"))
{





Plus bas, entre tous les tests





on ajoute le code suivant qui permet d'encoder les adresses email et de créer le lien.







Enfin, tout en bas, à la ligne :

$text = preg_replace_callback(
    "/(\%\%.*?\%\%|".
    "\"\".*?\"\"|".
    "\[\[.*?\]\]|".
    "\b[[:lower:]]+:\/\/\S+|".
    "\*\*|\#\#|@@|££|__|<|>|\/\/|".
    "======|=====|====|===|==|".
    "-{4,}|---|".
    "\n(\t+|([ ]{1})+)(-|[[:alnum:]]+\))?|".
    "^(\t+|([ ]{1})+)(-|[[:alnum:]]+\))?|".
    "\{\{.*?\}\}|".
        "\b".WN_UPPER.WN_CHAR."+[:](".WN_CHAR2."*)\b|".
    "\b(".WN_UPPER.WN_LOWER."+".WN_UPPER_NUM.WN_CHAR."*)\b|".
    "\n)/ms", "wakka2callback", $text);


on insère entre deux tests la ligne :




On obtient :

$text = preg_replace_callback(
    "/(\%\%.*?\%\%|".
    "\"\".*?\"\"|".
    "\[\[.*?\]\]|".
    "\b[[:lower:]]+:\/\/\S+|".
    "\*\*|\#\#|@@|££|__|<|>|\/\/|".
    "======|=====|====|===|==|".
    "([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z]+)+)|".
    "-{4,}|---|".
    "\n(\t+|([ ]{1})+)(-|[[:alnum:]]+\))?|".
    "^(\t+|([ ]{1})+)(-|[[:alnum:]]+\))?|".
    "\{\{.*?\}\}|".
        "\b".WN_UPPER.WN_CHAR."+[:](".WN_CHAR2."*)\b|".
    "\b(".WN_UPPER.WN_LOWER."+".WN_UPPER_NUM.WN_CHAR."*)\b|".
    "\n)/ms", "wakka2callback", $text);

Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]