Deshabilitar librería HTMLPurifier en Prestashop 1.6 y 1.7

La librería HTMLPurifier, en determinadas situaciones no nos deja escribir código adicional en el editor de textos en Prestashop, ya que hace una validación del código filtrando y limpiando, y por ejemplo existe la posibilidad de que no nos permita introducir un simple script en el editor de textos.

¿Cómo podemos desactivarla en Prestashop 1.6?

En Prestashop 1.6, la desactivamos en la pestaña Preferencias -> Configuración

Deshabilitar libreria HTMLPurifier en Prestashop 1.6
Deshabilitar libreria HTMLPurifier en Prestashop 1.6

Si señalamos “Usar la librería HTMLPurifier -> NO“, queda desactivada.

¿Cómo podemos desactivarla en Prestashop 1.7?

Pestaña Parámetros Avanzados -> Configuración

Pestaña de la tienda-> Configuración
Desactivar HTMLPurifier en Prestashop 1.7

No puedo recuperar la contraseña del panel de administración en Prestashop

Un aporte que en su momento encontré en el blog de webbax.ch/blog/ sobre el 2011/12 y que recomendé usarlo a muchos usuarios en el  foro  (creo que merece la pena hacerle una reseña al aporte a pesar de los años que han pasado..)

¿Has perdido la contraseña de acceso al panel de administración en Prestashop y no te funciona la opción de recuperarla?

No puedo acceder al panel de administración en Prestashop

Pues todo tiene solución, menos el coche de Fernando Alonso.

¿Se instala como un módulo?

No, no es un módulo…

Es un aporte que lo tenemos que subir al directorio raíz de la tienda, y descomprimirlo 🙂

El aporte se llama “password.zip“, esta carpeta tiene que estar descomprimida en el directorio raíz de la tienda.

Aporte descomprimido en el directorio raiz de Prestashop

Dentro del directorio, fijaros que está un fichero llamado “index.php” y otro llamado “logo.jpg


Contenido del directorio password en Prestashop

Muy bien, y ahora ¿Qué hacemos?

Accedemos a nuestra web, mediante la siguiente dirección: urldetuweb.com/password/, donde podremos cambiar la contraseña de acceso al panel de administración de nuestra tienda.

Pantalla de acceso para crear una nueva contraseña en el panel de administración en Prestashop

Continúa leyendo No puedo recuperar la contraseña del panel de administración en Prestashop

Redireccionar al cliente cuando cierra sesión en Prestashop

Redireccionar al cliente al cerrar sesión en Prestashop

Antes de nada, nosotros vamos a tocar controladores y clases originales, pero recordar que lo optimo es hacer los correspondientes overrides (/override/clases/ si es una clase y /override/controllers/ si es un controlador)

Este miniTip, está realizado bajo Prestashop 1.6

Por ejemplo, vamos hacer que cuando el cliente cierre sesión en la tienda sea redireccionado a una página de contenidos que hemos creado en la pestaña Preferencias -> CMS

Editamos el fichero:

  • classes/controller/FrontController.php

Buscamos la siguiente línea de código: (En Prestashop 1.6.1.12 sobre la línea 295/298)

elseif (isset($_GET['mylogout'])) {
$this->context->customer->mylogout();
Tools::redirect(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null);
}
Código PHP de cuando el cliente cierra sesión en Prestashop.

Y cambiamos la línea:

Tools::redirect(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null);

por:

$enlace =$this->context->link->getCMSLink(3);
Tools::redirect($enlace);
  • Variable “Enlace” almacena el enlace de la página de contenidos.
  • Al ejecutar “Tools::redirect” ejecutamos la redirección, en este caso al valor que contiene la variable enlace.

Continúa leyendo Redireccionar al cliente cuando cierra sesión en Prestashop

Evitar que el cliente reciba el email de confirmación en Prestashop

Cuando el cliente compra en Prestashop, automáticamente recibe un email con la confirmación del pedido con el resumen de su pedido.

Email del pedido en Prestashop

¿Cómo podemos desactivar que el cliente no reciba ese correo?

En este caso, vamos hacer el TIP bajo Prestashop 1.6.

Vamos a tocar la clase original, pero recordar que lo ideal es hacer un override la clase en “/override/classes/”

Editamos el fichero:

/classes/PaymentModule.php

Y buscamos el siguiente código:

if (Validate::isEmail($this->context->customer->email)) {
Mail::Send(
(int)$order->id_lang,
'order_conf',
Mail::l('Order confirmation', (int)$order->id_lang),
$data,
$this->context->customer->email,
$this->context->customer->firstname.' '.$this->context->customer->lastname,
null,
null,
$file_attachement,
null, _PS_MAIL_DIR_, false, (int)$order->id_shop
);
}
Código envío email de configuración en Prestashop

Y en este “mini-ejemplo” comentamos el código: Continúa leyendo Evitar que el cliente reciba el email de confirmación en Prestashop

Actualizar de Prestashop 1.6 a 1.7.1.0

Hace unos días, como comenté en el Blog, Prestashop saco la versión 1.7.1.0, y entre las mejoras, nos prometía una proceso de actualización para poder actualizar desde Prestashop 1.6 a Prestashop 1.7

Nos recomienda en su artículo:

http://build.prestashop.com/news/updated-1-click-upgrade-module/

Usar el módulo 1Click (versión beta), que están preparando para poder actualizar de una vez por todas a la versión 1.7 como hacíamos entre versiones anteriores y sin grandes inconvenientes.

El módulo, nos dicen que lo bajemos de aquí: http://www.prestashop.com/download/private/autoupgrade.zip (El paquete ahora mismo recomiendo descomprimirlo en vuestro equipo y volverlo a descomprimir si lo bajáis del enlace)

Recordar que el “oficial” esta aquíhttps://addons.prestashop.com/es/migracion-copias-de-seguridad/5496-.html, pero a día de hoy no permite actualizar de la versión 1.6 a la 1.7. (Posiblemente cuando veáis este  tema, el post estará antiguado y todo lo que he comentado no servirá  y podréis actualizar  directamente desde el oficial)

Una vez descargado el zip (Descargar Módulo de actualización Beta) (Este Zip ya viene preparado), lo instalamos/subimos desde la pestaña módulos -> módulos. (Recomiendo desinstalar y eliminar antes el que tengáis instalado)

Una vez instalado, en la misma configuración del módulo en la sección “Más opciones (Modo Experto)

Modo experto en modo actualización en Prestashop

SeñalamosCanal -> Lanzamiento mayor (Major Release)

Major release / Lanzamiento Mayor Prestasho
Major release / Lanzamiento Mayor Prestashop

Y nos aparecerá que la versión 1.7.1.0 es la versión más alta ahora.

Pulsamos en “Guardar

Proceso de actualización de Prestashop 1.6 a 1.7.1.0
Proceso de actualización de Prestashop 1.6 a 1.7.1.0

Ahora pulsamos en “Siguiente

Y vemos que nos aparecerá la siguiente pantalla de los requerimientos mínimos para poder actualizar de Prestashop 1.6 a Prestashop 1.7.1.0 (En nuestro caso todos con la V de correctos/verificados)

Requerimientos mínimos para actualizar de Prestashop 1.6 a Prestashop 1.7.1

Si seguimos bajando la pantalla, vemos que tiene marcada las siguientes opciones:

Desactivado Módulos Nativos -> SI
Actualizar el tema predeterminado -> SI
Cambiar el tema predeterminado -> SI
Actualizar los valores de los correos electrónicos -> SI
Modos paso a paso -> No
Mostrar errores -> No

Continúa leyendo Actualizar de Prestashop 1.6 a 1.7.1.0

Eliminar nombre de la tienda de los asuntos de los emails en Prestashop

Lo comente en el foro de Prestashop hace bastantes años, pero se ha conservado más o menos durante el paso de las versiones de Prestashop, y como tampoco hace daños lo dejo también en el blog.

El nombre de la tienda que definimos en Prestashop 1.6 en la pestaña Preferencias -> Contactos de la tienda, aparece en diversas localizaciones, entre ellas el asunto de los emails

En este TIP vamos a tocar directamente la clase, pero recordar que lo que se tiene que hacer es un override.

Editamos el fichero:

/classes/Mail.php

Y buscamos la siguiente línea:

$subject = '['.Configuration::get('PS_SHOP_NAME', null, null, $id_shop).'] '.$subject;

Vemos que estamos almacenando el valor del nombre de la tienda + el asunto propio del email.

El nombre de la tienda en dicha variable (variable que se usa para el asunto de los emails), vemos que lo obtenemos aquí:

Configuration::get('PS_SHOP_NAME', null, null, $id_shop)

Recordar que lo ideal para realizar la modificación que vayamos a realizar, es hacer un override de la Clase en:

/override/classes/

He actualizado a PHP 7.1 y mi tienda Prestashop 1.6 me reporta errores

Si no estáis trabajando con las ultimas variante en actualizaciones de Prestashop de la versión 1.6 de Prestashop, es posible que os hayáis encontrado con algunos reporte de errores debido a la versión 7.1 de PHP

Notice: Array to string conversion in /…/classes/Hook.php…

Si estáis trabajando con Prestashop 1.6.1.11 o con anteriores variantes de Prestashop 1.6  y no con Prestashop 1.6.1.12 (porque esta versión ya lo lleva integrado los dos cambios que  se proponen en este artículo.)

En github: https://github.com/PrestaShop/PrestaShop/pull/7392 tenemos propuesto los siguientes cambios:

Fichero:

classes/Hook.php

Sobre la línea (465)

Cambiamos este código:

$output = '';
if ($array_return) {
$output = array();
} else {
$output = '';
}

También, nos recomiendan cambiar el fichero:

classes/helper/HelperOptions.php

(Sobre la línea 105)

Cambiar esto:

if ($field['type'] == 'texarea' || $field['type'] == 'textareaLang') {

por

if ($field['type'] == 'textarea' || $field['type'] == 'textareaLang') {

En realidad, estos cambios ya están implementados en la última variante de la 1.6 de Prestashop a día de hoy, pero para aquellas personas que estén usando por ejemplo la 1.6.1.10 no están implementados.

Lo dicho, intentar siempre tener vuestra versión (variante) de Prestashop actualizada, es decir si estáis usando la 1.6, estar siempre actualizados a la ultima variante de Prestashop 1.6, y si estáis usando la versión 1.7 de Prestashop, estar siempre actualizados a la última variante de la Prestashop 1.7

Enlace de github, donde se trata este problema: https://github.com/PrestaShop/PrestaShop/pull/7392

¿Merece la pena trabajar con la plantilla por defecto en Prestashop?

Me han preguntado muchas veces, si merece o no la pena trabajar con la plantilla por defecto en Prestashop.

Antiguamente (hablo de hace bastantes años), no disponíamos de muchas plantillas para Prestashop, y al final muchos usuarios terminaban usando la plantilla por defecto, y en muchos casos hacían una maquetación bajo la plantilla por defecto, que quedaba bastante elegante.

¿Pero ahora que tenemos trillones de plantillas para comprar? ¿Merece la pena usar la plantilla por defecto en Prestashop?

Cierto es que cuando compras una plantilla a una empresa o desarrollador, te suele prometer un tiempo en el que te da soporte de actualizaciones, pero dependes realmente de la “bondad” del desarrollador/empresa, en cambio, cuando usas la plantilla por defecto de Prestashop te aseguras de que siempre esté al  tanto de las correcciones de los errores que tenga la misma plantilla, ya que cuando Prestashop saca una nueva actualización, en muchas ocasiones también corrige algún fallo de la misma plantilla.

A que contar también, que en algunas ocasiones (ha ocurrido en el pasado), cuando usabas una plantilla comprada y Prestashop sacaba una nueva variante (es decir ni siquiera un salto grande de versión, sino una variante de la misma versión de Prestashop que usabas) y “tachan”, saltaba algún fallo escondido en la plantilla que tenías, que no te dabas cuenta del fallo, hasta que un cliente que iba a comprar en tu tienda o la estaba visitando te hacia un feedback.

Evidentemente, todo esto ha mejorado con el tiempo, pero sigo insistiendo que usar la plantilla por defecto de Prestashop, no es tan maligno como puede parecer, a pesar de la cantidad de plantillas que tenemos disponibles hoy en día.

Y ya por simple curiosidad, veamos cómo era la plantilla por defecto de Prestashop, a lo largo de su pequeña historia.

Plantilla por defecto en Prestashop 0.9
Plantilla por defecto en Prestashop 0.9
Plantilla por defecto en Prestashop 1.4
Plantilla por defecto en Prestashop 1.0/1.1/1.2/1.3 / 1.4
Plantilla por defecto en Prestashop 1.5
Plantilla por defecto en Prestashop 1.6
Plantilla por defecto en Prestashop 1.7

Unificar anchura de los métodos de pago en el listado en Prestashop

En algunos post del foro, hace varios años fui comentando casos parecidos…

Guía basada en Prestashop 1.6 con la plantilla por defecto.

Llegado un momento, es posible que cuando vayamos a visualizar los métodos de pago, a la hora de elegir cual queremos para completar la compra, veamos que el ancho es diferente en cada uno de los bloques y no queda muy bien estéticamente.

En este ejemplo, tenemos instalado 4 módulos, que son, el Módulos de Contrareembolso, de Transferencia Bancaria, de Contra-Reembolso (Estos vienen por defecto en Prestashop) y el módulo de iupay (versión 2.8.3) descargado de la web de Redsys

Métodos de pago en Prestashop
Métodos de pago en Prestashop

En esta imagen, vemos que la anchura del módulo de “iupay” no es la misma que  la del resto de módulos.

La solución es la siguiente (en este caso).

1º Hacer override del tpl del módulo de esa parte en tu plantilla.

Copiar el fichero:

“/modules/iupay/views/templates/hook/payment.tpl”

En:

/themes/default-bootstrap/modules/iupay/views/templates/hook/” (La estructura de directorios del módulo la tenéis que crear en vuestra plantilla.)

2º Modificar: “/themes/default-bootstrap/modules/iupay/views/templates/hook/payment.tpl”

Cambiar en el fichero la siguiente instrucción:

<div class="col-xs-12 col-md-6">

por

<div class="col-xs-12">

Finalmente quedara de la siguiente forma:

Ancho de los métodos de pago totalmente unificados
Ancho de los métodos de pago totalmente unificados

Esto es solo un Ejemplo, es posible que en vuestro caso sea debido a otro problema, tenéis que fijaros en la estructura de otros módulos, como por ejemplo el de transferencia bancaria:

/themes/default-bootstrap/modules/bankwire/views/templates/hook/payment.tpl

Y adaptar la estructura básica al vuestro.