Jump to content

Como hacer el Formulario de Contacto con mas campos?


mpv-informatica

Recommended Posts

Editado el "contact-form.tpl" con este CODIGO:

{capture name=path}{l s='Contact'}{/capture}
{include file=$tpl_dir./breadcrumb.tpl}

{l s='Contact us'}



{if isset($confirmation)}

{l s='Your message has been successfully sent to our team.'}



{else}

{l s='For questions about an order or for information about our products'}.


{include file=$tpl_dir./errors.tpl}
<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='Select a subject'}


{foreach from=$contacts item=contact}


{l s='Description'}{$contact.description|escape:'htmlall':'UTF-8'}


{/foreach}


{l s='Nombre y Apellidos'}
<input type="text" id="nombre" name="from" value="{if isset($smarty.post.from)}{$smarty.post.from|escape:'htmlall':'UTF-8'|stripslashes}{/if}" />






{l s='Dirección'}
<input type="text" id="dirección" name="from" value="{if isset($smarty.post.from)}{$smarty.post.from|escape:'htmlall':'UTF-8'|stripslashes}{/if}" />





{l s='Poblacion'}
<input type="text" id="Poblacion" name="from" value="{if isset($smarty.post.from)}{$smarty.post.from|escape:'htmlall':'UTF-8'|stripslashes}{/if}" />




{l s='Provincia'}
<input type="text" id="Provincia" name="from" value="{if isset($smarty.post.from)}{$smarty.post.from|escape:'htmlall':'UTF-8'|stripslashes}{/if}" />





{l s='CP'}
<input type="text" id="CP" name="from" value="{if isset($smarty.post.from)}{$smarty.post.from|escape:'htmlall':'UTF-8'|stripslashes}{/if}" />




{l s='Telefono'}
<input type="text" id="Telefono" name="from" value="{if isset($smarty.post.from)}{$smarty.post.from|escape:'htmlall':'UTF-8'|stripslashes}{/if}" />





{l s='E-mail address'}
<input type="text" id="email" name="from" value="{if isset($smarty.post.from)}{$smarty.post.from|escape:'htmlall':'UTF-8'|stripslashes}{/if}" />





{l s='Message'}
<textarea id="message" name="message" rows="7" cols="35">{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>
{/if}


Pero cuando accedo al contacto del prestashop de nuevo contact-form.php los campos nuevos no se me muestran en el formulario de Contacto.

Se podrian subir aqui los Ficheros >>>> contact-form.tpl + contact-form.php ya modificados y con el codigo correcto.

GRACIAS. mpv-informatica
Link to comment
Share on other sites

Bueno es necesario saber en que idioma trabajas para comenzar ya que las variaciones cambian por ejemplo por fallo el ingles es el numero uno

{l s=‘Telefono’}
<input type=“text” id=“Telefono” name=“from” value=”{if isset($smarty.post.from)}{$smarty.post.from|escape:‘htmlall’:‘UTF-8’|stripslashes}{/if}” />

Lo adecuado seria


{l s='Phone'}
<input type="text" id="phone" name="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone|escape:'htmlall':'UTF-8'|stripslashes}{/if}" />



Y ya de esa manera tendrias que ir a Back Office >> Tools >> Translations selecciona "Front Office translations"
y haces click a la bandera correspondiente a el idioma que nesecitas traducir

(lo he hecho en mi localhost y no he probado si lo envia como debe)

La foto que subi es de la traducion al frances ya que es la unica que tengo instalada pero igual te saldria en la de espanol si ese es tu caso!

4171_FMAVsdw2ipZ14L6VIJwY_t

Link to comment
Share on other sites

Ya tengo el Formulario de contacto Creado con los Campos. Ahora me surge el siguiente Problema:

Relleno todos los Campos y me da el Ok del envio del Formulario

Pero cuando me llega a mi mail me solo me aparece la informacion de correo electronico y mensaje pero el resto de campos de direccion, telf, provincia ... no me llegan.

QUE OCURRRE??

4175_fyVSqV9uKqQBEG7kB2qd_t

4177_KgKGkgv8scF5FSkFPt3P_t

Link to comment
Share on other sites

hay otra forma muito melhor!!! recien llego de mis vacaciones por el caribe XD

1 abri con tu navegador el formulario de contactos siiiiiiiii www.tusitio.com/contact-form.php

2 click derecho ver codigo

3 copiar todo Ctrl+A

4 pegalo en un nuevo documento de dreamweaber.

4 modifica el codigo del formulario con tus preguntas como se hace un form normal

5 oviamente necesitas la ayuda de otro documente llamalo como quieras (es para hacer el POST del form) ponle los parametros que deses es mas con un mensaje de error si no sale o con uno de "formulario enviado!!!"

6 guarda el documento con el nombre contac-form.php

7 haz un backup del original contact-form.php de tu prestashop

8 sube los 2 nuevos archivos

9 usa ;) tu imaginacion :D

cualquier cosilla pregunta :P

Link to comment
Share on other sites

  • 2 weeks later...
He intentado Editar los archivos CONTACT.HTML y CONTACT.TXT y no me Funciona.

El metodo del Dreamweaver tampoco me sale.

ALGUIEN PODRIA SUBIR los ARCHIVOS YA MODIFICADOS. Seria un Gran Aporte Para TODOS/@s.

Muchisimas Gracias.


Estoy en las mismas:

Me llega al correo:

Teléfono: {telefono}
Mensaje: mensaje 234234234

No me está reconociendo la etiqueta {telefono}


Que podemos hacer ? muchas gracias
Link to comment
Share on other sites

SIIIIIIIIII soy un duro !! XD

jaja Mentiras...

Por fin !!

Aclaro que estuve mirando los foros en inglés y la solución que allí aparece esta INCOMPLETA.

http://www.prestashop.com/forums/viewthread/11123/modules/creation_of_new_fields_in_the_contact_form/

La descripción del archivo: "CONTACT-FORM.PHP" que allí aparece le hace falta lo siguiente:

if (Mail::Send(intval($cookie->id_lang), 'contact', 'Message from contact form', array('{email}' => $_POST['from'], '{message}' => stripslashes($message),'{telephone}' => $_POST['telephone']), $contact->email))
           $smarty->assign('confirmation', 1);



Si se dan cuenta le agregué:

,'{telephone}' => $_POST['telephone']



En ese mismo post yo pregunté "Como envias las variables $telefono, dirección, etc" etc... pero casi al instante me puse a probar y encontré la respuesta xD

Un saludo, espero les sirva, recuerden:

Ir al foro en inglés, seguir los paso, pero completar lo que hace falta con mis indicaciones. La función "MAIL::SEND( )" debe enviar los parametros $telefono, $direccion, $cuidad etc.


;)

Link to comment
Share on other sites

Hola, he modificado unos archivos pero me sigue sin funcionar alguien me podria dar la solución al error??

Me llega el mail con los campos solicitados pero no me llega la información que se escribio en cada unos de los campos solo el del mail y el mensaje.

Adjunto el codigo de los archivos.

Mil gracias.

4564_HEGKdPPhGkm6XUCeati5_t

4565_1wFjAUE7xbJjjnr8GlJf_t

4566_tlGUUTLLXQGLCnij2g1v_t

4567_D1Z5ePch3fOkdILyGAL2_t

4568_FQhU9tf7lfArG1bJDyp8_t

Link to comment
Share on other sites

Hola, he modificado unos archivos pero me sigue sin funcionar alguien me podria dar la solución al error??

Me llega el mail con los campos solicitados pero no me llega la información que se escribio en cada unos de los campos solo el del mail y el mensaje.

cccif8.jpg

Adjunto el codigo de los archivos:

:arrow: :arrow:

CONTACT-FORM.PHP



<?php

include(dirname(__FILE__).'/config/config.inc.php');
include(dirname(__FILE__).'/header.php');

$errors = array();

$smarty->assign('contacts', Contact::getContacts(intval($cookie->id_lang)));

if (Tools::isSubmit('submitMessage'))
{
if (!($from = Tools::getValue('from')) OR !Validate::isEmail($from))
$errors[] = Tools::displayError('Invalid e-mail address');

elseif (!($name = nl2br2(Tools::getValue('name'))))
$errors[] = Tools::displayError('Name cannot be blank');
elseif (!($lastname = nl2br2(Tools::getValue('lastname'))))
$errors[] = Tools::displayError('Last Name cannot be blank');
elseif (!($address = nl2br2(Tools::getValue('address'))))
$errors[] = Tools::displayError('Address cannot be blank');
elseif (!($city = nl2br2(Tools::getValue('city'))))
$errors[] = Tools::displayError('City cannot be blank');
elseif (!($postalcode = nl2br2(Tools::getValue('postalcode'))))
$errors[] = Tools::displayError('Postal Code cannot be blank');
elseif (!($region = nl2br2(Tools::getValue('region'))))
$errors[] = Tools::displayError('Region cannot be blank');
elseif (!($telephone = nl2br2(Tools::getValue('telephone'))))
$errors[] = Tools::displayError('Telephone cannot be blank');
elseif (!($message = nl2br2(Tools::getValue('message'))))
$errors[] = Tools::displayError('Message cannot be blank');
elseif (!Validate::isMessage($message))
$errors[] = Tools::displayError('Invalid message');
elseif (!($id_contact = intval(Tools::getValue('id_contact'))) OR !(Validate::isLoadedObject($contact = new Contact(intval($id_contact), intval($cookie->id_lang)))))
$errors[] = Tools::displayError('Please select a contact in the list');
else
{
if (Mail::Send(intval($cookie->id_lang), 'contact', 'Email from '.$_POST['name'], array('{email}' => $_POST['from'], '{message}' => stripslashes($message)), $contact->email))
$smarty->assign('confirmation', 1);
else
$errors[] = Tools::displayError('An error occurred while sending message');
}
}
$smarty->assign('errors', $errors);

Tools::safePostVars();
$smarty->display(_PS_THEME_DIR_.'contact-form.tpl');
include(dirname(__FILE__).'/footer.php');

?>
Link to comment
Share on other sites

CONTACT-FORM.PTL



{capture name=path}{l s='Contact'}{/capture}
{include file=$tpl_dir./breadcrumb.tpl}

{l s='Contact us'}



{if isset($confirmation)}

{l s='Your message has been successfully sent to our team.'}



{else}

{l s='For questions about an order or for information about our products'}.


{include file=$tpl_dir./errors.tpl}
<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}



{foreach from=$contacts item=contact}


{l s='Description'}{$contact.description|escape:'htmlall':'UTF-8'}


{/foreach}


{l s='Name'}
<input type="text" id="name" name="name" value="{if isset($smarty.post.name)}{$smarty.post.name|escape:'htmlall'|stripslashes}{/if}" />



{l s='Last Name'}
<input type="text" id="lastname" name="lastname" value="{if isset($smarty.post.lastname)}{$smarty.post.lastname|escape:'htmlall'|stripslashes}{/if}" />



{l s='Address'}
<input type="text" id="address" name="address" value="{if isset($smarty.post.address)}{$smarty.post.address|escape:'htmlall'|stripslashes}{/if}" />



{l s='City'}
<input type="text" id="city" name="city" value="{if isset($smarty.post.city)}{$smarty.post.city|escape:'htmlall'|stripslashes}{/if}" />



{l s='Postal Code'}
<input type="text" id="postalcode" name="postalcode" value="{if isset($smarty.post.postalcode)}{$smarty.post.postalcode|escape:'htmlall'|stripslashes}{/if}" />



{l s='Region'}
<input type="text" id="region" name="region" value="{if isset($smarty.post.region)}{$smarty.post.region|escape:'htmlall'|stripslashes}{/if}" />



{l s='Telephone'}
<input type="text" id="telephone" name="telephone" value="{if isset($smarty.post.telephone)}{$smarty.post.telephone|escape:'htmlall'|stripslashes}{/if}" />




{l s='E-mail address'}
<input type="text" id="email" name="from" value="{if isset($smarty.post.from)}{$smarty.post.from|escape:'htmlall'|stripslashes}{/if}" />




{l s='Message'}
<textarea id="message" name="message" rows="7" cols="35">{if isset($smarty.post.message)}{$smarty.post.message|escape:'htmlall'|stripslashes}{/if}</textarea>



<input type="submit" name="submitMessage" id="submitMessage" value="{l s='Send'}" class="button_large" />



</form>
{/if}
Link to comment
Share on other sites

CONTACT.HTML




<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Message from {shop_name}</title>
</head>
<body>

{shop_name}
 
Message from your shop {shop_name}
 

Name: {name}

 


Last Name: {lastname}

 


Address: {address}

 


City: {city}

 


Postal Code: {postalcode}

 


Region: {region}

 


Telephone: {telephone}

 


E-mail address: {email}

 


Message: {message}

 

{shop_name} powered with SITPYMES™

</body>
</html>


:arrow: :arrow:
CONTACT.TXT



Hola {firstname} {lastname}.

Ha recibido un mensaje de un cliente de su tienda: {shop_name}

Detalles del mensaje:
Correo elestrónico: {email}


Mensaje:

{message}






{shop_url} Comercio Electronico Diseñado por http://www.prestashop.com
Link to comment
Share on other sites

Hola, he modificado unos archivos pero me sigue sin funcionar alguien me podria dar la solución al error??

Me llega el mail con los campos solicitados pero no me llega la información que se escribio en cada unos de los campos solo el del mail y el mensaje.

cccif8.jpg

Adjunto el codigo de los archivos:

:arrow: :arrow:
CONTACT-FORM.PHP



<?php

include(dirname(__FILE__).'/config/config.inc.php');
include(dirname(__FILE__).'/header.php');

$errors = array();

$smarty->assign('contacts', Contact::getContacts(intval($cookie->id_lang)));

if (Tools::isSubmit('submitMessage'))
{
if (!($from = Tools::getValue('from')) OR !Validate::isEmail($from))
$errors[] = Tools::displayError('Invalid e-mail address');

elseif (!($name = nl2br2(Tools::getValue('name'))))
$errors[] = Tools::displayError('Name cannot be blank');
elseif (!($lastname = nl2br2(Tools::getValue('lastname'))))
$errors[] = Tools::displayError('Last Name cannot be blank');
elseif (!($address = nl2br2(Tools::getValue('address'))))
$errors[] = Tools::displayError('Address cannot be blank');
elseif (!($city = nl2br2(Tools::getValue('city'))))
$errors[] = Tools::displayError('City cannot be blank');
elseif (!($postalcode = nl2br2(Tools::getValue('postalcode'))))
$errors[] = Tools::displayError('Postal Code cannot be blank');
elseif (!($region = nl2br2(Tools::getValue('region'))))
$errors[] = Tools::displayError('Region cannot be blank');
elseif (!($telephone = nl2br2(Tools::getValue('telephone'))))
$errors[] = Tools::displayError('Telephone cannot be blank');
elseif (!($message = nl2br2(Tools::getValue('message'))))
$errors[] = Tools::displayError('Message cannot be blank');
elseif (!Validate::isMessage($message))
$errors[] = Tools::displayError('Invalid message');
elseif (!($id_contact = intval(Tools::getValue('id_contact'))) OR !(Validate::isLoadedObject($contact = new Contact(intval($id_contact), intval($cookie->id_lang)))))
$errors[] = Tools::displayError('Please select a contact in the list');
else
{
if (Mail::Send(intval($cookie->id_lang), 'contact', 'Email from '.$_POST['name'], array('{email}' => $_POST['from'], '{message}' => stripslashes($message)), $contact->email))
$smarty->assign('confirmation', 1);
else
$errors[] = Tools::displayError('An error occurred while sending message');
}
}
$smarty->assign('errors', $errors);

Tools::safePostVars();
$smarty->display(_PS_THEME_DIR_.'contact-form.tpl');
include(dirname(__FILE__).'/footer.php');

?>


La solución ya la puse en este mismo hilo más arriba xD

Debes enviar los parametros $telephone, $region, $ address etc en el metodo:
Mail:: Send (



Saludos

Link to comment
Share on other sites

Saludos

Cambiando un poco de tema, ahora me encuentro "reestructurando" el formulario de registro de nuevos usuarios. Vamos a ver como me va, y es de suponer que será lo mismo:

autenthication.php
autenthication.tpl


Actualemente tengo el prestashop 1.0, y este no tiene mi país: Colombia , al momento de registrar un nuevo usuario ¬¬ No se si en la versión 1.1 ya lo corrigierion, pero por "el afan" que tengo me toca cambiarlo hoy. xD

Despues actualizaré

Un saludo,

Link to comment
Share on other sites

Fíjate de hacer bien el post, cuidado con los paréntesis y las comas ami me llegan todos los campos :D

pero tube problemas cuando no ise bien los post y todo por un paréntesis!!!!


,'{telephone}' => $_POST['telephone'],'{city}' => $_POST['city']),


y revisando tu code no hay post ;P

Link to comment
Share on other sites

  • 1 year later...
Hola, he modificado unos archivos pero me sigue sin funcionar alguien me podria dar la solución al error??

Me llega el mail con los campos solicitados pero no me llega la información que se escribio en cada unos de los campos solo el del mail y el mensaje.

cccif8.jpg

Adjunto el codigo de los archivos:

:arrow: :arrow:
CONTACT-FORM.PHP



<?php

include(dirname(__FILE__).'/config/config.inc.php');
include(dirname(__FILE__).'/header.php');

$errors = array();

$smarty->assign('contacts', Contact::getContacts(intval($cookie->id_lang)));

if (Tools::isSubmit('submitMessage'))
{
if (!($from = Tools::getValue('from')) OR !Validate::isEmail($from))
$errors[] = Tools::displayError('Invalid e-mail address');

elseif (!($name = nl2br2(Tools::getValue('name'))))
$errors[] = Tools::displayError('Name cannot be blank');
elseif (!($lastname = nl2br2(Tools::getValue('lastname'))))
$errors[] = Tools::displayError('Last Name cannot be blank');
elseif (!($address = nl2br2(Tools::getValue('address'))))
$errors[] = Tools::displayError('Address cannot be blank');
elseif (!($city = nl2br2(Tools::getValue('city'))))
$errors[] = Tools::displayError('City cannot be blank');
elseif (!($postalcode = nl2br2(Tools::getValue('postalcode'))))
$errors[] = Tools::displayError('Postal Code cannot be blank');
elseif (!($region = nl2br2(Tools::getValue('region'))))
$errors[] = Tools::displayError('Region cannot be blank');
elseif (!($telephone = nl2br2(Tools::getValue('telephone'))))
$errors[] = Tools::displayError('Telephone cannot be blank');
elseif (!($message = nl2br2(Tools::getValue('message'))))
$errors[] = Tools::displayError('Message cannot be blank');
elseif (!Validate::isMessage($message))
$errors[] = Tools::displayError('Invalid message');
elseif (!($id_contact = intval(Tools::getValue('id_contact'))) OR !(Validate::isLoadedObject($contact = new Contact(intval($id_contact), intval($cookie->id_lang)))))
$errors[] = Tools::displayError('Please select a contact in the list');
else
{
if (Mail::Send(intval($cookie->id_lang), 'contact', 'Email from '.$_POST['name'], array('{email}' => $_POST['from'], '{message}' => stripslashes($message)), $contact->email))
$smarty->assign('confirmation', 1);
else
$errors[] = Tools::displayError('An error occurred while sending message');
}
}
$smarty->assign('errors', $errors);

Tools::safePostVars();
$smarty->display(_PS_THEME_DIR_.'contact-form.tpl');
include(dirname(__FILE__).'/footer.php');

?>


La solución ya la puse en este mismo hilo más arriba xD

Debes enviar los parametros $telephone, $region, $ address etc en el metodo:
Mail:: Send (



Saludos




Perdón, estoy perdido. ¿Dónde está la solución?
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...