M@trox Posted May 4, 2011 Share Posted May 4, 2011 Bonjour à tous,Je suis un nouvel utilisateur de Prestashop 1.4.1 et j'ai un peu de mal à modifier le formulaire de contact.J'ai réussi à modifier le template, mais par contre, les champs que j'ai rajoutés ne s'envoient pas dans le mail.Sauriez-vous quel fichier il faut modifier pour ajouter mes nouveaux champs dans le mail ?Merci d'avance pour votre aide. Link to comment Share on other sites More sharing options...
M@trox Posted May 9, 2011 Author Share Posted May 9, 2011 Bonjour,Personne ne sait comment modifier le fichier d'envois des mails du formulaire de contact avec la version 1.4.1 ? :down: Merci d'avance. Link to comment Share on other sites More sharing options...
chtieu Posted May 12, 2011 Share Posted May 12, 2011 Dans le dossier mails/fr/contact.html et contact.txt, tu ajoutes les champs que tu souhaites. Link to comment Share on other sites More sharing options...
M@trox Posted May 14, 2011 Author Share Posted May 14, 2011 Bonjour,Merci beaucoup pour ta réponse :-) Ça marche presque, j'ai bien réussi à afficher mes nouveaux champs dans mon email, mais par contre, quand j'écris « Nom : {nom} » dans le fichier contact.html, il ne m'affiche pas le Nom que j’ai rentré dans le formulaire à la place de {nom} dans mon email.Saurais-tu où se trouve l'autre fichier à modifier ?Merci encore pour ton aide. Link to comment Share on other sites More sharing options...
chtieu Posted May 16, 2011 Share Posted May 16, 2011 Il faut que tu passes tes nouveaux champs au fichier contact.html.Trouve la fonction qui récupère les variables de ton formulaire, et qui crée l'e-mail. (Fonction Send de la classe Mail, un des paramètres de cette fonction est un tableau contenant les variables à afficher dans l'e-mail)Si tu es avec la dernière version de Presta (1.4), cela se passe dans ContactController.phpBon courage! Link to comment Share on other sites More sharing options...
M@trox Posted May 16, 2011 Author Share Posted May 16, 2011 Super!Ça marche nickel :-) Encore merci pour ton aide... Link to comment Share on other sites More sharing options...
AnilaN Posted May 17, 2011 Share Posted May 17, 2011 Bonjour,Je cherche la même chose mais j'arrive pas à ajouter les champs.Est-ce que vous pouvez expliquer ce que vous avez fait pour cela.J'aimerais bien en avoir un exemple du code.Je vous remercie en avance.Aany Link to comment Share on other sites More sharing options...
AnilaN Posted May 17, 2011 Share Posted May 17, 2011 Bon j'ai réussi à ajouter les champs mais comment transmettre les variables???Merci Link to comment Share on other sites More sharing options...
chtieu Posted May 17, 2011 Share Posted May 17, 2011 Pour ajouter les champs au formulaire, il faut trouver le fichier template correspondant soit contact-form.tplUne fois les champs ajoutés, reprend cette discussion du début et tu devrais réussir ! Link to comment Share on other sites More sharing options...
chtieu Posted May 17, 2011 Share Posted May 17, 2011 Il faut que tu passes tes nouveaux champs au fichier contact.html.Trouve la fonction qui récupère les variables de ton formulaire, et qui crée l'e-mail. (Fonction Send de la classe Mail, un des paramètres de cette fonction est un tableau contenant les variables à afficher dans l'e-mail)Si tu es avec la dernière version de Presta (1.4), cela se passe dans ContactController.phpBon courage! Si c'est une version inférieure à 1.4, cela se passe dans la classe Contact.php et le fichier contact-form.php Link to comment Share on other sites More sharing options...
AnilaN Posted May 17, 2011 Share Posted May 17, 2011 merci! j'ai réussi grâce à vous.J'ai une autre question, c'est bien dans contactcontroller.php qu'il faut écrire le code pour ajouter les données (comme nom, prenom...) dans la base? J'ai essayé de récupérer les données et les mettre dans la table customer_thread mais elles ne sont pas enregistrées dans la base. Link to comment Share on other sites More sharing options...
xav3438 Posted May 18, 2011 Share Posted May 18, 2011 Bonjour a tous,Votre post m'a déjà bien aidé. Cependant j'ai encore un problème, j'ai ajouté au formulaire de contact une liste déroulante reprenant les différentes catégories de produits. J'aimerais que la catégories choisie apparaisse dans le mail.Je ne sais pas comment récupérer les données dans le fichier ContactController.php. A vrai dire je ne suis pas un spécialiste du php.Je vous remercie d'avance pour votre aide. Link to comment Share on other sites More sharing options...
richard03 Posted May 30, 2011 Share Posted May 30, 2011 Bonjour,j'ai fais des essais également j'ai voulu ajouter le champ nom à contact-form.tpl et je l'ai ajouté également à contact.html pour qu'il soit envoyé par mail. Seulement à l'envoi j'ai la variable non interprété {nom} comme M@trox au début.J'ai tenté d'ajouté la nouvelle variable dans ContactController.php mais sans succès. if (!empty($contact->email)) { if (Mail::Send((int)(self::$cookie->id_lang), 'contact', Mail::l('Message from contact form'), array('{email}' => $from, $nom '{message}' => stripslashes($message)), $contact->email, $from, ((int)(self::$cookie->id_customer) ? $customer->firstname.' '.$customer->lastname : ''), $fileAttachment) AND Mail::Send((int)(self::$cookie->id_lang), 'contact_form', Mail::l('Your message has been correctly sent'), array('{message}' => stripslashes($message)), $from)) self::$smarty->assign('confirmation', 1); else $this->errors[] = Tools::displayError('An error occurred while sending message.'); } si quelqu'un peut apporter plus de précision sur comment récupérer la variable ce serait sympa Merci Link to comment Share on other sites More sharing options...
AnilaN Posted May 30, 2011 Share Posted May 30, 2011 Bonjour richard03,Je vous montre ce que j'ai fait et ca marcha tres bien.Dans contact-form.tpl (je vous donne un exemple d'ajout de champ "nom" pour que ce soit plus clair) {l s='Last name'} <input> * Dans ContactController.php if (!empty($contact->email)) { if (Mail::Send((int)(self::$cookie->id_lang), 'contact', Mail::l('Message from contact form'), array('{email}' => $from,'{gender}'=> $_POST['id_gender'],'{firstname}' => $_POST['firstname'], '{lastname}' => $_POST['lastname'],'{company}' => $_POST['company'], '{tel}' => $_POST['tel'],'{message}' => stripslashes($message)), $contact->email, $contact->name, $from, ((int)(self::$cookie->id_customer) ? $customer->firstname.' '.$customer->lastname : ''), $fileAttachment) AND Mail::Send((int)(self::$cookie->id_lang), 'contact_form', Mail::l('Your message has been correctly sent'), array('{message}' => stripslashes($message)), $from)) { self::$smarty->assign('confirmation', 1); } else $this->errors[] = Tools::displayError('An error occurred while sending message.'); } Aany Link to comment Share on other sites More sharing options...
richard03 Posted May 30, 2011 Share Posted May 30, 2011 Merci beaucoup aany en effet ça marche! Je relance une dernière question pour la route ^^, quelqu'un arrive à afficher l'objet du message dans le mail?car dans mon cas je veux controler tous les mails qui sont envoyé via le formulaire de contact.Pour le moment j'arrive à afficher l'id_contact dans le mail mais pas la valeur qu'on lui donne par exemple par défaut "webmaster" ou "service client".Sinon je ferai avec l'id et j'ajouterai une légende dans le mail (système D ^^)Merci Link to comment Share on other sites More sharing options...
AnilaN Posted May 31, 2011 Share Posted May 31, 2011 Moi, j'ai différents adresses mails pour différents services donc je me suis pas posé cette question mais c'est bien cette idée de mettre une légende .Est-ce que vous aurez une idée sur comment on ajoute les données de nouveaux champs dans la base? Je ne suis pas une experte en php et base de données donc il y a sûrement quelque chose qui m'échappe. Je sais que les données de messages sont enregistrées dans la table 'customer_thread' mais comment faire...Merci en avance.Aany 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