<![CDATA[ Comment créer un formulaire d'envoi à un ami avec eForm - My Forums]]> https://forums.modx.com/thread/?thread=54386 <![CDATA[Re: Comment créer un formulaire d'envoi à un ami avec eForm]]> https://forums.modx.com/thread/54386/comment-cr-er-un-formulaire-d-envoi-un-ami-avec-eform#dis-post-319302

<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>


:)
]]>
davidm Jun 05, 2008, 02:18 AM https://forums.modx.com/thread/54386/comment-cr-er-un-formulaire-d-envoi-un-ami-avec-eform#dis-post-319302
<![CDATA[Re: Comment créer un formulaire d'envoi à un ami avec eForm]]> https://forums.modx.com/thread/54386/comment-cr-er-un-formulaire-d-envoi-un-ami-avec-eform#dis-post-319301 Pourrais tu partager le code Jquery, et pourquoi pas mootools ?

Merci d’avance.]]>
alchime Jun 05, 2008, 01:33 AM https://forums.modx.com/thread/54386/comment-cr-er-un-formulaire-d-envoi-un-ami-avec-eform#dis-post-319301
<![CDATA[Re: Comment créer un formulaire d'envoi à un ami avec eForm]]> https://forums.modx.com/thread/54386/comment-cr-er-un-formulaire-d-envoi-un-ami-avec-eform#dis-post-319300 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]]>
davidm Apr 11, 2008, 03:56 AM https://forums.modx.com/thread/54386/comment-cr-er-un-formulaire-d-envoi-un-ami-avec-eform#dis-post-319300
<![CDATA[Re: Comment créer un formulaire d'envoi à un ami avec eForm]]> https://forums.modx.com/thread/54386/comment-cr-er-un-formulaire-d-envoi-un-ami-avec-eform#dis-post-319299
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 ?]]>
laurentc Apr 11, 2008, 03:27 AM https://forums.modx.com/thread/54386/comment-cr-er-un-formulaire-d-envoi-un-ami-avec-eform#dis-post-319299
<![CDATA[Re: Comment cr&#233;er un formulaire d'envoi &#224; un ami avec eForm]]> https://forums.modx.com/thread/54386/comment-cr-er-un-formulaire-d-envoi-un-ami-avec-eform#dis-post-319298
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.
]]>
davidm Apr 10, 2008, 10:37 AM https://forums.modx.com/thread/54386/comment-cr-er-un-formulaire-d-envoi-un-ami-avec-eform#dis-post-319298
<![CDATA[Comment créer un formulaire d'envoi à un ami avec eForm]]> https://forums.modx.com/thread/54386/comment-cr-er-un-formulaire-d-envoi-un-ami-avec-eform#dis-post-319297 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 !!]]>
laurentc Apr 10, 2008, 09:13 AM https://forums.modx.com/thread/54386/comment-cr-er-un-formulaire-d-envoi-un-ami-avec-eform#dis-post-319297