muaddib78 Posted March 22, 2010 Share Posted March 22, 2010 Bonjour la communauté !J'ai voulu personnalisé mon formulaire de contact (contact-form.tpl, image jointe), je suis presque arrivé au résultat final mais je bloque sur un point.> Pb: Je reçois autant d'emails qu'il y a de nouveaux champs !!Tout se passe probablement dans le fichier contact-form.php.Le code de mon contact-form.tpl est le suivant: <form action="{$request_uri|escape:'htmlall':'UTF-8'}" method="post" class="std"> {l s='Send a message'} {l s='Subject'} {l s='-- Choose --'} {foreach from=$contacts item=contact} {$contact.name|escape:'htmlall':'UTF-8'} {/foreach} {l s='SDE Le Sport d\'Elide'} {l s='16 rue Ampere'} {l s='Immeuble SOMAG'} {l s='95300 PONTOISE'} {l s='Tel: 01 30 38 87 77'} {l s='Fax: 01 30 30 43 93'} {l s='For questions about an order or for information about our products'}. {foreach from=$contacts item=contact} {$contact.description|escape:'htmlall':'UTF-8'} {/foreach} {l s='Nom et Prenom'} <input type="text" id="nomPrenom" name="nomPrenom" value="{$nomPrenom}" /> {l s='CP et Ville'} <input type="text" id="cpville" name="cpville" value="{$cpville}" /> {l s='Telephone'} <input type="text" id="tel" name="tel" value="{$tel}" /> {l s='E-mail address'} <input type="text" id="email" name="from" value="{$email}" /> {l s='Message'} <textarea id="message" name="message" rows="7" cols="70">{if isset($smarty.post.message)}{$smarty.post.message|escape:'htmlall':'UTF-8'|stripslashes}{/if}</textarea> <input type="submit" name="submitMessage" id="submitMessage" value="{l s='Send'}" class="button_large" /> </form> Et mon fichier contact-form.php à partir de la ligne 22 sachant que le reste n'est pas modifié:(Je pense que mon souci vient des 3 premières conditions ajoutées) else if (Mail::Send(intval($cookie->id_lang), 'contact', 'Message from contact form', array('{email}' => $_POST['from'], '{nomPrenom}' => $_POST['nomPrenom'], '{message}' => stripslashes($message)), $contact->email)) if (Mail::Send(intval($cookie->id_lang), 'contact', 'Message from contact form', array('{email}' => $_POST['from'], '{cpville}' => $_POST['cpville'], '{message}' => stripslashes($message)), $contact->email)) if (Mail::Send(intval($cookie->id_lang), 'contact', 'Message from contact form', array('{email}' => $_POST['from'], '{tel}' => $_POST['tel'], '{message}' => stripslashes($message)), $contact->email)) { if (intval($cookie->id_customer)) $customer = new Customer(intval($cookie->id_customer)); if (Mail::Send(intval($cookie->id_lang), 'contact', 'Message from contact form', array('{email}' => $_POST['from'], '{message}' => stripslashes($message)), $contact->email, $contact->name, $from, (intval($cookie->id_customer) ? $customer->firstname.' '.$customer->lastname : $from))) $smarty->assign('confirmation', 1); else $errors[] = Tools::displayError('an error occurred while sending message'); } } $email = Tools::safeOutput(Tools::getValue('from', ((isset($cookie) AND isset($cookie->email) AND Validate::isEmail($cookie->email)) ? $cookie->email : ''))); $smarty->assign(array( 'errors' => $errors, 'email' => $email )); $smarty->display(_PS_THEME_DIR_.'contact-form.tpl'); include(dirname(__FILE__).'/footer.php'); ?> Dans les emails je reçois le contenu ci-dessous avec les champs "Adresse électronique" et "message" qui sont remplis systématiquement et les 3 autres champs se remplissent à tour de rôle dans des emails séparément:...Nom et Prénom : {nomPrenom}CP et ville : {cpville} Telephone : 060000000 Adresse électronique : [email protected] Message: test 5...Si VOUS lecteur de ce passionnant post, souhaitez relever un challenge qui pour moi est un véritable chemin de croix, ce serait avec grand plaisir, je sèche !!> PS v 1.2.5Merci par avance. Link to comment Share on other sites More sharing options...
muaddib78 Posted March 24, 2010 Author Share Posted March 24, 2010 J'ai trouvé tout seul le problème et cela fonctionne bien, je reçois un email avec tous mes champs bien remplis, ouff !Tout était comme je le pressentais dans le fichier contact-form.php.J'avais ajouté ces 3 conditions "send" pour chaque champ ajouté, donc je recevais 4 emails séparés, chacun avec une information différente.A supprimer: if (Mail::Send(intval($cookie->id_lang), 'contact', 'Message from contact form', array('{email}' => $_POST['from'], '{nomPrenom}' => $_POST['nomPrenom'], '{message}' => stripslashes($message)), $contact->email)) if (Mail::Send(intval($cookie->id_lang), 'contact', 'Message from contact form', array('{email}' => $_POST['from'], '{cpville}' => $_POST['cpville'], '{message}' => stripslashes($message)), $contact->email)) if (Mail::Send(intval($cookie->id_lang), 'contact', 'Message from contact form', array('{email}' => $_POST['from'], '{tel}' => $_POST['tel'], '{message}' => stripslashes($message)), $contact->email)) La modification: if (Mail::Send(intval($cookie->id_lang), 'contact', 'Message from contact form', array('{email}' => $_POST['from'], '{nomPrenom}' => $_POST['nomPrenom'],'{cpville}' => $_POST['cpville'],'{tel}' => $_POST['tel'],'{message}' => stripslashes($message)), $contact->email, $contact->name, $from, (intval($cookie->id_customer) ? $customer->firstname.' '.$customer->lastname : $from))) $smarty->assign('confirmation', 1); J'ai supprimé les 3 lignes "send" ligne 22. j'ai modifié la ligne 26 et le "send" du formulaire d'origine en ajoutant les variables: '{cpville}' => $_POST['cpville']Sachant qu'il faut remplacer 'cpville' par votre champ personnalisé.A+ Link to comment Share on other sites More sharing options...
fcdi Posted April 7, 2010 Share Posted April 7, 2010 Bonjourj'essaie de suivre l'exemple mais j'ai un soucisje recois le message du champs texte mais rien d'autremon contact-form.tpl {l s='Imprimante'} <textarea id="Imprimante" name="Imprimante" rows="1" cols="50"> </textarea> {l s='Reference Cartouche'} <textarea id="Reference" name="Reference" rows="1" cols="50" /></textarea> {l s='Message'} <textarea id="message" name="message" rows="7" cols="70">{if isset($smarty.post.message)}{$smarty.post.message|escape:'htmlall':'UTF-8'|stripslashes}{/if}</textarea> et mon contact-form.php if (Mail::Send(intval($cookie->id_lang), 'contact', 'Message from contact form', array('{email}' => $_POST['from'], '{nomPrenom}' => $_POST['nomPrenom'],'{cpville}' => $_POST['cpville'],'{tel}' => $_POST['tel'], '{Imprimante}' => $_POST['Imprimante'], '{Reference}' => $_POST['Reference'], '{message}' => stripslashes($message)), $contact->email, $contact->name, $from, (intval($cookie->id_customer) ? $customer->firstname.' '.$customer->lastname : $from))) $smarty->assign('confirmation', 1); merci d'avance Link to comment Share on other sites More sharing options...
muaddib78 Posted April 7, 2010 Author Share Posted April 7, 2010 Au sujet de ton contact-form.tpl il faut que tu ajoutes les valeurs de tes nouveaux champs soit ceci 'value="{$Imprimante}" à cet endroit: <textarea id="Imprimante" name="Imprimante" value="{$Imprimante}" rows="1" cols="50">et ainsi de suite...Ensuite sur ton contact-form.php, tu as recopié exactement mon code et effectivement cela ne peut pas fonctionner. Tu dois remplacer les valeurs nomPrenom, cpville, tel, par les tiennnes ou les ajouter, mais chaque champ que tu ajoutes doit avoir sa valeur dans le fichier .tpl, dans le .php et dans l'email .htmlEst ce que tu as défini les champs {imprimante}... dans le mail que tu reçois ?Bonne chance Link to comment Share on other sites More sharing options...
fcdi Posted April 7, 2010 Share Posted April 7, 2010 bonjour et merci pour la modificationalors le fichier tpl est désormais conformele fichier php l'était bien, j'ai bien rajouté les champs correspondants, dans mon exemple ils y sont mais a la fin normalementet oups j'ai oublié de modifier le fichier htmlje le fais de suite et je testebon c'est superj'ai ajouté des champs et testé ca marche nikel(edit 1) mais j'ai un petit bugles champs dans mon formulaire de contact ne sont pas vide (pas aligné a gauche lors de la saisie) on dirait qu'il y a des espaces dedans qui me décale mon texte(edit 2) autant pour moi, j'avais laissé des espaces a la fin de ma ligne textearea, hum dur dur ce matinet merci encore Link to comment Share on other sites More sharing options...
muaddib78 Posted April 7, 2010 Author Share Posted April 7, 2010 C'est bien! il faudrait ajouter la méthode dans le wiki car beaucoup cherche a modifier le formulaire de base et sur le forum je n'avais pas trouvé d'infos concrètes. Link to comment Share on other sites More sharing options...
fcdi Posted April 7, 2010 Share Posted April 7, 2010 oui je vais voir capar contre autre question, d'où vient l'intégration du module de sécurité à caractère en bas du formulaire ? Link to comment Share on other sites More sharing options...
muaddib78 Posted April 7, 2010 Author Share Posted April 7, 2010 Tu peux trouver plusieurs modules de CAPCHCA gratuits sur prestatools.comPar contre ils ne sont pas garantis par Prestashop.Enjoy ! Link to comment Share on other sites More sharing options...
fcdi Posted April 7, 2010 Share Posted April 7, 2010 un grand merci a vous Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now