favancini Posted September 1, 2016 Share Posted September 1, 2016 Bonjour, Est-il possible d'utiliser le formulaire de contact de Prestashop pour créer une nouvelle page de contact indépendante de celle qui existe déjà pour que les internautes puissent faire une demande de devis? Pour éviter l'achat d'un module. D'avance merci Link to comment Share on other sites More sharing options...
Eolia Posted September 1, 2016 Share Posted September 1, 2016 Oui, il faut cloner le controller et le tpl associé Link to comment Share on other sites More sharing options...
favancini Posted September 1, 2016 Author Share Posted September 1, 2016 Peux-tu m'expliquer comment m'y prendre? Link to comment Share on other sites More sharing options...
Eolia Posted September 1, 2016 Share Posted September 1, 2016 Euh... c'est clair non ? Il y a un controleur qui s'appelle ContactController.php et une page dans ton thème qui s'appelle contact-form.tpl Il faut les copier et les renommer (DevisController.php et devis-form.tpl par exemple) associer l'url ré-écrite dans SEO & URL et adapter le code des 2 fichiers à tes besoins Link to comment Share on other sites More sharing options...
favancini Posted September 8, 2016 Author Share Posted September 8, 2016 J'ai copié et renommé les deux fichiers (sans modifier leur contenu pour le moment) et créer la page dans la section SEO & URL (la page "devis" est bien dans le menu déroulant des pages par défaut) mais impossible d'accéder à la page sur mon site : j'arrives sur "Page Introuvable" Link to comment Share on other sites More sharing options...
Eolia Posted September 8, 2016 Share Posted September 8, 2016 Bah c'est logique si vous n'avez pas modifié le code à l'intérieur... il reste par exemple $this->setTemplate(_PS_THEME_DIR_.'contact-form.tpl'); donc forcément... Link to comment Share on other sites More sharing options...
favancini Posted September 21, 2016 Author Share Posted September 21, 2016 (edited) Désolé mais je n'y arrives pas Voici mon "Devis-form.tpl" et mon "DevisController.php"en pièce jointe. Ce que je voudrais, c'est ajouter un lien vers ce formulaire de demande de devis dans mon "Menu Haut Horizontal" Merci pour votre aide {* * 2007-2015 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 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/afl-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-2015 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} {capture name=path}{l s='Devis'}{/capture} <h1 class="page-heading bottom-indent"> {l s='Customer service'} - {if isset($customerThread) && $customerThread}{l s='Your reply'}{else}{l s='Demander un devis'}{/if} </h1> {if isset($confirmation)} <p class="alert alert-success">{l s='Your message has been successfully sent to our team.'}</p> <ul class="footer_links clearfix"> <li> <a class="btn btn-default button button-small" href="{if isset($force_ssl) && $force_ssl}{$base_dir_ssl}{else}{$base_dir}{/if}"> <span> <i class="icon-chevron-left"></i>{l s='Home'} </span> </a> </li> </ul> {elseif isset($alreadySent)} <p class="alert alert-warning">{l s='Your message has already been sent.'}</p> <ul class="footer_links clearfix"> <li> <a class="btn btn-default button button-small" href="{if isset($force_ssl) && $force_ssl}{$base_dir_ssl}{else}{$base_dir}{/if}"> <span> <i class="icon-chevron-left"></i>{l s='Home'} </span> </a> </li> </ul> {else} {include file="$tpl_dir./errors.tpl"} <form action="{$request_uri}" method="post" class="contact-form-box" enctype="multipart/form-data"> <fieldset> <h3 class="page-subheading">{l s='send a message'}</h3> <div class="clearfix"> <div class="col-xs-12 col-md-3"> <div class="form-group selector1"> <label for="id_contact">{l s='Subject Heading'}</label> {if isset($customerThread.id_contact) && $customerThread.id_contact && $contacts|count} {assign var=flag value=true} {foreach from=$contacts item=contact} {if $contact.id_contact == $customerThread.id_contact} <input type="text" class="form-control" id="contact_name" name="contact_name" value="{$contact.name|escape:'html':'UTF-8'}" readonly="readonly" /> <input type="hidden" name="id_contact" value="{$contact.id_contact|intval}" /> {$flag=false} {/if} {/foreach} {if $flag && isset($contacts.0.id_contact)} <input type="text" class="form-control" id="contact_name" name="contact_name" value="{$contacts.0.name|escape:'html':'UTF-8'}" readonly="readonly" /> <input type="hidden" name="id_contact" value="{$contacts.0.id_contact|intval}" /> {/if} </div> {else} <select id="id_contact" class="form-control" name="id_contact"> <option value="0">{l s='-- Choose --'}</option> {foreach from=$contacts item=contact} <option value="{$contact.id_contact|intval}"{if isset($smarty.request.id_contact) && $smarty.request.id_contact == $contact.id_contact} selected="selected"{/if}>{$contact.name|escape:'html':'UTF-8'}</option> {/foreach} </select> </div> <p id="desc_contact0" class="desc_contact{if isset($smarty.request.id_contact)} unvisible{/if}"> </p> {foreach from=$contacts item=contact} <p id="desc_contact{$contact.id_contact|intval}" class="desc_contact contact-title{if !isset($smarty.request.id_contact) || $smarty.request.id_contact|intval != $contact.id_contact|intval} unvisible{/if}"> <i class="icon-comment-alt"></i>{$contact.description|escape:'html':'UTF-8'} </p> {/foreach} {/if} <p class="form-group"> <label for="email">{l s='Email address'}</label> {if isset($customerThread.email)} <input class="form-control grey" type="text" id="email" name="from" value="{$customerThread.email|escape:'html':'UTF-8'}" readonly="readonly" /> {else} <input class="form-control grey validate" type="text" id="email" name="from" data-validate="isEmail" value="{$email|escape:'html':'UTF-8'}" /> {/if} </p> {if !$PS_CATALOG_MODE} {if (!isset($customerThread.id_order) || $customerThread.id_order > 0)} <div class="form-group selector1"> <label>{l s='Order reference'}</label> {if !isset($customerThread.id_order) && isset($is_logged) && $is_logged} <select name="id_order" class="form-control"> <option value="0">{l s='-- Choose --'}</option> {foreach from=$orderList item=order} <option value="{$order.value|intval}"{if $order.selected|intval} selected="selected"{/if}>{$order.label|escape:'html':'UTF-8'}</option> {/foreach} </select> {elseif !isset($customerThread.id_order) && empty($is_logged)} <input class="form-control grey" type="text" name="id_order" id="id_order" value="{if isset($customerThread.id_order) && $customerThread.id_order|intval > 0}{$customerThread.id_order|intval}{else}{if isset($smarty.post.id_order) && !empty($smarty.post.id_order)}{$smarty.post.id_order|escape:'html':'UTF-8'}{/if}{/if}" /> {elseif $customerThread.id_order|intval > 0} <input class="form-control grey" type="text" name="id_order" id="id_order" value="{if isset($customerThread.reference) && $customerThread.reference}{$customerThread.reference|escape:'html':'UTF-8'}{else}{$customerThread.id_order|intval}{/if}" readonly="readonly" /> {/if} </div> {/if} {if isset($is_logged) && $is_logged} <div class="form-group selector1"> <label class="unvisible">{l s='Product'}</label> {if !isset($customerThread.id_product)} {foreach from=$orderedProductList key=id_order item=products name=products} <select name="id_product" id="{$id_order}_order_products" class="unvisible product_select form-control"{if !$smarty.foreach.products.first} style="display:none;"{/if}{if !$smarty.foreach.products.first} disabled="disabled"{/if}> <option value="0">{l s='-- Choose --'}</option> {foreach from=$products item=product} <option value="{$product.value|intval}">{$product.label|escape:'html':'UTF-8'}</option> {/foreach} </select> {/foreach} {elseif $customerThread.id_product > 0} <input type="hidden" name="id_product" id="id_product" value="{$customerThread.id_product|intval}" readonly="readonly" /> {/if} </div> {/if} {/if} {if $fileupload == 1} <p class="form-group"> <label for="fileUpload">{l s='Attach File'}</label> <input type="hidden" name="MAX_FILE_SIZE" value="{if isset($max_upload_size) && $max_upload_size}{$max_upload_size|intval}{else}2000000{/if}" /> <input type="file" name="fileUpload" id="fileUpload" class="form-control" /> </p> {/if} </div> <div class="col-xs-12 col-md-9"> <div class="form-group"> <label for="message">{l s='Message'}</label> <textarea class="form-control" id="message" name="message">{if isset($message)}{$message|escape:'html':'UTF-8'|stripslashes}{/if}</textarea> </div> </div> </div> <div class="submit"> <button type="submit" name="submitMessage" id="submitMessage" class="button btn btn-default button-medium"><span>{l s='Send'}<i class="icon-chevron-right right"></i></span></button> </div> </fieldset> </form> {/if} {addJsDefL name='contact_fileDefaultHtml'}{l s='No file selected' js=1}{/addJsDefL} {addJsDefL name='contact_fileButtonHtml'}{l s='Choose File' js=1}{/addJsDefL} DevisController.php Edited September 21, 2016 by favancini (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted September 22, 2016 Share Posted September 22, 2016 Je vous avais dit de remplacer contact par devis, donc dans votre php on commence par: class DevisController extends FrontController Ca fonctionnera mieux^^ Ensuite dans votre menu, je ne vois pas le pb ? Ajoutez un lien /devis et basta Link to comment Share on other sites More sharing options...
IDPROJECT Posted February 14, 2017 Share Posted February 14, 2017 Bonjour, je reviens dans ce sujet car j'ai également des difficultés à me faire un devis sur mon site. J'ai suivi à la lettre ce que Eolia a mentionnée mais comme pour favancini, ma page est vide lorsque je clique dessus : http://monsite.fr/devis Merci d'avance pour votre aide 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