Search the Community
Showing results for tags 'formulaire de contact'.
-
Bonjour, Sous Presta 1.7.6.9 Je souhaite afficher le formulaire de contact dans une page catégorie : plus précisément dans category-header.tpl J'ai trouvé ceci à intégré directement dans un tpl : {widget name="contactform"} Le formulaire apparaît bien, sauf que ça ne fonctionne pas, le mail ne part pas... Par contre si je fais le test sur la page contact pas de problème. Où dois-je faire la modification pour que l'envoi fonctionne ? Car ça n'a pas l'air de venir directement du module si je ne dis pas de bêtise Merci par avance, Cdt, Clément
- 2 replies
-
- helpme
- envoi de mail
-
(and 4 more)
Tagged with:
-
Bonjour à tous, Je suis nouvelle sur Prestashop et je configure mon site. J'ai un souci avec le formulaire de contact. Mon problème est le suivant : - Je ne reçois pas les mails de mes clients dans ma boite mail - Il n'y a pas d'accusé de réception qui sont envoyés aux clients - La description du formulaire de contact n'est pas mise à jour avec ce que j'ai mis dans l'onglet Paramètre le la boutique > Contacts - Mais ils sont bien enregistrés sur le SAV. Le tout sachant que : - J'ai bien installé le module formulaire de contact. - Dans les "paramètre de la boutique > Contacts" , le mail est bien mentionné et la description est différente de la phrase proposée de base - Dans "paramètres avancés > E-mail", les cases cochés sont "Utiliser /usr/sbin/sendmail (recommandé ; fonctionne dans la majorité des cas)" et "les deux" ainsi que OUI pour logues les e-mails envoyés. Pour finir, cela marque pour "Testez votre configuration e-mail". Malgré tout cela, je ne sais pas où partent les mail du formulaire de contact. Pouvez-vous m'aider ? Merci d'avance. Marie. -
-
Version de PS : 1.7.6.7 Thème (défaut/perso) : Classic (modifié) Hébergement : OVH Version de PHP : 7.3 Bonjour, J'ai voulu alléger le poids de ma boutique en supprimant tous les modules natifs que je n'utilisais pas et par la suite mon formulaire de contact avait disparu (affichant une err500 à la place) ainsi que le bouton "contactez-nous" alors que j'avais précieusement gardé l'addon "Formulaire de contact v4.3.0 - par PrestaShop" dans mon BO n'ayant nul intention de supprimer cette fonction de ma boutique. J'ai comparé une version neuve de PS 1.7.6.7 avec mes fichiers racines et j'ai vu qu'il manquait le dossier "www/modules/ps_contactinfo", je l'ai donc transférer sur mon serveur et là miracle le formulaire de contact est réapparu. Mais le bouton "contactez-nous" dans l'entête du site est toujours manquant. Savez vous que faire pour remettre ce bouton en place ? J'ai supprimer le fichier "custom.css" de mon serveur l'espace d'un instant pour voir, mais non le problème ne vient pas de là. J'ai évidemment désinstallé le module "Formulaire de contact v4.3.0 - par PrestaShop", vidé le cache, fermer le navigateur, puis réinstallé, mais ça ne donne rien. Merci pour votre aide.
-
Bonjour, Voilà maintenant plusieurs heures que je m'arrache les cheveux en essayant de comprendre ce qui a bien pu se passer sur le formulaire de contact de mon site. La mise en place de la page était bouclée en fin d'après-midi, mais en y revenant "par hasard" en début de soirée, je me suis rendu compte que tout avait foutu le camp et j'ai comme seule hypothèse à l'heure actuelle que la cause est liée à l'appel du mauvais formulaire sur ma page... En inspectant le DOM depuis le navigateur, je constate que la class du formulaire est "login-form", qui pour moi se destine davantage à être un formulaire de connexion... En activant le mode débogueur dans le fichier defines.inc.php, une ligne commenté qui délimite le formulaire m'indique le chemin "modules/contactform/views/templates/widget/contactform.tpl", qui correspond effectivement au formulaire du module (cf. captures d'en-dessous): Or, il me semble (sauf erreur de ma part), que le "bon" formulaire serait plutôt celui ayant le chemin "www/themes/classic/modules/contactform/views/template/widget/contactform.tpl" : Dans l'immédiat, le formulaire de ma page contact ressemble à ceci: Le texte en-dessous de "Envoyer un message" ne correspond d'ailleurs pas du tout avec celui d'une page de contact basique, et que j'avais à l'origine. Je n'ai malheureusement pas fait de capture de mon formulaire lorsque j'en avais terminé avec lui et que je ne rencontrais pas ce problème, mais il était plus ou moins similaire à celui de base avec une mise en forme différente. Je suis sous PS 1.7 avec le thème Classic pour information. Si une âme (très) charitable aurait une idée pour arranger ceci je lui en serait très reconnaissant, n'ayant plus vraiment d'idées de pistes à explorer... Merci par avance.
-
Bonjour, J'ai un problème avec le formulaire de contact qui retourne systématiquement une erreur : Une erreur s'est produite pendant l'envoi du message. Le site tourne sous Ps 1.7.4.2 et j'ai mis à jour le module "Formulaire de contact" en version 4.1.1 J'utilise le thème "ZOneTheme Supermarket" lui aussi mis à jour hier sur la dernière version 2.2.8. L'envoi d'un mail de test via l'admin fonctionne, les caches sont vidés et désactivés. J'ai déjà consulté pas mal de post sur ce problème qui semble lié à la 1.7.4 mais tout semble à jour sur le site. Et sur une version de dev du même site, sur un autre serveur la mise à jour du thème a réglé le problème... J'avoue ne plus savoir comment trouver une solution, peut-être avez vous une piste ? Merci.
-
salut , je veux ajouter deux inputs pour mon formulaire de contact , les récupérer dans la Template mail reçue , pour cela j'ai suivi le tutoriel de @NemoPs , au niveau de ma base de donnée les champs ajoutés sont vides et pour la Template mail j'ai pas les valeurs des champs. quelle est le problème s'il vous plaît ?? une idée voici les modifications que j'ai fait : -ajout de deux champs au niveau les tables ps_customer_thread et ps_customer_message - faire override pour CustomerThread.php et ContactController.php -modification contactform.tpl et les fichiers contact.html au niveau dossier mails. <?php class CustomerThread extends CustomerThreadCore { public $extrafield; public $extrafield2; public $id; public $id_shop; public $id_lang; public $id_contact; public $id_customer; public $id_order; public $id_product; public $status; public $email; public $token; public $date_add; public $date_upd; /** * @see ObjectModel::$definition */ public static $definition = array( 'table' => 'customer_thread', 'primary' => 'id_customer_thread', 'fields' => array( 'id_lang' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true), 'id_contact' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true), 'id_shop' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'), 'id_customer' =>array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'), 'id_order' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'), 'id_product' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'), 'email' => array('type' => self::TYPE_STRING, 'validate' => 'isEmail', 'size' => 254), 'token' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'required' => true), 'status' => array('type' => self::TYPE_STRING), 'date_add' => array('type' => self::TYPE_DATE, 'validate' => 'isDate'), 'date_upd' => array('type' => self::TYPE_DATE, 'validate' => 'isDate'), 'extrafield' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'), 'extrafield2' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'), ), ); } contactController.php <?php class ContactController extends ContactControllerCore { public $php_self = 'contact'; public $ssl = true; /** * Start forms process * @see FrontController::postProcess() */ public function postProcess() { if (Tools::isSubmit('submitMessage')) { $extension = array('.txt', '.rtf', '.doc', '.docx', '.pdf', '.zip', '.png', '.jpeg', '.gif', '.jpg'); $file_attachment = Tools::fileAttachment('fileUpload'); $message = Tools::getValue('message'); // Html entities is not usefull, iscleanHtml check there is no bad html tags. if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) { $this->errors[] = Tools::displayError('Invalid email address.'); } elseif (!$message) { $this->errors[] = Tools::displayError('The message cannot be blank.'); } elseif (!Validate::isCleanHtml($message)) { $this->errors[] = Tools::displayError('Invalid message'); } elseif (!($id_contact = (int)Tools::getValue('id_contact')) || !(Validate::isLoadedObject($contact = new Contact($id_contact, $this->context->language->id)))) { $this->errors[] = Tools::displayError('Please select a subject from the list provided. '); } elseif (!empty($file_attachment['name']) && $file_attachment['error'] != 0) { $this->errors[] = Tools::displayError('An error occurred during the file-upload process.'); } elseif (!empty($file_attachment['name']) && !in_array(Tools::strtolower(substr($file_attachment['name'], -4)), $extension) && !in_array(Tools::strtolower(substr($file_attachment['name'], -5)), $extension)) { $this->errors[] = Tools::displayError('Bad file extension'); } else { $customer = $this->context->customer; if (!$customer->id) { $customer->getByEmail($from); } $id_order = (int)$this->getOrder(); if (!(( ($id_customer_thread = (int)Tools::getValue('id_customer_thread')) && (int)Db::getInstance()->getValue(' SELECT cm.id_customer_thread FROM '._DB_PREFIX_.'customer_thread cm WHERE cm.id_customer_thread = '.(int)$id_customer_thread.' AND cm.id_shop = '.(int)$this->context->shop->id.' AND token = \''.pSQL(Tools::getValue('token')).'\'') ) || ( $id_customer_thread = CustomerThread::getIdCustomerThreadByEmailAndIdOrder($from, $id_order) ))) { $fields = Db::getInstance()->executeS(' SELECT cm.id_customer_thread, cm.id_contact, cm.id_customer, cm.id_order, cm.id_product, cm.email FROM '._DB_PREFIX_.'customer_thread cm WHERE email = \''.pSQL($from).'\' AND cm.id_shop = '.(int)$this->context->shop->id.' AND ('. ($customer->id ? 'id_customer = '.(int)$customer->id.' OR ' : '').' id_order = '.(int)$id_order.')'); $score = 0; foreach ($fields as $key => $row) { $tmp = 0; if ((int)$row['id_customer'] && $row['id_customer'] != $customer->id && $row['email'] != $from) { continue; } if ($row['id_order'] != 0 && $id_order != $row['id_order']) { continue; } if ($row['email'] == $from) { $tmp += 4; } if ($row['id_contact'] == $id_contact) { $tmp++; } if (Tools::getValue('id_product') != 0 && $row['id_product'] == Tools::getValue('id_product')) { $tmp += 2; } if ($tmp >= 5 && $tmp >= $score) { $score = $tmp; $id_customer_thread = $row['id_customer_thread']; } } } $old_message = Db::getInstance()->getValue(' SELECT cm.message FROM '._DB_PREFIX_.'customer_message cm LEFT JOIN '._DB_PREFIX_.'customer_thread cc on (cm.id_customer_thread = cc.id_customer_thread) WHERE cc.id_customer_thread = '.(int)$id_customer_thread.' AND cc.id_shop = '.(int)$this->context->shop->id.' ORDER BY cm.date_add DESC'); if ($old_message == $message) { $this->context->smarty->assign('alreadySent', 1); $contact->email = ''; $contact->customer_service = 0; } if ($contact->customer_service) { if ((int)$id_customer_thread) { $ct = new CustomerThread($id_customer_thread); $ct->status = 'open'; $ct->id_lang = (int)$this->context->language->id; $ct->id_contact = (int)$id_contact; $ct->id_order = (int)$id_order; if ($id_product = (int)Tools::getValue('id_product')) { $ct->id_product = $id_product; } $ct->extrafield = Tools::getValue('extrafield'); $ct->extrafield2 = Tools::getValue('extrafield2'); $ct->update(); } else { $ct = new CustomerThread(); if (isset($customer->id)) { $ct->id_customer = (int)$customer->id; } $ct->id_shop = (int)$this->context->shop->id; $ct->id_order = (int)$id_order; if ($id_product = (int)Tools::getValue('id_product')) { $ct->id_product = $id_product; } $ct->id_contact = (int)$id_contact; $ct->id_lang = (int)$this->context->language->id; $ct->email = $from; $ct->status = 'open'; $ct->token = Tools::passwdGen(12); $ct->extrafield = Tools::getValue('extrafield'); $ct->extrafield2 = Tools::getValue('extrafield2'); $ct->add(); } if ($ct->id) { $cm = new CustomerMessage(); $cm->id_customer_thread = $ct->id; $cm->message = $message; if (isset($file_attachment['rename']) && !empty($file_attachment['rename']) && rename($file_attachment['tmp_name'], _PS_UPLOAD_DIR_.basename($file_attachment['rename']))) { $cm->file_name = $file_attachment['rename']; @chmod(_PS_UPLOAD_DIR_.basename($file_attachment['rename']), 0664); } $cm->ip_address = (int)ip2long(Tools::getRemoteAddr()); $cm->user_agent = $_SERVER['HTTP_USER_AGENT']; if (!$cm->add()) { $this->errors[] = Tools::displayError('An error occurred while sending the message.'); } } else { $this->errors[] = Tools::displayError('An error occurred while sending the message.'); } } if (!count($this->errors)) { $var_list = array( '{order_name}' => '-', '{attached_file}' => '-', '{message}' => Tools::nl2br(stripslashes($message)), '{email}' => $from, '{product_name}' => '', '{extrafield}' => (isset($ct) && $ct->extrafield) ? $ct->extrafield : '' , '{extrafield2}' => (isset($ct) && $ct->extrafield2) ? $ct->extrafield2 : '' , ); if (isset($file_attachment['name'])) { $var_list['{attached_file}'] = $file_attachment['name']; } $id_product = (int)Tools::getValue('id_product'); if (isset($ct) && Validate::isLoadedObject($ct) && $ct->id_order) { $order = new Order((int)$ct->id_order); $var_list['{order_name}'] = $order->getUniqReference(); $var_list['{id_order}'] = (int)$order->id; } if ($id_product) { $product = new Product((int)$id_product); if (Validate::isLoadedObject($product) && isset($product->name[Context::getContext()->language->id])) { $var_list['{product_name}'] = $product->name[Context::getContext()->language->id]; } } if (empty($contact->email)) { Mail::Send($this->context->language->id, 'contact_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, null, null, $file_attachment); } else { if (!Mail::Send($this->context->language->id, 'contact', Mail::l('Message from contact form').' [no_sync]', $var_list, $contact->email, $contact->name, null, null, $file_attachment, null, _PS_MAIL_DIR_, false, null, null, $from) || !Mail::Send($this->context->language->id, 'contact_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, null, null, $file_attachment, null, _PS_MAIL_DIR_, false, null, null, $contact->email)) { $this->errors[] = Tools::displayError('An error occurred while sending the message.'); } } } if (count($this->errors) > 1) { array_unique($this->errors); } elseif (!count($this->errors)) { $this->context->smarty->assign('confirmation', 1); } } } } } modification contactForm.tpl <p class="form-group"> <label for="extrafield">{l s='Nom'}</label> {if isset($customerThread.extrafield)} <input class="form-control grey" type="text" id="extrafield" name="extrafield" value="{$customerThread.extrafield|escape:'html':'UTF-8'}" /> {else} <input class="form-control grey validate" type="text" id="extrafield" name="extrafield" data-validate="isGenericName" value="{$customerThread.extrafield|escape:'html':'UTF-8'}" /> {/if} </p> <p class="form-group"> <label for="extrafield2">{l s='Prénom'}</label> {if isset($customerThread.extrafield2)} <input class="form-control grey" type="text" id="extrafield2" name="extrafield2" value="{$customerThread.extrafield2|escape:'html':'UTF-8'}" /> {else} <input class="form-control grey validate" type="text" id="extrafield2" name="extrafield2" data-validate="isGenericName" value="{$customerThread.extrafield2|escape:'html':'UTF-8'}" /> {/if} </p> contactform.html <span style="color:#777"> Votre message a bien été envoyé à notre service client.<br /><br /> <span style="color:#333"><strong>Message :</strong></span> {message}<br /><br /> <span style="color:#333"><strong>Commande # :</strong></span> {order_name}<br /> <span style="color:#333"><strong>Produit :</strong></span> {product_name}<br /> <span style="color:#333"><strong>Pièce jointe :</strong></span> {attached_file} <br /> <span style="color:#333"><strong>Nom:</strong></span> {extrafield} <br /> <span style="color:#333"><strong>Prénom :</strong></span> {extrafield2} <br /> </span> champs au niveau base donnée pourquoi les champs ajoutés extrafield et extrafield2 sont vides au niveau BD et et template mail?
-
- nouveau champs
- formulaire de contact
-
(and 1 more)
Tagged with:
-
Bonjour tout le monde ;-) j'aimerais savoir si quelqu'un a déjà eu besoin ou entendu parler sur le forum de la modif suivante : Version presta. 1.5 dans le formulaire de contact, le client peut nous envoyer seulement 1 fichier joint. j'aimerais modifier ceci exactement comme dans le BO lorsqu'on sélectionne les images d'un produit On peut en sélectionner plusieurs, et elle se chargent ensuite automatiquement ;-) Toutes les fois , j'ai mes clients qui m'apellent en me demandant comment peuvent-ils m'envoyer plusieurs fichiers sans remplir à nouveau le formulaire de contact ..... donc je leur dit de m'envoyer un mail ... En attendant Je poursuis mes recherches ici et sur le net j'ai trouvé ce post > http://www.prestashop.com/forums/index.php?/topic/156450-cherche-moyen-denvoyer-plusieurs-fichiers-joints-via-fonction-mailsend/page__view__findpost__p__760574
- 1 reply
-
- fichier joint
- contact form
-
(and 1 more)
Tagged with:
-
Bonjour, j'ai un problème d'affichage sur mon formulaire de contact (http://www.romefortprint.com/contactez-nous). Au niveau du champ Fichier : - j'ai une zone grisée "Aucun fic..." non cliquable, - un bouton gris foncé "Choisir un " non cliquable, - et enfin les champs "Parcourir" et "Aucun fichier sélectionné" qui eux sont fonctionnels. J'ai eu beau chercher, je ne vois pas du tout d'où viennent les éléments non cliquables et comment les supprimer ... Quelqu'un aurait-il une idée ? Merci ! Pauline
-
- formulaire de contact
- champ upload
- (and 2 more)
-
Bonjour à tous, Je rencontre des problèmes à la modification du formulaire de contact sous prestashop 1.4.8.2, j'ai modifié le fichier contact-form.tpl pour ajouter le champ par exemple: <p class="text"> <label for="nom">{l s='Nom'}</label> <input type="text" id="nom" name="nom" value="{$nom}" /> </p> ainsi que les fichiers mails/fr/contact.html et mails/fr/contact.txt, dans lesquels j'ai ajouté: Nom : {nom} En toute logique, je dois faire passer mes variables via le fichier contactcontroller.php dans le dossier override. Seullement voilà, que faut-il modifier exactement? J'ai déjà essayé plusieurs méthode comme celle-ci mais ça ne fonctionne pas... Quelqu'un pourrais m'aider? Merci
- 9 replies
-
- contact form
- page contact
-
(and 1 more)
Tagged with:
-
Bonjour, Après plusieurs recherches infructueuses sur le forum et sur google, je me tourne vers vous en espérant que la question n'ait pas été déjà posée J'ai créé une page CMS que j'ai appelé "Contactez-nous" et que j'ai mis dans le menu horizontal du site. J'aimerais qu'en cliquant sur cette page, on arrive directement sur le formulaire de contact mais je ne sais absolument pas comment faire. J'utilise PS 1.6 et le thème par défaut. Merci par avance pour votre aide. Bonne journée
-
Bonjour, Pour humaniser un peu le formulaire de contact de presta, j'aimerai ajouter un texte au dessus dudit formulaire (et pourquoi pas une image si c'est possible). Je n'ai aucune idée sur la façon de s'y prendre, et il faudrait dans l'idéal que ce texte change selon la langue de l'utilisateur. J'utilise le thème par défaut de presta. Une âme charitable voudrait-elle me donner une piste? Merci.
-
Eh bien, j'ai besoin de mettre en place le suivi des conversions pour Google Adwords sur mon Prestashop magasin, cela nécessite formulaire de contact rediriger le site vers une URL personnalisée. J'ai besoin de ce lien formulaire de contact http://www.xxxxx.cl/contactez-nous réelle rediriger vers quelque chose comme http://www.xxxxx.cl/merci.php de cette façon comprennent le script de suivi "merci.php " J'ai déjà merci.php liste de la page et son respectif .tpl lance actuellement une fonction de sortie sous forme de messages via php echo ("Votre mesaje a été envoyé avec succès.") Après avoir cherché une solution, j'ai réalisé que la configuration du formulaire de contact se trouve dans / public_html / controllers / ContactController.php Cela signifie que peut-être inclus dans cette ligne php rediriger. ContactController.php Le code est: <?php /* * 2007-2011 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/osl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2011 PrestaShop SA * @version Release: $Revision: 7197 $ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ class ContactControllerCore extends FrontController { public $php_self = 'contact-form.php'; public $ssl = true; public function preProcess() { parent::preProcess(); if (self::$cookie->isLogged()) { self::$smarty->assign('isLogged', 1); $customer = new Customer((int)(self::$cookie->id_customer)); if (!Validate::isLoadedObject($customer)) die(Tools::displayError('Customer not found')); $products = array(); $orders = array(); $getOrders = Db::getInstance()->ExecuteS(' SELECT id_order FROM '._DB_PREFIX_.'orders WHERE id_customer = '.(int)$customer->id.' ORDER BY date_add'); foreach ($getOrders as $row) { $order = new Order($row['id_order']); $date = explode(' ', $order->date_add); $orders[$row['id_order']] = Tools::displayDate($date[0], self::$cookie->id_lang); $tmp = $order->getProducts(); foreach ($tmp as $key => $val) $products[$val['product_id']] = $val['product_name']; } $orderList = ''; foreach ($orders as $key => $val) $orderList .= '<option value="'.$key.'" '.((int)(Tools::getValue('id_order')) == $key ? 'selected' : '').' >'.$key.' -- '.$val.'</option>'; $orderedProductList = ''; foreach ($products as $key => $val) $orderedProductList .= '<option value="'.$key.'" '.((int)(Tools::getValue('id_product')) == $key ? 'selected' : '').' >'.$val.'</option>'; self::$smarty->assign('orderList', $orderList); self::$smarty->assign('orderedProductList', $orderedProductList); } if (Tools::isSubmit('submitMessage')) { $fileAttachment = NULL; if (isset($_FILES['fileUpload']['name']) AND !empty($_FILES['fileUpload']['name']) AND !empty($_FILES['fileUpload']['tmp_name'])) { $extension = array('.txt', '.rtf', '.doc', '.docx', '.pdf', '.zip', '.png', '.jpeg', '.gif', '.jpg'); $filename = uniqid().substr($_FILES['fileUpload']['name'], -5); $fileAttachment['content'] = file_get_contents($_FILES['fileUpload']['tmp_name']); $fileAttachment['name'] = $_FILES['fileUpload']['name']; $fileAttachment['mime'] = $_FILES['fileUpload']['type']; } $message = Tools::htmlentitiesUTF8(Tools::getValue('message')); if (!($fromname = trim(Tools::getValue('fromname'))) OR (!($fromname = nl2br2($fromname)))) $this->errors[] = Tools::displayError('El campo Nombre no puede estar vacio'); elseif (!($from = trim(Tools::getValue('from'))) OR !Validate::isEmail($from)) $this->errors[] = Tools::displayError('Invalid e-mail address'); elseif (!Validate::isCleanHtml($fromname)) $this->errors[] = Tools::displayError('Invalid message'); elseif (!($id_fromname= (int)(Tools::getValue('id_fromname'))) OR !(Validate::isLoadedObject($fromname = new Fromname((int)($id_fromname), (int)(self:: $cookie->id_lang))))) if (!($city = trim(Tools::getValue('city'))) OR (!($city = nl2br2($city)))) $this->errors[] = Tools::displayError('El campo Ciudad no puede estar vacio'); elseif (!($from = trim(Tools::getValue('from'))) OR !Validate::isEmail($from)) $this->errors[] = Tools::displayError('Invalid e-mail address'); elseif (!Validate::isCleanHtml($city)) $this->errors[] = Tools::displayError('Invalid message'); elseif (!($id_city = (int)(Tools::getValue('id_city'))) OR !(Validate::isLoadedObject($city = new City((int)($id_city), (int)(self::$cookie->id_lang))))) if (!($phone = trim(Tools::getValue('phone'))) OR (!($phone = nl2br2($phone)))) $this->errors[] = Tools::displayError('El campo Telefono no puede estar vacio'); elseif (!($from = trim(Tools::getValue('from'))) OR !Validate::isEmail($from)) $this->errors[] = Tools::displayError('Invalid e-mail address'); elseif (!Validate::isCleanHtml($phone)) $this->errors[] = Tools::displayError('Invalid message'); elseif (!($id_phone = (int)(Tools::getValue('id_phone'))) OR !(Validate::isLoadedObject($phone = new Phone((int)($id_phone), (int)(self::$cookie->id_lang))))) if (!($from = trim(Tools::getValue('from'))) OR !Validate::isEmail($from)) $this->errors[] = Tools::displayError('Invalid e-mail address'); elseif (!($message = nl2br2($message))) $this->errors[] = Tools::displayError('Message cannot be blank'); elseif (!Validate::isCleanHtml($message)) $this->errors[] = Tools::displayError('Invalid message'); elseif (!($id_contact = (int)(Tools::getValue('id_contact'))) OR !(Validate::isLoadedObject($contact = new Contact((int)($id_contact), (int)(self::$cookie->id_lang))))) $this->errors[] = Tools::displayError('Please select a subject on the list.'); elseif (!empty($_FILES['fileUpload']['name']) AND $_FILES['fileUpload']['error'] != 0) $this->errors[] = Tools::displayError('An error occurred during the file upload'); elseif (!empty($_FILES['fileUpload']['name']) AND !in_array(substr($_FILES['fileUpload']['name'], -4), $extension) AND !in_array(substr($_FILES['fileUpload']['name'], -5), $extension)) $this->errors[] = Tools::displayError('Bad file extension'); else { if ((int)(self::$cookie->id_customer)) $customer = new Customer((int)(self::$cookie->id_customer)); else { $customer = new Customer(); $customer->getByEmail($from); } $contact = new Contact($id_contact, self::$cookie->id_lang); if (!(( $id_customer_thread = (int)Tools::getValue('id_customer_thread') AND (int)Db::getInstance()->getValue(' SELECT cm.id_customer_thread FROM '._DB_PREFIX_.'customer_thread cm WHERE cm.id_customer_thread = '.(int)$id_customer_thread.' AND token = \''.pSQL(Tools::getValue('token')).'\'') ) OR ( $id_customer_thread = (int)Db::getInstance()->getValue(' SELECT cm.id_customer_thread FROM '._DB_PREFIX_.'customer_thread cm WHERE cm.email = \''.pSQL($from).'\' AND cm.id_order = '.(int)(Tools::getValue('id_order')).'') ))) { $fields = Db::getInstance()->ExecuteS(' SELECT cm.id_customer_thread, cm.id_contact, cm.id_customer, cm.id_order, cm.id_product, cm.email FROM '._DB_PREFIX_.'customer_thread cm WHERE email = \''.pSQL($from).'\' AND ('. ($customer->id ? 'id_customer = '.(int)($customer->id).' OR ' : '').' id_order = '.(int)(Tools::getValue('id_order')).')'); $score = 0; foreach ($fields as $key => $row) { $tmp = 0; if ((int)$row['id_customer'] AND $row['id_customer'] != $customer->id AND $row['email'] != $from) continue; if ($row['id_order'] != 0 AND Tools::getValue('id_order') != $row['id_order']) continue; if ($row['email'] == $from) $tmp += 4; if ($row['id_contact'] == $id_contact) $tmp++; if (Tools::getValue('id_product') != 0 AND $row['id_product'] == Tools::getValue('id_product')) $tmp += 2; if ($tmp >= 5 AND $tmp >= $score) { $score = $tmp; $id_customer_thread = $row['id_customer_thread']; } } } $old_message = Db::getInstance()->getValue(' SELECT cm.message FROM '._DB_PREFIX_.'customer_message cm WHERE cm.id_customer_thread = '.(int)($id_customer_thread).' ORDER BY date_add DESC'); if ($old_message == htmlentities($message, ENT_COMPAT, 'UTF-8')) { self::$smarty->assign('alreadySent', 1); $contact->email = ''; $contact->customer_service = 0; } if (!empty($contact->email)) { if (Mail::Send((int)(self::$cookie->id_lang), 'contact', Mail::l('Message from contact form'), array('{email}' => $from, '{message}'=> stripslashes($message),'{fromName}' => stripslashes($fromname),'{city}' => stripslashes($city),'{phone}' => stripslashes($phone)), $contact->email, $contact->name, $from, ((int)(self::$cookie->id_customer) ? $customer->firstname.' '.$customer->lastname : $fromname), $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.'); } if ($contact->customer_service) { if ((int)$id_customer_thread) { $ct = new CustomerThread($id_customer_thread); $ct->status = 'open'; $ct->id_lang = (int)self::$cookie->id_lang; $ct->id_contact = (int)($id_contact); if ($id_order = (int)Tools::getValue('id_order')) $ct->id_order = $id_order; if ($id_product = (int)Tools::getValue('id_product')) $ct->id_product = $id_product; $ct->update(); } else { $ct = new CustomerThread(); if (isset($customer->id)) $ct->id_customer = (int)($customer->id); if ($id_order = (int)Tools::getValue('id_order')) $ct->id_order = $id_order; if ($id_product = (int)Tools::getValue('id_product')) $ct->id_product = $id_product; $ct->id_contact = (int)($id_contact); $ct->id_lang = (int)self::$cookie->id_lang; $ct->email = $from; $ct->status = 'open'; $ct->token = Tools::passwdGen(12); $ct->add(); } if ($ct->id) { $cm = new CustomerMessage(); $cm->id_customer_thread = $ct->id; $cm->message = htmlentities($message, ENT_COMPAT, 'UTF-8'); if (isset($filename) AND rename($_FILES['fileUpload']['tmp_name'], _PS_MODULE_DIR_.'../upload/'.$filename)) $cm->file_name = $filename; $cm->ip_address = ip2long($_SERVER['REMOTE_ADDR']); $cm->user_agent = $_SERVER['HTTP_USER_AGENT']; if ($cm->add()) { if (empty($contact->email)) 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.'); } else $this->errors[] = Tools::displayError('An error occurred while sending message.'); } if (count($this->errors) > 1) array_unique($this->errors); } } } public function setMedia() { parent::setMedia(); Tools::addCSS(_THEME_CSS_DIR_.'contact-form.css'); } public function process() { parent::process(); $email = Tools::safeOutput(Tools::getValue('from', ((isset(self::$cookie) AND isset(self::$cookie->email) AND Validate::isEmail(self::$cookie->email)) ? self::$cookie->email : ''))); self::$smarty->assign(array( 'errors' => $this->errors, 'email' => $email, 'fileupload' => Configuration::get('PS_CUSTOMER_SERVICE_FILE_UPLOAD') )); if ($id_customer_thread = (int)Tools::getValue('id_customer_thread') AND $token = Tools::getValue('token')) { $customerThread = Db::getInstance()->getRow(' SELECT cm.* FROM '._DB_PREFIX_.'customer_thread cm WHERE cm.id_customer_thread = '.(int)$id_customer_thread.' AND token = \''.pSQL($token).'\''); self::$smarty->assign('customerThread', $customerThread); } self::$smarty->assign(array('contacts' => Contact::getContacts((int)(self::$cookie->id_lang)), 'message' => html_entity_decode(Tools::getValue('message')) )); } public function displayContent() { $_POST = array_merge($_POST, $_GET); parent::displayContent(); self::$smarty->display(_PS_THEME_DIR_.'contact-form.tpl'); } } Merci!!!
- 3 replies
-
- rediriger
- formulaire
-
(and 3 more)
Tagged with:
-
Bonjour sur mon site en version 1.4.7.0 mon formulaire ne fonctionne plus ? J'ai le message suivant qui apparâit : Warning: Header may not contain more than a single header, new line detected. in /var/www/vhosts/NomDeMonSite.fr/httpdocs/classes/Tools.php on line 96 Dans Tools.php la ligne 96 est l'avant dernière du paragraphe suivant ( header('Location: '.$url) : /** * Redirect url wich allready PS_BASE_URI * * @param string $url Desired URL */ public static function redirectLink($url) { if (!preg_match('@^https?://@i', $url)) { global $link; if (strpos($url, __PS_BASE_URI__) !== FALSE && strpos($url, __PS_BASE_URI__) == 0) $url = substr($url, strlen(__PS_BASE_URI__)); $explode = explode('?', $url, 2); $url = $link->getPageLink($explode[0]); if (isset($explode[1])) $url .= '?'.$explode[1]; } header('Location: '.$url); exit; } Le contact-form.php ; quand à lui est ainsi : require(dirname(__FILE__).'/config/config.inc.php'); ControllerFactory::getController('ContactController')->run(); Auriez-vous une idée ? Merci
-
Bonjour, Je viens de faire un site sous prestashop 1.5.2. Au niveau de l'admin il y a plusieurs SuperAdmin, mais lorsque l'on envoi un message via le formulaire de contact, il y en a qu'un seul qui reçoit l'email, alors qu'il faudrait que tout le monde reçoivent les mails! Est ce que quelqu'un a déjà eu ce pb? Merci de vos réponses et de votre aide
-
Bonjour, Je viens vers vous en espérant que quelqu'un puisse m'aider. Je test l'installation d'une boutique en ligne Version de Prestashop: 1.4.4.0 Thème matrice modifié Lors de test pour l'inscription d'un nouveaux client, Je remplie bien tous les champs nécessaire et il me met: Il y a 1 erreur : mot de passe invalide Et là rien dans la BO puis si je reclique sur envoyer en réessayant d'envoyer le formulaire d'inscription j'ai: Il y a 1 erreur : An error occurred while creating your account Mais quand je regarde dans le BO le nouveaux client est bien inscrit donc je clique sur "oublie du mot de passe" et là on m'en envoie un nouveau. Je ne sais pas quoi faire pour régler le problème, est ce que quelqu'un à une piste??? Merci d'avance.
-
Bonjour, sur ma boutique prestashop j'aimerais avoir un formulaire de contact pour que mes clients me contacte un autre formulaire pour les produit et un autre pour autre chose enfette j'aimerais trois formulaire différents sur prestashop 1.4 comment pourrais-je faire?
-
bonjour j'ai fais ma boutique avec le template de base de prestashop. Quand on clic sur contact ça ouvre un formulaire. Mais quand mes clients valident le formulaire ils ont un message d'erreur indiquant que le sujet est invalide. Et pour cause ! Dans le formulaire de contact, ce champs n'existe pas. Quelqu'un saurait-il me dire où créer ce champs manquant ? J'ajoute que le formulaire est quand même correctement expédié. Merci Matthieu
-
Bonjour j'ai activé le module du formulaire de contact sur mon site. Quand un visiteur clique sur "contact", le formulaire présente uniquement un champ "votre email" et un champ "message". Mais quand le visiteur envoie le message, il trouve un message indiquant "Erreur : sujet d'e-mail invalide". Effectivement, du fait qu'il n'y a pas de champ "sujet", il manque cette info. Pour autan le message est bien envoyé. Savez-vous comment rajouter le champ "sujet" manquant ?? Hello I activated the module of the contact form on my site. When a visitor clicks on "contact", the form has only one field "Your email" and one field "message". But when the visitor sends the message, there is a message saying "Error: subject invalid". Indeed, the fact that there is no field "subject" is missing this info. Provided the message is sent. Do you know how to add the "about" missing?