We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 2299
    • 62 Posts
    Bonjour,

    Je veux afficher des emails de manière transparente pour l’utilisateur et invisible pour un moteur de recherche/aspirateur de sites.

    Le code PHP (il n’est pas de moi) est le suivant :
    <?php
    function cryptage_email ($str) {
        $encoded = bin2hex($str);
        $encoded = chunk_split($encoded, 2, '%');
        $encoded = '%'.substr($encoded, 0, strlen($encoded) - 1);
        return $encoded;
    }
    //appel de la fonction
    echo cryptage_email("[email protected]");
    ?>


    Exemple : http://www.vivreaveclesoleil.info/ecole/test_email.php (site créé à la main, pas sous MODx)

    Dans le code source, vous verrez que l’adresse email est remplacée par des caractères illisibles.



    Maintenant, j’aimerais faire exactement la même chose sous MODx. Et je ne sais pas comment faire. J’imagine que je dois créer un snippet, mettre le code PHP dedans, et l’appeler dans le document qui m’intéresse. Mais je n’ai pas trouvé comment autoriser un paramètre (ici, l’adresse email), pour éviter d’avoir à créer un snippet par adresse email !

    Si quelqu’un a un début de réponse, ou un lien vers la documentation adéquate, je l’en remercie d’avance.
      • 6726
      • 7,075 Posts
      Je n’ai pas de réponse à la question sous l’angle "technique de codage" / "Comment faire pour" - donc ça ne répond pas à la question directement - mais par contre il existe des resources pour faire exactement ce que tu veux : http://modxcms.com/resource-listing.html&tags=avoid+spamming

      Il existe des snippets et des plugins, mais le mieux c’est d’avoir ce type de fonctionnalité sous forme de plugin car alors il n’est effectivement plus nécessaire d’encoder chaque adresse, le crytpage est appliqué en amont avant que la page ne soit rendue par le parser de MODx.

      La meilleure ressource à mon sens c’est le plugin ObfuscateEmail qui utilise en plus un cryptage composite bien plus efficace (l’encodage unicode est maintenant décrypté par les spambots).
        .: COO - Commerce Guys - Community Driven Innovation :.


        MODx est l&#39;outil id
        • 23050
        • 1,842 Posts
        J’utilise ObfuscateEmail sur tous mes sites et c’est vraiment pratique. Tu installes le plugin puis tu ne te soucies plus de rien ! wink
          • 2299
          • 62 Posts
          Pourquoi réinventer la roue ! Je viens d’installer ObfuscateEmail, ça marche parfaitement ! Et effectivement, un plugin est le plus pertinent, plus besoin d’y penser à chaque ajout d’adresse.

          Merci David pour la réponse à mon problème. Je vais renommer le topic et le mettre comme résolu wink

          Pour la réponse plus technique à ma question, j’ai un autre problème de ce type, donc, je vais créer un topic distinct.
            • 2299
            • 62 Posts
            Quote from: Perrine at Feb 06, 2008, 09:02 AM

            J’utilise ObfuscateEmail sur tous mes sites et c’est vraiment pratique. Tu installes le plugin puis tu ne te soucies plus de rien ! wink
            Question : est-ce que tu affiches l’adresse email sur la page (mon-adresse@modx.com), ou uniquement sur le lien (email) ?

              • 23050
              • 1,842 Posts
              Les 2 mon capitaine ! smiley
                • 2299
                • 62 Posts
                Quote from: Perrine at Feb 06, 2008, 09:16 AM

                Les 2 mon capitaine ! smiley
                OK, merci pour ta réponse, matelot !
                  • 11975
                  • 2,542 Posts
                  J’arrive après la bataille mais concernant ta question du passage de variable:

                  Il te suffit de déclarer la variable dans le snippet:

                  $email = ($email) ? $email: false;

                  et d’ajouter à l’appel &email=`[email protected]`

                  :-)
                    Made with MODx : [url=http://www.copadel.com]copadel, fruits et l
                    • 2299
                    • 62 Posts
                    Tu n’arrives pas du tout après la bataille : David et Perrine m’ont trouvé une alternative parfaite à ce que j’imaginais, mais la solution technique de mon problème m’intéresse tout autant, parce qu’elle pourra me servir pour d’autres situations du même type !

                    Si je comprends bien...

                    1. Dans le snippet, que j’appelle CryptageEmail, je mets :
                    $email = ($email) ? $email: false;
                    $encoded = bin2hex($email);
                    $encoded = chunk_split($encoded, 2, '%');
                    $encoded = '%'.substr($encoded, 0, strlen($encoded) - 1);
                    return $encoded;


                    2. Et l’appel (que je peux mettre directement dans la page) ressemble à :
                    [!CryptageEmail? &email=`[email protected]`!] 


                    C’est bien ça ?
                      • 11975
                      • 2,542 Posts
                      Yep ca devrait marcher tel quel.
                      Je rajouterai qd mme une ligne après
                      $email = ($email) ? $email: false;
                      if(!$email) ...
                      pour retourner un message d’erreur si aucune email n’est passé en param.

                      :-)
                        Made with MODx : [url=http://www.copadel.com]copadel, fruits et l