Jump to content
moraira

Adaptar el Formulario de Contacto a la LOPD con un CHECK

Recommended Posts

Hola compañeros, esto lo he hecho para ps 1.5.4.1 pero deberia funcionar igual en versiones anteriores. No agrego el contact-form.tpl porque lo tengo personalizado, pero adaptar los vuestros es muy facil.

Lo que vamos ha hacer es agregar un check en el formulario de contacto, si no lo activamos no podremos usar el formulario, y junto al check esta la descripcion del mismo que llamara al CMS que tengamos con nuestra politica de privacidad. Este CMS se abrira en una ventana emergente.

Simplemente hay que copiar una funcion al principio del fichero (contact-form.tlp) de vuestro tema

{literal}
<script type="text/javascript">
$('document').ready(function() {
// desactivo boton envio
$('#formcontacto').submit(function() {
if ($("#acepta_lopd_form").is(":checked")) {
$('#submitMessage').hide()
return true;
} else {
alert ("{/literal}{l s="If you agree to the terms in the Customer Data Privacy message, please click the check box below."}{literal}");
$('#submitMessage').show()
return false;
}
});
});
</script>
{/literal}



despues vamos a identificar al formulario que la funcion lo llama, es decir que buscamos esto:

 <form action="{$request_uri|escape:'htmlall':'UTF-8'}" method="post" class="std" enctype="multipart/form-data">



y lo cambiamos por esto (sólo agregamos id="formcontacto" name="formcontacto") :

 <form action="{$request_uri|escape:'htmlall':'UTF-8'}" id="formcontacto" name="formcontacto" method="post" class="std" enctype="multipart/form-data">



y luego vamos a añadir el check en cuestion, justo entre el cuadro de texto del contacto y el boton, es decir

 <p class="textarea">
<label for="message">{l s='Message'}</label>
<textarea id="message" name="message" rows="15" cols="10">{if isset($message)}{$message|escape:'htmlall':'UTF-8'|stripslashes}{/if}</textarea>
</p>

JUSTO AQUI

<p class="submit">
<input type="submit" name="submitMessage" id="submitMessage" value="{l s='Send'}" class="button_large" onclick="$(this).hide();" />
</p>




Ponemos esto

<p class="checkbox" id="security_informations">
<input id="acepta_lopd_form" type="checkbox" value="1" {if isset($smarty.post.acepta_lopd_form) AND $smarty.post.acepta_lopd_form == 1}checked="checked"{/if} name="acepta_lopd_form">
<label for="acepta_lopd_form">{l s='I agree to the'} </label> <a href="{$link->getCMSLink(1)}{if Configuration::get('PS_REWRITING_SETTINGS') == 1}?{else}&{/if}content_only=1" class="iframe">{l s='Privacy Policy'}</a> {l s='and will adhere to them unconditionally.'}
</p>
<script type="text/javascript">$('a.iframe').fancybox();</script>



OJO que mi politica de privacidad es el CMS ID=1, aqui que cada uno ponga el que tenga

getCMSLink(1)




No hay que olvidar las traducciones y un retoque en contact-form.css para adecuar el formato, esto depende de cada tema en mi caso basto con esto:

#contact .std #security_informations {
padding:0 20px 20px 183px;
font-size:12px;
text-align: justify;
width:480px;
}



Y listo, ya tenemos formulario de contacto adaptado a la LOPD, yo lo he probado en PS 1.5.4.1

quedaría así:
LOPD.png

Edited by moraira (see edit history)
  • Like 10

Share this post


Link to post
Share on other sites

A mi no me funciona, el texto sale en ingles y en la ventana que deberia abrir la lopd vualve a abrir la web.

 

 

Podeis verlo en www.tutabletonoline.com

Share this post


Link to post
Share on other sites

Lo del idioma solucionado, solo hay que ir buscando el texto y modificandolo. Pero lo de que muestre la politica de pribacidad ya es mas complicado!!!

 

Alguien me puede ayudar????????

Share this post


Link to post
Share on other sites

Hola Moraira

Gracias por tu aporte.

Estoy haciendo pruebas con prestashop 1.5.3.1 y no me encuentra la página de Privacidad, sin embrago si cambio el valor en (contact-form.tlp) " &content_only=1" por "?content_only=1" me reenvía a la página de privacidad pero en toda pantalla no en la página de la cms.

Tampoco consigo cambiar el color del enlace.

 

Gracias

Share this post


Link to post
Share on other sites

Prueba a cambiar el href del enlace por este:

{$link->getCMSLink(1)}?content_only=1

Recuerda que debes de poner el id del cms que corresponda...

 

Saludos

 

EDITO: la url que has puesto de tut tienda no funciona...

 

Correcto asi si funciona!!!!!!!!! Mo id es la 2.

 

 

Gracias,

Share this post


Link to post
Share on other sites

Hola Moraira

Gracias por tu aporte.

Estoy haciendo pruebas con prestashop 1.5.3.1 y no me encuentra la página de Privacidad, sin embrago si cambio el valor en (contact-form.tlp) " &content_only=1" por "?content_only=1" me reenvía a la página de privacidad pero en toda pantalla no en la página de la cms.

Tampoco consigo cambiar el color del enlace.

 

Gracias

 

Hola Balzai, a mi me pasaba lo mismo, a pesar de la correccion del amigo statictic a mi no me funciona con '?' el valor correcto para que cargue solo el contenido y no la pagina entera es con '&' (no se si es por la version de ps o por usar una funcion).

 

El ID de tu cms de privacidad es aqui donde lo tienes que poner: getCMSLink(1)

 

respecto al color, es porque en realidad lo que se ve en el pantallazo que he puesto es al pasar el raton por encima y entonces usa el standar del global.css, si lo quieres personalizar deberias poner en contact-form.css esto:

 

Para el color siempre del link:

#contact .std #security_informations a {
color: #9E9F9E;
}

 

A pasar el raton por encima:

#contact .std #security_informations a:hover{
color: #D4222B;
}

 

En ambos casos puedes poner el código de color que más te guste.

 

He visto tu web y yo en el css le pondria algo así para ajustar más el texto:

#contact .std #security_informations {
 padding:0 20px 20px 183px;
 font-size:12px;
 text-align: justify;
 width:260px;
}

 

Bueno en realidad el text-align: justify y el width:260px no los necesitas si no vas ha poner el aviso en otros idiomas (en aleman ocupa un par de líneas), el que si es interesante es el padding:0 20px 20px 183px; aunque tendras que jugar con el último valor para ajustarlo bien al resto de los campos

Edited by moraira (see edit history)

Share this post


Link to post
Share on other sites

Lo del idioma solucionado, solo hay que ir buscando el texto y modificandolo. Pero lo de que muestre la politica de pribacidad ya es mas complicado!!!

 

Alguien me puede ayudar????????

 

Me alegro de que ya te funcione Seopad, si tienes alguna otra duda pregunta. Lo idiomas es porque he preferido ponerlo en ingles y usando el mismo diseño que el módulo prolitica de privacidad de los clientes (de prestashop) por eso tiene 3 apartados, en castellano solo hacen falta 2 pero en ingles,aleman y frances la frase correcta va con 3:

 

He leido y acepto la política de Privacidad y Protección de Datos Personales

I agree to the Privacy Policy and will adhere to them unconditionally.

Ich habe die allgemeinen DATENSCHUTZPOLITIK gelesen und stimme Ihnen uneingeschränkt zu.

J'ai lu le Politique de confidentialité et j'y adhère sans réserve.

  • Like 1

Share this post


Link to post
Share on other sites

Hola, gracias por el aporte.

He realizado todo los cambios y funciona perfectamente, pero soy nuevo en esto y no se hacer lo de las traducciones.

 

Mi versión de prestashop es la 1.5.3.1.

 

Muchas gracias.

Share this post


Link to post
Share on other sites

Lo he traducido directamente en el archivo contact-form.tpl, pero en el futuro quiero poner varios idiomas. ¿Cómo se haría?.

 

Por otro lado, se abre el CMS correcto, pero aparece en la misma pantalla, para que aparezca en una nueva pongo:

 

<a href="{$link->getCMSLink(1)}&content_only=1" class="iframe" target="_blank">

 

Para que aparezca en la pantalla de los CMS, yo elimino:

 

&content_only=1"

 

Muchas gracias.</a>

Edited by ezequielpallares (see edit history)

Share this post


Link to post
Share on other sites

Hola, lo he probado en la version 1.5.4.1 y el formulario va perfecto, pero al pulsar el link de politica de privacidad me dirige a error 404, a pesar de haber cambiado esto "getCMSLink(1)" al valor correcto.

Share this post


Link to post
Share on other sites

Funciona bien, pero le he visto un fallo y es que tildes la casilla o no, envia el formulario de todas formas.

Share this post


Link to post
Share on other sites

Funciona bien, pero le he visto un fallo y es que tildes la casilla o no, envia el formulario de todas formas.

 

 

Pues a mi si que me funciona correctamente

Share this post


Link to post
Share on other sites

Funciona bien, pero le he visto un fallo y es que tildes la casilla o no, envia el formulario de todas formas.

 

No olvides vaciar la cache y forzar la compilación, si pulsas sin chequear la casilla te debe aparecer un cuadro emergente que te dice que lo debes hacer :)

Share this post


Link to post
Share on other sites

ACLARADO de lo '&' y '?' gracias Statictic

 

depende de si tenemos las url amigables activadas o no, en resumen que mejor cambiar el href="{$link->getCMSLink(1.... para que de igual si las tenemos o no activadas (ya esta actualizado arriba) por esto

 

href="{$link->getCMSLink(1)}{if Configuration::get('PS_REWRITING_SETTINGS') == 1}?{else}&{/if}content_only=1"

 

Si no quereis estar cambiando el CMS que debe abrir getCMSLink(1) abre el 1, getCMSLink(15) abre el 15 podeis poner esto (gracias de nuevo Statictic):

{$link->getCMSLink(Configuration::get('PS_CONDITIONS_CMS_ID'))}{if Configuration::get('PS_REWRITING_SETTINGS') == 1}?{else}&{/if}content_only=1

 

en este caso abriremos el cms que le hemos indicado en PREFERENCIAS apartado PEDIDOS como CONDICIONES GENERALES, ojo no olvidemos que si lo hacemos así en las condiciones generales hay que hablar de la privacidad

 

mas cosas, si no queremos que sea emergente basta quitar de esta misma linea el codigo que hace que aparezca solo el contenido del cms sin menus titulos y demas (esto a gusto de cada uno)

{if Configuration::get('PS_REWRITING_SETTINGS') == 1}?{else}&{/if}content_only=1

y tambien quitamos el código que lo hace propiamente emergente, en la misma linea quitamos

class="iframe"

y un poquito más abajo

<script type="text/javascript">$('a.iframe').fancybox();</script>

Edited by moraira (see edit history)

Share this post


Link to post
Share on other sites

pongo la linea entera para los más novatos:

 

El que mas me gusta a mi (como esta en el aporte): Emergente y abriendo el CMS de privacidad (en mi caso el 1)

 

<p class="checkbox" id="security_informations">
 <input id="acepta_lopd_form" type="checkbox" value="1" {if isset($smarty.post.acepta_lopd_form) AND $smarty.post.acepta_lopd_form == 1}checked="checked"{/if}  name="acepta_lopd_form">
  <label for="acepta_lopd_form">{l s='I agree to the'} </label> <a href="{$link->getCMSLink(1)}{if Configuration::get('PS_REWRITING_SETTINGS') == 1}?{else}&{/if}content_only=1" class="iframe">{l s='Privacy Policy'}</a> {l s='and will adhere to them unconditionally.'}
 </p>
 <script type="text/javascript">$('a.iframe').fancybox();</script>

 

Emergente abriendo las condiciones generales que hemos puesto en PREFERENCIAS, PEDIDOS

    <p class="checkbox" id="security_informations">
 <input id="acepta_lopd_form" type="checkbox" value="1" {if isset($smarty.post.acepta_lopd_form) AND $smarty.post.acepta_lopd_form == 1}checked="checked"{/if}  name="acepta_lopd_form">
  <label for="acepta_lopd_form">{l s='I agree to the'} </label> <a href="{$link->getCMSLink(Configuration::get('PS_CONDITIONS_CMS_ID'))}{if Configuration::get('PS_REWRITING_SETTINGS') == 1}?{else}&{/if}content_only=1" class="iframe">{l s='Privacy Policy'}</a> {l s='and will adhere to them unconditionally.'}
 </p>
 <script type="text/javascript">$('a.iframe').fancybox();</script

 

Ahora que abra las conciones generales pero sin pantalla emergente

    <p class="checkbox" id="security_informations">
 <input id="acepta_lopd_form" type="checkbox" value="1" {if isset($smarty.post.acepta_lopd_form) AND $smarty.post.acepta_lopd_form == 1}checked="checked"{/if}  name="acepta_lopd_form">
  <label for="acepta_lopd_form">{l s='I agree to the'} </label> <a href="{$link->getCMSLink(Configuration::get('PS_CONDITIONS_CMS_ID'))}">{l s='Privacy Policy'}</a> {l s='and will adhere to them unconditionally.'}
 </p>

Share this post


Link to post
Share on other sites

Hola Balzai, a mi me pasaba lo mismo, a pesar de la correccion del amigo statictic a mi no me funciona con '?' el valor correcto para que cargue solo el contenido y no la pagina entera es con '&' (no se si es por la version de ps o por usar una funcion).

 

El ID de tu cms de privacidad es aqui donde lo tienes que poner: getCMSLink(1)

 

respecto al color, es porque en realidad lo que se ve en el pantallazo que he puesto es al pasar el raton por encima y entonces usa el standar del global.css, si lo quieres personalizar deberias poner en contact-form.css esto:

 

Para el color siempre del link:

#contact .std #security_informations a {
color: #9E9F9E;
}

 

A pasar el raton por encima:

#contact .std #security_informations a:hover{
color: #D4222B;
}

 

En ambos casos puedes poner el código de color que más te guste.

 

He visto tu web y yo en el css le pondria algo así para ajustar más el texto:

#contact .std #security_informations {
 padding:0 20px 20px 183px;
 font-size:12px;
 text-align: justify;
 width:260px;
}

 

Bueno en realidad el text-align: justify y el width:260px no los necesitas si no vas ha poner el aviso en otros idiomas (en aleman ocupa un par de líneas), el que si es interesante es el padding:0 20px 20px 183px; aunque tendras que jugar con el último valor para ajustarlo bien al resto de los campos

 

 

Muchas Gracias moraira.

Solucionado!

 

Saludos

Share this post


Link to post
Share on other sites

A mi me funciona pero tengo un problema, y es que no se me abre la ventana emergente.

 

He pegado el código tal cual, con class="iframe" y la última línea de javascript para abrir el fancybox, pero el mensaje se abre ocupando todo el navegador.

 

¿Alguien tiene alguna idea de qué puede estar pasando?

 

 <p class="checkbox" id="security_informations">
	 <input id="acepta_lopd_form" type="checkbox" value="1" {if isset($smarty.post.acepta_lopd_form) AND $smarty.post.acepta_lopd_form == 1}checked="checked"{/if}  name="acepta_lopd_form">
	  <label for="acepta_lopd_form">{l s='He leído y acepto la '} </label> <a href="{$link->getCMSLink(Configuration::get('PS_CONDITIONS_CMS_ID'))}{if Configuration::get('PS_REWRITING_SETTINGS') == 1}?{else}&{/if}content_only=1" class="iframe">{l s='Política de Privacidad y Protección de Datos Personales'}</a>{l s='.'}
    </p>
 <script type="text/javascript">$('a.iframe').fancybox();</script>

 

Por cierto, magnífico aporte moraira, Muchas gracias!

Share this post


Link to post
Share on other sites

He visto que no se cargaba el fichero js de fancybox. He añadido la siguiente línea pero sigue sin funcionarme...

 

<script type="text/javascript" src="/hipc/js/jquery/plugins/fancybox/jquery.fancybox.js"></script>

 

Por si alguien me puede echar una mano, mi tienda está en www.hipc.es.

Edited by jesuscampoy (see edit history)

Share this post


Link to post
Share on other sites

Lo he solucionado añadiendo la línea

 

$this->addjqueryPlugin('fancybox');

 

a la función setMedia del fichero classes/Controller/FrontController.php.

 

Muchas gracias statictic!

Share this post


Link to post
Share on other sites

Para el que esté interesado.

 

He realizado el mismo cambio al formulario de creación de usuario.

 

Para esto, he eliminado el bloque de privacidad que viene por defecto en prestashop comentando el código del fichero blockcustomerprivacy.tpl, que se encuentra en el directorio modules/blockcustomerprivacy.

 

En el fichero authentication.tpl de nuestro tema, he realizado los mismo cambios que sugería moraira.

 

En el inicio del fichero, he añadido el siguiente bloque:

 

{literal}
<script type="text/javascript">
    $('document').ready(function() {
		    // desactivo boton envio
		    $('#account-creation_form').submit(function() {
			  if ($("#customer_privacy").is(":checked")) {
				    $('#submitMessage').hide()
				    return true; 
			  } else  {
				    alert ("{/literal}{l s="Debe aceptar la Politica de Privacidad y Proteccion de Datos."}{literal}");
				    $('#submitMessage').show()
				    return false;
			  }
		    });
    });
</script>
<script type="text/javascript">$('a.iframe').fancybox();</script>
{/literal}

 

Hay algunas diferencias con el formulario de contacto: el id del formulario es account-creation_form en vez de form_contacto y el id del checkbox es customer_privacy en lugar de acepta_lopd_form.

 

Si la línea de la llamada a fancybox

 

<script type="text/javascript">$('a.iframe').fancybox();</script>

 

la definía dentro del formulario, se producía algún error y se mostraba la página en blanco. Fuera del formulario me funciona perfectamente.

 

Por último, he añadido el siguiente código

 

 <p class="checkbox" id="security_informations">
  <input id="customer_privacy" name="customer_privacy" type="checkbox" value="1" {if isset($smarty.post.acepta_lopd_form) AND $smarty.post.acepta_lopd_form == 1}checked="checked"{/if}>
  <label for="acepta_lopd_form">{l s='He leído y acepto la '} </label> <a href="{$link->getCMSLink(Configuration::get('PS_CONDITIONS_CMS_ID'))}{if Configuration::get('PS_REWRITING_SETTINGS') == 1}?{else}&{/if}content_only=1" class="iframe">{l s='Política de Privacidad y Protección de Datos Personales'}</a><label>{l s='.'}</label>
 </p>

 

al final del formulario account_creation_form. Es decir, justo detrás de este código:

 

 {if $newsletter}
 <p class="checkbox" >
  <input type="checkbox" name="newsletter" id="newsletter" value="1" {if isset($smarty.post.newsletter) AND $smarty.post.newsletter == 1} checked="checked"{/if} />
  <label for="newsletter">{l s='Sign up for our newsletter!'}</label>
 </p>
 <p class="checkbox" >
  <input type="checkbox"name="optin" id="optin" value="1" {if isset($smarty.post.optin) AND $smarty.post.optin == 1} checked="checked"{/if} />
  <label for="optin">{l s='Receive special offers from our partners!'}</label>
 </p>
 {/if}

 

Muchas gracias de nuevo moraira!

Un saludo!

  • Like 1

Share this post


Link to post
Share on other sites

Gracias ti por el tuyo jesuscampoy si inicias otro post con el, será más fácil que los colegas lo encuentren.

Share this post


Link to post
Share on other sites

Moraira, como es una solución calcada a la tuya, ¿no es mejor que lo añadas a tu post inicial?

 

Yo soy un total novato, pero pienso que los aportes tienen que ir diferenciados en distintos temas. (Sino el indice que esta construyendo Nadie, aquí: http://www.prestasho...ambian-la-vida/ no tendra sentido. )

 

Gracias por el aporte.

Edited by Feliz Garcia (see edit history)

Share this post


Link to post
Share on other sites

Hola moraira y jesuscampoy por vuestros aportes.

 

Concretamente quiero realizar la modificación de jesus , pero no me funciona y no se la razón.

 

Cuando voy a crear una nueva cuenta, introduzco el mali pero no me va a la siguiente pantalla ( la de registro )

 

Si quito la linea del script de la parte del inicio del fichero authentication.tpl

 

 

<script type="text/javascript">$('a.iframe').fancybox();</script>

 

Si me deja pasar a la página de registro, pero me sale abajo de todo el formulario un nuevo checkbox y un punto (.) que me lo está cogiendo de esta línea :

 

<label for="acepta_lopd_form">{l s='He leído y acepto la '} </label> <a href="{$link->getCMSLink(Configuration::get('PS_CONDITIONS_CMS_ID'))}{if Configuration::get('PS_REWRITING_SETTINGS') == 1}?{else}&{/if}content_only=1" class="iframe">{l s='Política de Privacidad y Protección de Datos Personales'}</a><label>{l s='.'}</label>

 

 

Del último

{l s='.'}

Pero no me coge todo lo anterior... , alguien me puede echar un cable??

Share this post


Link to post
Share on other sites

Gracias Jesús, al final como te he comentado por mail el problema estaba en los acentos lo he cambiado con lo que me aparecía en el examdiff en tu fichero y ya me funciona.

 

<p class="checkbox" id="security_informations">
  <input id="customer_privacy" name="customer_privacy" type="checkbox" value="1" {if isset($smarty.post.acepta_lopd_form) AND $smarty.post.acepta_lopd_form == 1}checked="checked"{/if}>
  <label for="acepta_lopd_form">{l s='He leído y acepto la '} </label> <a href="{$link->getCMSLink(Configuration::get('PS_CONDITIONS_CMS_ID'))}{if Configuration::get('PS_REWRITING_SETTINGS') == 1}?{else}&{/if}?content_only=1" class="iframe" target="_blank">{l s='Política de Privacidad y Protección de Datos Personales'}</a><label>{l s='.'} </label>
  </p>

 

Muchas Gracias ;-)

  • Like 1

Share this post


Link to post
Share on other sites

Hola moraira... tienes idea de porque no me aparece para traducir desde el BackOffice el texto de la ventana emergente (...."If you agree to the terms in the Customer....".

 

En cambio si puedo hacerlo con el de la Aceptación de la Política de Privacidad que aparece en el Check.

 

Gracias.

Share this post


Link to post
Share on other sites

Hola,

 

he conseguido añadir el check de LOPD en el módulo de contacto, pero no lo consigo en el de Creación de cuenta. Me pasa lo mismo que a Laurasa39

 

 

El botón de enviar no me hace caso (está desactivado) y de ahí no pasamos.

 

He comentado el modules/blockcustomerprivacy poniendo <!-- -->

y he sido los pasos de jesuscampoy, pero nada.

 

Pero además tengo la sensación de que el checkbox me aparecerá (cuando lo consiga) dentro del formulación de creación de cuenta. Sin embargo, sería conveniente que el checkbox saliera justo en el primer paso, cuando se introduce e-mail y antes de dar a "enviar".

 

Si alguien me puede iluminar...

 

Muchas gracias

 

 

he introducido esto al princpio del archivo:

{literal}
<script type="text/javascript">
	    $('document').ready(function() {
					    // desactivo boton envio
					    $('#account-creation_form').submit(function() {
							  if ($("#customer_privacy").is(":checked")) {
									    $('#submitMessage').hide()
									    return true;
							  } else  {
									    alert ("{/literal}{l s="Debe aceptar la Politica de Privacidad y Proteccion de Datos."}{literal}");
									    $('#submitMessage').show()
									    return false;
							  }
					    });
	    });
</script>
<script type="text/javascript">$('a.iframe').fancybox();</script>
{/literal}

 

 

y después, en la línea 284:

 

  {if isset($newsletter) && $newsletter}
 <p class="checkbox">
  <input type="checkbox" name="newsletter" id="newsletter" value="1" {if isset($smarty.post.newsletter) && $smarty.post.newsletter == '1'}checked="checked"{/if}>
  <label for="newsletter">{l s='Sign up for our newsletter'}</label>
 </p>
 <p class="checkbox">
  <input type="checkbox" name="optin" id="optin" value="1" {if isset($smarty.post.optin) && $smarty.post.optin == '1'}checked="checked"{/if}>
  <label for="optin">{l s='Receive special offers from our partners'}</label>
 </p>
   {/if}



   <p class="checkbox" id="security_informations">
 <input id="customer_privacy" name="customer_privacy" type="checkbox" value="1" {if isset($smarty.post.acepta_lopd_form) AND $smarty.post.acepta_lopd_form == 1}checked="checked"{/if}>
 <label for="acepta_lopd_form">{l s='He leído y acepto la '} </label> <a href="{$link->getCMSLink(Configuration::get('PS_CONDITIONS_CMS_ID'))}{if Configuration::get('PS_REWRITING_SETTINGS') == 1}?{else}&{/if}content_only=1" class="iframe">{l s='Política de Privacidad y Protección de Datos Personales'}</a><label>{l s='.'}</label>
   </p>

Edited by fernavrod (see edit history)

Share this post


Link to post
Share on other sites

Hola a todos,he realizado la modificación para el formulario de contacto y todo funciona de maravilla excepto por un pequeño problema.El checkbox no se ve.en cambio al pulsar enviar (sin nada rellenado), aparece el checkbox y todo funciona correctamente.

 

Gracias de antemano!!

Share this post


Link to post
Share on other sites

Hola a todos, 

 

Alguien me puede explicar como va el tema de las traducciones? Habláis de ellas al principio pero no pone nada en concreto.

 

Un saludo! 

Share this post


Link to post
Share on other sites

Hola abarrena, no esta muy comentado porque es muy sencillo, las modificaciones están hechas para que te aparezcan campos nuevos en el apartado traducciones del Front Office, exactamente en contact-form simplemente vas ahí y traduces los campos nuevos en los idiomas que tengas

Share this post


Link to post
Share on other sites

Alguien tiene codigo o modulo gratuito funcionando bien con la 1.5 para que el usuario se pueda borrar de la web? El único gratuito que encontré es para la 1.4 y el problema que tiene es que se descuadra entera la pagina. 

Share this post


Link to post
Share on other sites

Enhorabuena por los aportes, sin duda excelentes. Respecto al aporte de Jesús, tengo el mismo problema que la compañera: escribo el email para configurar una cuenta pero no pasa a la pantalla siguiente.

 

Gracias por los aportes!!

Edited by gallarin (see edit history)

Share this post


Link to post
Share on other sites

Ok, funciona muy bien.

 

Solo una pregunta, si se trata de un tema comprado y algún el autor lo actualiza, ¿Se perderán los cambios efectuados en contact-form.tpl verdad?

Share this post


Link to post
Share on other sites

Ok, funciona muy bien.

 

Solo una pregunta, si se trata de un tema comprado y algún el autor lo actualiza, ¿Se perderán los cambios efectuados en contact-form.tpl verdad?

 

Hola,

 

Yo soy un novato total, si el autor actualiza la plantilla, te machacara quizás todos los ficheros, pero como es lógico, haz una copia antes del fichero.

Edited by Feliz Garcia (see edit history)

Share this post


Link to post
Share on other sites

Para el que esté interesado.

 

He realizado el mismo cambio al formulario de creación de usuario.

 

Para esto, he eliminado el bloque de privacidad que viene por defecto en prestashop comentando el código del fichero blockcustomerprivacy.tpl, que se encuentra en el directorio modules/blockcustomerprivacy.

 

En el fichero authentication.tpl de nuestro tema, he realizado los mismo cambios que sugería moraira.

 

En el inicio del fichero, he añadido el siguiente bloque:

 

{literal}
<script type="text/javascript">
	    $('document').ready(function() {
			    // desactivo boton envio
			    $('#account-creation_form').submit(function() {
				  if ($("#customer_privacy").is(":checked")) {
					    $('#submitMessage').hide()
					    return true; 
				  } else  {
					    alert ("{/literal}{l s="Debe aceptar la Politica de Privacidad y Proteccion de Datos."}{literal}");
					    $('#submitMessage').show()
					    return false;
				  }
			    });
	    });
</script>
<script type="text/javascript">$('a.iframe').fancybox();</script>
{/literal}
Hay algunas diferencias con el formulario de contacto: el id del formulario es account-creation_form en vez de form_contacto y el id del checkbox es customer_privacy en lugar de acepta_lopd_form.

 

Si la línea de la llamada a fancybox

 

<script type="text/javascript">$('a.iframe').fancybox();</script>
la definía dentro del formulario, se producía algún error y se mostraba la página en blanco. Fuera del formulario me funciona perfectamente.

 

Por último, he añadido el siguiente código

 

  <p class="checkbox" id="security_informations">
   <input id="customer_privacy" name="customer_privacy" type="checkbox" value="1" {if isset($smarty.post.acepta_lopd_form) AND $smarty.post.acepta_lopd_form == 1}checked="checked"{/if}>
   <label for="acepta_lopd_form">{l s='He leído y acepto la '} </label> <a href="{$link->getCMSLink(Configuration::get('PS_CONDITIONS_CMS_ID'))}{if Configuration::get('PS_REWRITING_SETTINGS') == 1}?{else}&{/if}content_only=1" class="iframe">{l s='Política de Privacidad y Protección de Datos Personales'}</a><label>{l s='.'}</label>
  </p>
al final del formulario account_creation_form. Es decir, justo detrás de este código:

 

  {if $newsletter}
  <p class="checkbox" >
   <input type="checkbox" name="newsletter" id="newsletter" value="1" {if isset($smarty.post.newsletter) AND $smarty.post.newsletter == 1} checked="checked"{/if} />
   <label for="newsletter">{l s='Sign up for our newsletter!'}</label>
  </p>
  <p class="checkbox" >
   <input type="checkbox"name="optin" id="optin" value="1" {if isset($smarty.post.optin) AND $smarty.post.optin == 1} checked="checked"{/if} />
   <label for="optin">{l s='Receive special offers from our partners!'}</label>
  </p>
  {/if}
Muchas gracias de nuevo moraira!

Un saludo!

 

Una pregunta. ¿Que diferencia hay entre esta modificación y usar el bloque de privacidad que trae prestashop por defecto?, Igual estoy preguntando una chorrada pero es que no acabo de ver las diferencias, disculpad mi ignorancia...

Share this post


Link to post
Share on other sites

Hola, espero que me podáis ayudar con el siguiente problema.

 

No se me muestra el contenido del CMS en la ventana emergente (fancybox) es decir se queda en blanco, y me he dado cuenta que es debido a que tengo activado el cifrado SSL, si lo desactivo funciona correctamente.

 

Sabéis como podría solventar este problema manteniendo activo el cifrado ssl?

 

Por otro lado he probado de abrir el contenido del CMS dentro de la misma ventana y en una nueva y funciona correctamente, solo se bloque al utilizar una ventana emergente.

 

Gracias por adelantado y un saludos!!!

 

 

p.d - Uso prestashop 1.5.4.1

Share this post


Link to post
Share on other sites

Hola a todos,
 
antes de nada agradecer la aportacion a su creador.
 
He hecho los cambios que se indican en el 1º post, pero se me queda la pantalla en blanco.
 
Os dejo el archivo .tpl con los cambios.

 

Por cierto, utilizo la version 1.5.6.0
 
 

<h1>{l s='Customer service'} - {if isset($customerThread) && $customerThread}{l s='Your reply'}{else}{l s='Contact us'}{/if}</h1>

<!-- adecuacion a la LOPD con check -->
<script type="text/javascript">
	$('document').ready(function() {
		// desactivo boton envio
		$('#formcontacto').submit(function() {
		  if ($("#acepta_lopd_form").is(":checked")) {
			$('#submitMessage').hide()
			return true;  
		  } else  {
			alert ("{/literal}{l s="If you agree to the terms in the Customer Data Privacy message, please click the check box below."}{literal}");
			$('#submitMessage').show()
			return false;
		  }
		});
	});
</script>
<!-- FIN adecuacion a la LOPD con check -->

{if isset($confirmation)}
	<p>{l s='Your message has been successfully sent to our team.'}</p>
	<ul class="footer_links">
		<li><a href="{$base_dir}"><img class="icon" alt="" src="{$img_dir}icon/home.gif"/></a><a href="{$base_dir}">{l s='Home'}</a></li>
	</ul>
{elseif isset($alreadySent)}
	<p>{l s='Your message has already been sent.'}</p>
	<ul class="footer_links">
		<li><a href="{$base_dir}"><img class="icon" alt="" src="{$img_dir}icon/home.gif"/></a><a href="{$base_dir}">{l s='Home'}</a></li>
	</ul>
{else}
	<p class="bold">{l s='For questions about an order or for more information about our products'}.</p>
	{include file="$tpl_dir./errors.tpl"}
	 <form action="{$request_uri|escape:'htmlall':'UTF-8'}" id="formcontacto" name="formcontacto" method="post" class="std" enctype="multipart/form-data">
		<fieldset>
			<h3>{l s='send a message'}</h3>
			<p class="select">
				<label for="id_contact">{l s='Subject Heading'}</label>
			{if isset($customerThread.id_contact)}
				{foreach from=$contacts item=contact}
					{if $contact.id_contact == $customerThread.id_contact}
						<input type="text" id="contact_name" name="contact_name" value="{$contact.name|escape:'htmlall':'UTF-8'}" readonly="readonly" />
						<input type="hidden" name="id_contact" value="{$contact.id_contact}" />
					{/if}
				{/foreach}
			</p>
			{else}
				<select id="id_contact" name="id_contact" onchange="showElemFromSelect('id_contact', 'desc_contact')">
					<option value="0">{l s='-- Choose --'}</option>
				{foreach from=$contacts item=contact}
					<option value="{$contact.id_contact|intval}" {if isset($smarty.post.id_contact) && $smarty.post.id_contact == $contact.id_contact}selected="selected"{/if}>{$contact.name|escape:'htmlall':'UTF-8'}</option>
				{/foreach}
				</select>
			</p>
			<p id="desc_contact0" class="desc_contact"> </p>
				{foreach from=$contacts item=contact}
					<p id="desc_contact{$contact.id_contact|intval}" class="desc_contact" style="display:none;">
						{$contact.description|escape:'htmlall':'UTF-8'}
					</p>
				{/foreach}
			{/if}
			<p class="text">
				<label for="email">{l s='Email address'}</label>
				{if isset($customerThread.email)}
					<input type="text" id="email" name="from" value="{$customerThread.email|escape:'htmlall':'UTF-8'}" readonly="readonly" />
				{else}
					<input type="text" id="email" name="from" value="{$email|escape:'htmlall':'UTF-8'}" />
				{/if}
			</p>
		{if !$PS_CATALOG_MODE}
			{if (!isset($customerThread.id_order) || $customerThread.id_order > 0)}
			<p class="text select">
				<label for="id_order">{l s='Order reference'}</label>
				{if !isset($customerThread.id_order) && isset($isLogged) && $isLogged == 1}
					<select name="id_order" >
						<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:'htmlall':'UTF-8'}</option>
						{/foreach}
					</select>
				{elseif !isset($customerThread.id_order) && !isset($isLogged)}
					<input 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|intval}{/if}{/if}" />
				{elseif $customerThread.id_order|intval > 0}
					<input type="text" name="id_order" id="id_order" value="{$customerThread.id_order|intval}" readonly="readonly" />
				{/if}
			</p>
			{/if}
			{if isset($isLogged) && $isLogged}
			<p class="text select">
			<label for="id_product">{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="product_select" style="width:300px;{if !$smarty.foreach.products.first} 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:'htmlall':'UTF-8'}</option>
						{/foreach}
					</select>
				{/foreach}
				{elseif $customerThread.id_product > 0}
					<input type="text" name="id_product" id="id_product" value="{$customerThread.id_product|intval}" readonly="readonly" />
				{/if}
			</p>
			{/if}
		{/if}
		{if $fileupload == 1}
			<p class="text">
			<label for="fileUpload">{l s='Attach File'}</label>
				<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
				<input type="file" name="fileUpload" id="fileUpload" />
			</p>
		{/if}
		<p class="textarea">
			<label for="message">{l s='Message'}</label>
			 <textarea id="message" name="message" rows="15" cols="10">
             	{if isset($message)}{$message|escape:'htmlall':'UTF-8'|stripslashes}
                {/if}
             </textarea>
		</p>        
        <!-- adecuacion a la LOPD con check -->
        <p class="checkbox" id="security_informations">
	 <input id="acepta_lopd_form" type="checkbox" value="1" {if isset($smarty.post.acepta_lopd_form) AND $smarty.post.acepta_lopd_form == 1}checked="checked"{/if}  name="acepta_lopd_form">
	  <label for="acepta_lopd_form">{l s='I agree to the'} </label> <a href="{$link->getCMSLink(2)}{if Configuration::get('PS_REWRITING_SETTINGS') == 1}?{else}&{/if}content_only=1" class="iframe">{l s='Privacy Policy'}</a> {l s='and will adhere to them unconditionally.'}
	</p>
<script type="text/javascript">$('a.iframe').fancybox();</script>

        <!-- FIN adecuacion a la LOPD con check -->        
		<p class="submit">
			<input type="submit" name="submitMessage" id="submitMessage" value="{l s='Send'}" class="button_large" />
		</p>
	</fieldset>
</form>
{/if}
Edited by durdi (see edit history)

Share this post


Link to post
Share on other sites

Hola:

 

Tengo una duda, no se si será p uso Mac, pero el Fancybox no me funciona. He hecho todas las modificaciones posibles y nada.

me recarga la página y me muestra la del cms correcta, pero no en ventana emergente

 

No me funciona el Fancy box

 

Alguien tiene una explicacio/solucion ?

 

gracias

 

 

Edito:

 

He instalado tb el user loginregister de Kik-off q tambien usa emergentes, y tampoco me funciona.

Edited by nonocampa (see edit history)

Share this post


Link to post
Share on other sites

¿No obliga tambien la LOPD a dejar eliminar la cuenta cliente por el mismo cliente si lo desea o con dejar cambiar los datos personales de cliente ya vale?

Share this post


Link to post
Share on other sites

Ya sé que es lo que pasaba y por qué me enviaba los mensajes estuviera o nó aceptada la casilla de verificación. Repasando el código, me falta una "I" en Id=formacontacto. Una vez rectificado, funciona perfectamente.

Gracias

 

 <form action="{$request_uri|escape:'htmlall':'UTF-8'}" id="formcontacto" name="formcontacto" method="post" class="std" enctype="multipart/form-data">

Share this post


Link to post
Share on other sites

Ya sé que es lo que pasaba y por qué me enviaba los mensajes estuviera o nó aceptada la casilla de verificación. Repasando el código, me falta una "I" en Id=formacontacto. Una vez rectificado, funciona perfectamente.

Gracias

 

 <form action="{$request_uri|escape:'htmlall':'UTF-8'}" id="formcontacto" name="formcontacto" method="post" class="std" enctype="multipart/form-data">

Puedes poner tu contac-form.tlp para que ojearlo? a mi sigue sin funcionarme....gracias

Share this post


Link to post
Share on other sites

Para Ortu

Claro. Ten en cuenta que tambien hice algunas modificaciones para eliminar la necesidad de elegir un tema para contactar con la tienda. es decir mi formulario de contacto no tiene esa entrada.

{*
* 2007-2012 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 license@prestashop.com 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 <contact@prestashop.com>
*  @copyright  2007-2012 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='Contact'}{/capture}
{include file="$tpl_dir./breadcrumb.tpl"}

<h1>{l s='Customer Service'} - {if isset($customerThread) && $customerThread}{l s='Your reply'}{else}{l s='Contact us'}{/if}</h1>

<!-- adecuacion a la LOPD con check -->
{literal}
<script type="text/javascript">
	$('document').ready(function() {
		// desactivo boton envio
		$('#formcontacto').submit(function() {
		  if ($("#acepta_lopd_form").is(":checked")) {
			$('#submitMessage').hide()
			return true;  
		  } else  {
			alert ("{/literal}{l s="If you agree to the terms in the Customer Data Privacy message, please click the check box below."}{literal}");
			$('#submitMessage').show()
			return false;
		  }
		});
	});
</script>
{/literal}
<!-- FIN adecuacion a la LOPD con check -->

{if isset($confirmation)}
	<p>{l s='Your message has been successfully sent to our team.'}</p>
	<ul class="footer_links">
		<li><a href="{$base_dir}"><img class="icon" alt="" src="{$img_dir}icon/home.gif"/></a><a href="{$base_dir}">{l s='Home'}</a></li>
	</ul>
{elseif isset($alreadySent)}
	<p>{l s='Your message has already been sent.'}</p>
	<ul class="footer_links">
		<li><a href="{$base_dir}"><img class="icon" alt="" src="{$img_dir}icon/home.gif"/></a><a href="{$base_dir}">{l s='Home'}</a></li>
	</ul>
{else}
	<p class="bold">{l s='For questions about an order or for more information about our products'}.</p>
	{include file="$tpl_dir./errors.tpl"}
	<form action="{$request_uri|escape:'htmlall':'UTF-8'}"id="formcontacto" name="formcontacto"  method="post" class="std" enctype="multipart/form-data">
		<fieldset>
			<h3>{l s='Send a message'}</h3>
			{*<p class="select">
				<label for="id_contact">{l s='Subject Heading'}</label>
			{if isset($customerThread.id_contact)}
				{foreach from=$contacts item=contact}
					{if $contact.id_contact == $customerThread.id_contact}
						<input type="text" id="contact_name" name="contact_name" value="{$contact.name|escape:'htmlall':'UTF-8'}" readonly="readonly" />
						<input type="hidden" name="id_contact" value="{$contact.id_contact}" />
					{/if}
				{/foreach}
			</p>
			{else}
				<select id="id_contact" name="id_contact" onchange="showElemFromSelect('id_contact', 'desc_contact')">
					<option value="0">{l s='-- Choose --'}</option>
				{foreach from=$contacts item=contact}
					<option value="{$contact.id_contact|intval}" {if isset($smarty.post.id_contact) && $smarty.post.id_contact == $contact.id_contact}selected="selected"{/if}>{$contact.name|escape:'htmlall':'UTF-8'}</option>
				{/foreach}
				</select>
			</p>
			<p id="desc_contact0" class="desc_contact"> </p>
				{foreach from=$contacts item=contact}
					<p id="desc_contact{$contact.id_contact|intval}" class="desc_contact" style="display:none;">
						{$contact.description|escape:'htmlall':'UTF-8'}
					</p>
				{/foreach}
			{/if} *}
            <input type="hidden" name="id_contact" value="2" />
			<p class="text">
				<label for="email">{l s='E-mail address'}</label>
				{if isset($customerThread.email)}
					<input type="text" id="email" name="from" value="{$customerThread.email|escape:'htmlall':'UTF-8'}" readonly="readonly" />
				{else}
					<input type="text" id="email" name="from" value="{$email|escape:'htmlall':'UTF-8'}" />
				{/if}
			</p>
		{if !$PS_CATALOG_MODE}
			{if (!isset($customerThread.id_order) || $customerThread.id_order > 0)}
			<p class="text select">
				<label for="id_order">{l s='Order Reference'}</label>
				{if !isset($customerThread.id_order) && isset($isLogged) && $isLogged == 1}
					<select name="id_order" >
						<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:'htmlall':'UTF-8'}</option>
						{/foreach}
					</select>
				{elseif !isset($customerThread.id_order) && !isset($isLogged)}
					<input type="text" name="id_order" id="id_order" value="{if isset($customerThread.id_order) && $customerThread.id_order > 0}{$customerThread.id_order|intval}{else}{if isset($smarty.post.id_order)}{$smarty.post.id_order|intval}{/if}{/if}" />
				{elseif $customerThread.id_order > 0}
					<input type="text" name="id_order" id="id_order" value="{$customerThread.id_order|intval}" readonly="readonly" />
				{/if}
			</p>
			{/if}
			{if isset($isLogged) && $isLogged}
			<p class="text select">
			<label for="id_product">{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="product_select" style="width:300px;{if !$smarty.foreach.products.first} 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:'htmlall':'UTF-8'}</option>
						{/foreach}
					</select>
				{/foreach}
				{elseif $customerThread.id_product > 0}
					<input type="text" name="id_product" id="id_product" value="{$customerThread.id_product|intval}" readonly="readonly" />
				{/if}
			</p>
			{/if}
		{/if}
		{if $fileupload == 1}
			<p class="text">
			<label for="fileUpload">{l s='Attach File'}</label>
				<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
				<input type="file" name="fileUpload" id="fileUpload" />
			</p>
		{/if}
		<p class="textarea">
			<label for="message">{l s='Message'}</label>
			 <textarea id="message" name="message" rows="15" cols="10">{if isset($message)}{$message|escape:'htmlall':'UTF-8'|stripslashes}{/if}</textarea>
		</p>
           <p class="checkbox" id="security_informations">

	 <input id="acepta_lopd_form" type="checkbox" value="1" {if isset($smarty.post.acepta_lopd_form) AND $smarty.post.acepta_lopd_form == 1}checked="checked"{/if}  name="acepta_lopd_form">

	  <label for="acepta_lopd_form">{l s='I agree to the'} </label> <a href="{$link->getCMSLink(7)}{if Configuration::get('PS_REWRITING_SETTINGS') == 1}?{else}&{/if}content_only=1" class="iframe" target="_blank">{l s='Privacy Policy'}</a> {l s='and will adhere to them unconditionally.'}

  </p>
		<p class="submit">
			<input type="submit" name="submitMessage" id="submitMessage" value="{l s='Send'}" class="button_large" onclick="$(this).hide();" />
		</p>
	</fieldset>
</form>
{/if}

Bueno espero que te sirva

Share this post


Link to post
Share on other sites

Para Ortu

Claro. Ten en cuenta que tambien hice algunas modificaciones para eliminar la necesidad de elegir un tema para contactar con la tienda. es decir mi formulario de contacto no tiene esa entrada.


Bueno espero que te sirva

Hay que hacer algún cambio en algún otro fichero? ni poniendo el tuyo igual me funciona el checkbox.....gracias de todas formas.

Share this post


Link to post
Share on other sites

Hola. Cómo se puede adaptar ésto a la nueva versión 1.6?

He intentado hacer lo mismo, pero no es igual, además la línea de código que hay que cambiar no es la misma.

 

Mil gracias.

Share this post


Link to post
Share on other sites

Hola. Cómo se puede adaptar ésto a la nueva versión 1.6?

He intentado hacer lo mismo, pero no es igual, además la línea de código que hay que cambiar no es la misma.

 

Mil gracias.

 

Me sumo a la pregunta. Yo también lo he intentado y no me sale nada.

Share this post


Link to post
Share on other sites

Me sumo a la pregunta. Yo también lo he intentado y no me sale nada.

 

Chicos, yo lo he conseguido sin problemas, con la versión 1.6

Volved a intentar, porque funciona!!!

:)

Share this post


Link to post
Share on other sites

Buenas a todos. Lo primero es daros las gracias por esta info. Hace un mes lo instalé para probarlo y funciona de maravilla.

 

Ahora que lo estoy metiendo en el resto de páginas donde hay formularios de contacto y me acabo de dar cuenta de un problema.

 

Es el siguiente: aunque no esté marcada la casilla de verificación, si metes los datos y das al intro  (en lugar de pulsar sobre el botón correspondiente), te muestra el mensaje de que es necesario marcar esta casilla de verificación, pero te pasa a la siguiente pantalla.

 

Os pasa lo mismo? A alguién se le ocurre alguna solución?

 

Os dejo el enlace por si queréis echar un vistazo:

 

http://farmacia-ciudadreal.es/index.php?controller=authentication&back=identity#account-creation

 

Mil gracias.

 

 

Acabo de encontrar la solución a la duda que os comentaba. Es mucho más sencillo de lo que parecía. La solución -la añado por si a alguien la necesita- consiste en meter el siguiente script que anula el intro:

 

<script>
    function pulsar(e) {
    tecla = (document.all) ? e.keyCode :e.which;
    return (tecla!=13);
    }
</script>

 

 

A continuación dentro la línea de código <form action="... /> añadó:

 

onkeypress="return pulsar(event)"

 

Gracias de todas formas.

Edited by LfraguaD (see edit history)

Share this post


Link to post
Share on other sites

En la versión 1.6.0.6 funciona correctamente solo debeis cambias esta línea en contact-form.tpl para mantener el formato de la 1.6.

 

Cambiar esto:

<form action="{$request_uri|escape:'htmlall':'UTF-8'}" id="formcontacto" name="formcontacto" method="post" class="std" enctype="multipart/form-data">

por esto:

<form action="{$request_uri|escape:'htmlall':'UTF-8'}" id="formcontacto" name="formcontacto" method="post" class="contact-form-box" enctype="multipart/form-data">

un saludo

 

 

 

-----------------------------------------------------------

 

www.marenostrumgourmet.com

  • Like 1

Share this post


Link to post
Share on other sites

Hola! Yo estoy en la versión 1.5.6. y me funciona bien a excepción de una cosa: no me abre la ventana emergente, me muestra el contenido del cms en la misma página, con lo que me obliga a volver atrás para volver al formulario de contacto. Otra opción sería abrir el enlace con target=_blank y olvidarme del iframe, pero lo prefiero con la ventana emergente.

 

¿Por qué me da problemas el fancybox? ¿alguien pude ayudarme?

Share this post


Link to post
Share on other sites

hola TictacSoluciones, disculpa que llevo una temporada con bastante lio (..y que bien...)

 

en 1.5.6.2 cambio un poco fancybox, justo despues de donde hemos puesto el check, en lugar de esta linea:

<script type="text/javascript">$('a.iframe').fancybox();</script>

prueba a poner esto:

<script type="text/javascript">
$(document).ready(function() {
      $("a.iframe").fancybox({
          'type' : 'iframe',
          'width':900,
          'height':600
      });
  });
</script>

Share this post


Link to post
Share on other sites

 

hola TictacSoluciones, disculpa que llevo una temporada con bastante lio (..y que bien...)

 

en 1.5.6.2 cambio un poco fancybox, justo despues de donde hemos puesto el check, en lugar de esta linea:

<script type="text/javascript">$('a.iframe').fancybox();</script>

prueba a poner esto:

<script type="text/javascript">
$(document).ready(function() {
      $("a.iframe").fancybox({
          'type' : 'iframe',
          'width':900,
          'height':600
      });
  });
</script>

¡Perfecto! ¡Esto funciona! ¡muchas gracias!

Share this post


Link to post
Share on other sites

Hola, estoy igual que ORTU, me envia el mensaje sin marcar la casilla :-(((

 

Por cierto el {literal} y {/literal} ¿hay que ponerlo antes y despues del script?

 

Gracias.

Share this post


Link to post
Share on other sites

Ya arregle una parte :-)

Ahora funciona la casilla de LOPD, pero con la ventana emergente tengo un problema, si esta activado un modulo que abre ventanas en la pantalla de inicio (Displays modal window at homepage v1 - by PrestaShopModul.Com) funciona perfectamente, pero si lo desativo la ventana la abre sobre si misma.

Tendre que seguir buscando :-)

El tema de la LOPD lo solucione activando un modulo que permite mostrar un mapa en la pantalla de contacto.

 

Un saludo.

Share this post


Link to post
Share on other sites

Hola a todos,

 

Y como podria poner un check en el detalle del pedido, al lado derecho de cada uno de los productos listados y guardar en una nueva tabla en la base de datos, ya que esto seria para tener un control de entrega, el usuario marcaria esas casillas si se le entrgo todo el producto y sino pondria una observación en una columna al lado derecho del check.

Share this post


Link to post
Share on other sites

Buenas a todos. Lo primero es daros las gracias por esta info. Hace un mes lo instalé para probarlo y funciona de maravilla.

 

Ahora que lo estoy metiendo en el resto de páginas donde hay formularios de contacto y me acabo de dar cuenta de un problema.

 

Es el siguiente: aunque no esté marcada la casilla de verificación, si metes los datos y das al intro  (en lugar de pulsar sobre el botón correspondiente), te muestra el mensaje de que es necesario marcar esta casilla de verificación, pero te pasa a la siguiente pantalla.

 

Os pasa lo mismo? A alguién se le ocurre alguna solución?

 

Os dejo el enlace por si queréis echar un vistazo:

 

http://farmacia-ciudadreal.es/index.php?controller=authentication&back=identity#account-creation

 

Mil gracias.

 

 

Acabo de encontrar la solución a la duda que os comentaba. Es mucho más sencillo de lo que parecía. La solución -la añado por si a alguien la necesita- consiste en meter el siguiente script que anula el intro:

 

<script>

    function pulsar(e) {

    tecla = (document.all) ? e.keyCode :e.which;

    return (tecla!=13);

    }

</script>

 

 

A continuación dentro la línea de código <form action="... /> añadó:

 

onkeypress="return pulsar(event)"

 

Gracias de todas formas.

 

Buenas tardes LfraguaD,

 

He visto tu página y la verdad es que funciona y se ve genial.

 

Yo también soy de CR y estoy intentando modificar el código para cumplir con la LOPD, pero una vez realizados los cambios, en el front office no veo ninguna diferencia y ni rastro de la casilla de verificación.

 

Podéis echarme una mano con esto?

 

Os adjunto el código del contac-form.tpl por si detectáis el fallo.

{literal}
<script type="text/javascript">
	$('document').ready(function() {
		// desactivo boton envio
		$('#formcontacto').submit(function() {
		  if ($("#acepta_lopd_form").is(":checked")) {
			$('#submitMessage').hide()
			return true;  
		  } else  {
			alert ("{/literal}{l s="If you agree to the terms in the Customer Data Privacy message, please click the check box below."}{literal}");
			$('#submitMessage').show()
			return false;
		  }
		});
	});
</script>
{/literal}
{*
* 2007-2014 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 license@prestashop.com 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 <contact@prestashop.com>
*  @copyright  2007-2014 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='Contact'}{/capture}
<h1 class="page-heading bottom-indent">
    {l s='Customer service'} - {if isset($customerThread) && $customerThread}{l s='Your reply'}{else}{l s='Contact us'}{/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="{$base_dir}">
                <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="{$base_dir}">
                <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|escape:'htmlall':'UTF-8'}" id="formcontacto" name="formcontacto" 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-4">
                <div class="form-group selector1">
                    <label for="id_contact">{l s='Subject Heading'}</label>
                {if isset($customerThread.id_contact)}
                        {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}" />
                            {/if}
                        {/foreach}
                {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"> </p>
                    {foreach from=$contacts item=contact}
                        <p id="desc_contact{$contact.id_contact|intval}" class="desc_contact contact-title" style="display:none;">
                            <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|intval}{/if}{/if}" />
                            {elseif $customerThread.id_order|intval > 0}
                                <input class="form-control grey" type="text" name="id_order" id="id_order" value="{$customerThread.id_order|intval}" 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 class="form-control grey" type="text" 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="2000000" />
                        <input type="file" name="fileUpload" id="fileUpload" class="form-control" />
                    </p>
                {/if}
            </div>
            <div class="col-xs-12 col-md-8">
                <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>
		
		<p class="checkbox" id="security_informations">
	 <input id="acepta_lopd_form" type="checkbox" value="1" {if isset($smarty.post.acepta_lopd_form) AND $smarty.post.acepta_lopd_form == 1}checked="checked"{/if}  name="acepta_lopd_form">
	  <label for="acepta_lopd_form">{l s='I agree to the'} </label> <a href="{$link->getCMSLink(1)}{if Configuration::get('PS_REWRITING_SETTINGS') == 1}?{else}&{/if}content_only=1" class="iframe">{l s='Privacy Policy'}</a> {l s='and will adhere to them unconditionally.'}
	</p>
<script type="text/javascript">$('a.iframe').fancybox();</script>
		
        <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}

Gracias de antemano,

  • Like 1

Share this post


Link to post
Share on other sites

Buenas tardes LfraguaD,

 

He visto tu página y la verdad es que funciona y se ve genial.

 

Yo también soy de CR y estoy intentando modificar el código para cumplir con la LOPD, pero una vez realizados los cambios, en el front office no veo ninguna diferencia y ni rastro de la casilla de verificación.

 

Podéis echarme una mano con esto?

 

Os adjunto el código del contac-form.tpl por si detectáis el fallo.

{literal}
<script type="text/javascript">
	$('document').ready(function() {
		// desactivo boton envio
		$('#formcontacto').submit(function() {
		  if ($("#acepta_lopd_form").is(":checked")) {
..
..
..

ntact_fileButtonHtml'}{l s='Choose File' js=1}{/addJsDefL}

Gracias de antemano,

 

Ya he detectado el error. Estaba modificando una cosa y buscando los cambios en otro sitio. Normal que no lo encontrara.

 

Perdón y gracias por este aporte.

Share this post


Link to post
Share on other sites

Hola,

 

Alguien puede decirme como evitar que en la ventana emergente (la que avisa de que la casilla de verificación debe estar marcada) aparezcan símbolos debido a los acentos?

 

Otra cosa que quiero cambiar y no sé como hacerlo, es que cuando le des a "Política de Privacidad" el link se abra en otra pestaña, en vez de en la misma, y que se vea con el formato de la web.

 

Gracias de antemano,

 

 

Share this post


Link to post
Share on other sites

Ya he detectado el error. Estaba modificando una cosa y buscando los cambios en otro sitio. Normal que no lo encontrara.

 

Perdón y gracias por este aporte.

Hola, yo he seguido lo que habeis puesto por aquí y no consigo que salga nada en mi pagina de prueba. os pongo lo que he hecho en el archivo contact-form:

 

<script type="text/javascript">
    $('document').ready(function() {
        // desactivo boton envio
        $('#formcontacto').submit(function() {
          if ($("#acepta_lopd_form").is(":checked")) {
            $('#submitMessage').hide()
            return true;  
          } else  {
            alert ("{/literal}{l s="If you agree to the terms in the Customer Data Privacy message, please click the check box below."}{literal}");
            $('#submitMessage').show()
            return false;
          }
        });
    });
</script>
{/literal}
{*
* 2007-2014 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:
* 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 license@prestashop.com 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 <contact@prestashop.com>
*  @copyright  2007-2014 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='Contact'}{/capture}
<h1 class="page-heading bottom-indent">
    {l s='Customer service'} - {if isset($customerThread) && $customerThread}{l s='Your reply'}{else}{l s='Contact us'}{/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="{$base_dir}">
                <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="{$base_dir}">
                <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|escape:'htmlall':'UTF-8'}" id="formcontacto" name="formcontacto" 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-4">
                <div class="form-group selector1">
                    <label for="id_contact">{l s='Subject Heading'}</label>
                {if isset($customerThread.id_contact)}
                        {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=