We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 16732
    • 592 Posts
    Pour remplacer le message vide de ce post grin
    Si quelqu’un peut le traduire je suis OK

    ATTENTION pour utiliser cette fonctionnalité vous devez Modifier (hacker) le snippet eForm

    1) Modification du snippet eForm

    Ajouter le code suivant de Pixelchutes dans le snippet eForm ligne 93 :

    if( $params[to]{0} == '(' ) $params[to] = str_replace( array('((','))'), array('[+','+]'), $params[to] ); // PHx workaround
    if( $params[from]{0} == '(' ) $params[from] = str_replace( array('((','))'), array('[+','+]'), $params[from] ); // PHx workaround
    if( $params[fromname]{0} == '(' ) $params[fromname] = str_replace( array('((','))'), array('[+','+]'), $params[fromname] ); // PHx workaround
    if( $params[replyto]{0} == '(' ) $params[replyto] = str_replace( array('((','))'), array('[+','+]'), $params[replyto] ); // PHx workaround
    $params[subject] = str_replace( array('((','))'), array('[+','+]'), $params[subject] ); // PHx workaround



    Ce code permet d’utiliser n’importe lequel des champs du formulaire eForm comme valeur des paramètres &to, &from, &fromname, &replyto et &subject en utilisant la syntaxe ((nomDeMonChamp)) ex : &to=`((friendemail))`



    2) Formulaire d’envoi du mail
    Chunk : sendToAFriendForm
    <p><span style="color:#900;">[+validationmessage+]</span></p>
    <form id="formSTF" name="formSTF" method="post" action="[~[*id*]~]">
      <table width="450" border="0">
        <tr>
          <td width="220"> Your friend name :<br>
            <input id="friendname" name="friendname" type="text" eform="Nom ami:string:1:Le nom est obligatoire" />      </td>
          <td width="220"> Your friend e-mail <br>
            <input id="friendemail" name="friendemail" type="text" eform="E-mail ami:email:1:" />      </td>
        </tr>
        <tr>
          <td colspan="2"> </td>
        </tr>
        <tr>
          <td> Your name :<br>
            <input id="yourname" name="yourname" type="text" eform="Votre nom:string:1:Le nom est obligatoire" />      </td>
          <td>
    	Your e-mail :<br>
                        <input id="youremail" name="youremail" type="text" eform="Votre email:email:1:" />	  </td>
        </tr>
        <tr>
          <td> </td>
          <td> </td>
        </tr>
        <tr>
          <td colspan="2">
    	  Message :<br>
    	  <textarea id="message" name="message" rows="7" eform="Message:string:1:Le message est obligatoire"></textarea>	  </td>
        </tr>
        <tr>
          <td>
    	  Merci d'entrer le code anti spam suivant : <br>
    		<img src="[+verimageurl+]" alt="verification code" border="1"/>	  </td>
          <td>
    	  Code : <input type="text" name="vericode" size="20" />	  </td>
        </tr>
        <tr>
          <td colspan="2">
            <input type="submit" name="Submit" value="Envoyer">
          </td>
        </tr>
      </table>
    </form>




    3) Template du mail envoyé à l’ami
    Chunk : formSTFemail

    <table width="515" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td width="15"> </td>
        <td height="50" align="center" valign="top"><br>
            <table width="495" height="28" border="0" cellpadding="0" cellspacing="0">
              <tr>
                <td align="left"><span class="Style4">[+emailTitle+]</span></td>
              </tr>
            </table>
            <br>
            <table width="500" border="0" cellpadding="20" cellspacing="0">
              <tr>
                <td align="left" valign="top" bgcolor="#F9FAF4" class="Style1">
    			              Hello <strong>[+friendname+]</strong>,<br>
                  <strong>[+yourname+]</strong> send you this message :<br>
                <br>
                [+message+]
    <br/>
    See this page : [+link+]
    </td>
              </tr>
            </table>  </td>
      </tr>
    </table>



    4) Snippet permettant de récupérer l’url de la page visitée (page précédante)
    Snippet : eFormSTF

    <?php
    function eFormSTFlink( &$fields ){
     global $modx;
    
       $fields['link'] = '<a href="'.$_SERVER['HTTP_REFERER'].'" >'.$_SERVER['HTTP_REFERER'].'</a>' ; //  'http://www.toto.com';
    		return true;
     }
    ?>





    5) Page contenant le formulaire d’envoi du mail

    [[eFormSTF]]
    [!eForm? &formid=`formSTF` &tpl=`sendToAFriendForm` &report=`formSTFemail` &thankyou=`formSTFtyou` &subject=`Envoyer a un ami` &vericode=`1` &debug=`2`  &to=`((friendemail))` &from=`((youremail))` &fromname=`((yourname))`  &eformOnBeforeMailSent=`eFormSTFlink`!]


    Et voilou !!
      • 6726
      • 7,075 Posts
      Arf !

      Bon c’est dommage on s’est croisé !!!
      J’ai bouclé ça ce matin : http://modxcms.com/forums/index.php/topic,24628.0.html

      Avec quelques différences par rapport à cette méthode.

      Notamment, le nouveau code de pixelchute (hacker n’est nécessaire uniquement si vous avez PHx activé) est plus efficace (il couvre les champs custom) et plus court aussi (posté originellement ici):

      foreach( $params as $key=>$val ) $params[ $key ] = str_replace( array(’((’,’))’), array(’[+’,’+]’), $val );  // pixelchutes PHx workaround

      Et comme je suis pas codeur, j’ai triché un peu pour récupérer l’URL en ajoutant des champs masqués :

      [tt] <input name="urlsite" type="hidden" value="[(site_url)]" eform="::0::" />
      <input name="link" type="hidden" value="[~[*id*]~]" eform="::0::" />
      <input name="title" type="hidden" value="[*pagetitle*]" eform="::0::" />[/tt]

      Que je rajoute ensuite dans le chunk de report de la manière suivante :

      [tt]<a href="[+urlsite+][+link+]">[+title+]</a>[/tt]

      Vous noterez que j’ai injecté le pagetitle pour pouvoir afficher un lien plus sympa smiley

      Vous pouvez le voir en action sur un site que je suis en train de mettre en place, pour les articles du blog :
      http://www.pargade-notaires.fr/blog/pratique-notariale/delai-de-retractation-et-immeuble-a-usage-mixte.html
      (le formulaire est masqué via jQuery, cliquer sur le lien dans la colonne de droite en bas)

      Edit : Sinon, un conseil, utilisez [tt]&protectSubmit=`0`[/tt] car si vous recommandez plus d’une page avec le même expéditeur et le même destinataire c’est considéré par eForm comme un doublon et ça donne un message d’erreur.
        .: COO - Commerce Guys - Community Driven Innovation :.


        MODx est l&#39;outil id
        • 16732
        • 592 Posts
        Désolé, j’ai mis un peu de temps à voir ton message et à retrouver la procédure.

        C’est vrai que le hack n’est nécessaire qu’en présence de PHx...mais y a-t-il encore des personnes qui n’utilisent pas PHx ??! laugh

        Le nouveau code est effectivement plus simple !

        Une dernière chose, mais la c’est perso, David, l’effet jQuery de ton formulaire, ça ne serait pas plus esthétique s’il partait de la droite ?
          • 6726
          • 7,075 Posts
          Quote from: laurentc at Apr 11, 2008, 08:27 AM
          Une dernière chose, mais la c’est perso, David, l’effet jQuery de ton formulaire, ça ne serait pas plus esthétique s’il partait de la droite ?

          Bien vu, effectivement je vais modifier ça smiley
            .: COO - Commerce Guys - Community Driven Innovation :.


            MODx est l&#39;outil id
            • 867
            • 241 Posts

            Pourrais tu partager le code Jquery, et pourquoi pas mootools ?

            Merci d’avance.
              • 6726
              • 7,075 Posts
              Tu peux le voir dans le code source de la page citée plus haut mais voilà


              <script type="text/javascript">
              
              var $j = jQuery.noConflict();
              
                  $j(document).ready(function() {
                           $j('#stf').hide(); 
              
                           $j('a#show_stf').click(function() {
                                       $j('#stf').toggle(400);
                                      return false;  }); 
                   }); 
              </script>


              Le formulaire

              <div id="stf">
              <!-- La ligne suivante est obligatoire -->
              <p class="error"> [+validationmessage+] </p>
               
              <!-- Début du formulaire -->
              <form action="[~[*id*]~]" id="SendToFriend" method="post" name="SendToFriend">
                  <fieldset>
              
                        <input type="hidden" name="formid" value="SendToFriend" />
                    
                      <p><label for="sfName1"><strong>Votre nom :</strong> <input class="text" id="sfName1" name="name1" type="text" /></label></p>
               
                      <p><label for="sfEmail1"><strong>Votre Email : </strong><input class="text" id="sfEmail1" name="emailfrom" type="text" eform="Votre adresse email:email:1"/></label></p>
               
                      <p><label for="sfName2"><strong>Nom de votre ami :</strong> <input class="text" id="sfName2" name="name2" type="text" /></label></p>
              
                      <p><label for="sfEmail2"><strong>Email de votre ami : </strong><input class="text" id="sfEmail2" name="email" type="text" eform="Adresse email de votre ami:email:1" /></label></p>
               
               <p style="padding-top: 10px;">Merci de saisir le code de vérification suivant :</p>
               <img src="[+verimageurl+]" alt="code de vérification" style="border: 1px solid #ccc; margin: 10px 0px;"/>
               <p><label accesskey="c" for="vericode">Code</label><input type="text" name="vericode" size="20" /></p>
              
                      <!-- Bouton de validation et d'envoi du message --> 
                    <input name="urlsite" type="hidden" value="[(site_url)]" eform="::0::" />
                    <input name="link" type="hidden" value="[~[*id*]~]" eform="::0::" />
                    <input name="title" type="hidden" value="[*pagetitle*]" eform="::0::" />
                    <input class="button" id="sfRecommend" name="recommend" type="submit" value="Envoyer" />
                  </fieldset>
              </form>
              </div>


              :)
                .: COO - Commerce Guys - Community Driven Innovation :.


                MODx est l&#39;outil id