Formulario de contacto en los contenidos en Prestashop 1.7

Gracias al nuevo sistema de widget que nos ofrece Prestashop 1.7, podemos mostrar el formulario de contacto que trae por defecto Prestashop 1.7 en las páginas de contenidos que tengamos en la pestaña Diseño -> Páginas 

La instrucción clave es la siguiente:

{widget name="contactform"}

Si queremos mostrar el formulario de contacto en las páginas de contenidos, editamos el fichero:

/themes/classic/templates/cms/page.tpl

Y añadimos la instrucción del widget, por ejemplo debajo de:

{$cms.content nofilter}

De esta manera se mostrara debajo de los contenidos.  ($cms.content imprime el contenido (campo contenido/descripción) de las páginas que hemos metido en la pestaña Diseño -> Páginas en los CMS)

En definitiva, lo dejaríamos así:

{$cms.content nofilter}
{widget name="contactform"}

¿Cómo podemos limitarlo para que solo se muestre en una de las páginas de contenidos y no en todas?

Tenemos varias opciones, una de ellas es hacer una comparación el ID del CMS donde estamos situados.

Dejándolo el código del widget así:

{if $cms.id == "X" }
{widget name="contactform"}
{/if}

En X, colocamos el ID del CMS (Contenido) que hemos creado en la pestaña Diseño -> Páginas.

ID CMS

En nuestro ejemplo, vamos a colocar el ID 3, dejándolo así:

{if $cms.id == "3" }
{widget name="contactform"}
{/if}
Widget formulario de contacto en Prestashop 1.7

Documento construido bajo Prestashop 1.7.1.2

Por último y no menos importante, recordar limpiar la cache en la pestaña Parámetros Avanzados -> Rendimiento

Borrar cache Prestashop 1.7

Y ahora dejo una pregunta abierta, ¿Podremos hacer esto en futuras variantes de PrestaShop 1.7, sin necesidad de tocar código?

Extensión de archivo incorrecta en Prestashop 1.7

A finales del año pasado, estuvimos comentando brevemente la sección de contacto en Prestashop 1.7.

En esta ocasión, vamos a hablar, por ejemplo, de que ocurre cuando un cliente sube un documento con extensión *.odt. en el formulario de contacto.

Simplemente, nos saldrá un error que dice “Extensión de archivo incorrecta“.

Extensión de archivo incorrecta en el formulario de contacto en Prestashop 1.7
Extensión de archivo incorrecta en el formulario de contacto en Prestashop 1.7

Si vamos al fichero:

/modules/contactform/contactform.php

Veremos que dentro de la función “public function sendMessage()” tenemos la siguiente línea de código:

$extension = array('.txt', '.rtf', '.doc', '.docx', '.pdf', '.zip', '.png', '.jpeg', '.gif', '.jpg');

Para añadir la extensión “.odt“, podríamos añadirla dentro del array

$extension = array('.txt', '.rtf', '.doc', '.docx', '.pdf', '.zip', '.png', '.jpeg', '.gif', '.jpg', '.odt');
Añadida nueva extensión en el formulario de contacto en Prestashop 1.7

¿Al intentar subir el fichero con extensión *.odt en el formulario de contacto me aparecerá el error de “Extensión de archivo incorrecta“?

En principio no, pero te en cuenta dos aspectos:

  • Siempre que puedas, es altamente recomendable hacer un override y evitar en todo lo posible editar los ficheros originales (en este caso lo ideal seria hacer un override de la clase del módulo y sobreescribir la función sendMessage)
  • ¿Cómo se hace un override de una clase de un módulo en Prestashop 1.7? -> Buscar en Google 🙂

Por cierto, espero que, en un futuro, exista la opción de permitir nuevas extensiones a la hora de subir los ficheros desde el panel de administración en el panel de Prestashop 1.7

Documento construido bajo Prestashop 1.7.1.2

Guía – Administrar contactos del formulario de contacto en Prestashop 1.5

Por defecto, cuando accedemos al formulario de contacto, nos aparece un desplegable que dice Tema (independientemente de las otras opciones que aparecen), y dentro del desplegable aparecen dos opciones:

Service client y Webmaster, que en realidad son dos opciones que hay definidas en el panel de administración, en las cuales podemos definir un email dependiendo de la opción que vayamos a seleccionar.

En realidad, no está limitado a dos opciones, podríamos incluir diversas opciones sin ningún problema.

Para administrar las opciones que nos aparecen en “Tema”, debemos ir a la pestaña Clientes -> Contacto del panel de administración.

Continúa leyendo Guía – Administrar contactos del formulario de contacto en Prestashop 1.5