[DOC] Error – No se puede analizar el directorio “override” en Prestashop

TIP de utilidad por si de pronto en Prestashop nos da el error mencionado el título de la entrada “No se puede analizar el directorio override” al acceder a determinas secciones del panel de administración.

Para acceder al documento y ver una posible solución al problema, debéis pinchar la siguiente imagen:

Configurar servidor en Prestashop 1.7

Crear nuevo campo en los transportistas en Prestashop 1.7

Documento donde vamos añadir un campo nuevo en los transportistas en Prestashop 1.7.

Este documento ha sido probado en Prestashop 1.7.2.4. Lo digo porque existe la posibilidad de que en futuras variantes de Prestashop 1.7.X no sea válido y se haga de forma totalmente diferente.

Añadir campo en la base de datos

En nuestro caso vamos añadir un campo de tipo VARCHAR de 64 caracteres de longitud denominado “campo_prueba“.

El campo lo vamos añadir en la tabla: ps_carrier (recordar que yo digo “ps_” debido a que es el prefijo de las tablas de mi instalación de Prestashop, en vuestro caso este dato puede variar, es solo un aviso para navegantes).

El campo lo podemos añadir fácilmente desde phpMyAdmin bien gráficamente o generando la consulta.

Campo nuevo en la base de datos en la tabla ps_carrier

Consulta SQL para avanzados:

Consulta SQL para añadir campo

Crear override de la clase Carrier

En el override de la clase Carrier vamos definir el nuevo campo que hemos creado en la tabla ps_carrier.

Recordar que el override de la clase Carrier se guarda en el directorio /override/classes/ 

Creamos el fichero Carrier.php con este contenido:

Override de la clase Carrier
Override de la clase Carrier

Dentro del contenido del override de la clase Carrier vamos a pegar de la clase original (/classes/Carrier.php) el código de “public static $definition” (que es el correspondiente a la definición de los campos de la tabla ps_carrier).

public static $definition = array

Ahora mismo el override tiene el siguiente contenido:

Override clase Carrier

En este override nos quedan “2” puntos.

Añadir un atributo publico al override de la clase Carrier.

Atributo público del override de la clase Carrier

Añadir la definición del campo que hemos creado en la base de datos dentro de “public static $definition = array( ‘fields’ => array(

Definición campo

El override de la clase Carrier quedara del siguiente modo:

Override de la clase Carrier

Podéis descargar el override aquí (esta comprimido en zip): Descargar (recordar que debéis guardarlo en el directorio /override/classes/)

Crear override del controlador: AdminCarrierWizardController

El override del controlador AdminCarrierWizardController se guarda en el directorio /override/controllers/admin/

Creamos el fichero AdminCarrierWizardController.php con este contenido:

Override del controlador AdminCarrierWizardController

Copiamos del controlador original /controllers/admin/AdminCarrierWizardController.php las funciones: renderStepOne y getStepOneFieldsValues

En las funciones que hemos pegado en el override tenemos que hacer los siguientes cambios:

Dentro de la función: renderStepOne añadimos el campo que se mostrara para rellenar en el primer paso de configuración del transportista. Lo hacemos dentro de $this->fields_form = array( ‘form’ => array( .. ‘input’ => array( Continúa leyendo Crear nuevo campo en los transportistas en Prestashop 1.7

[DOC] Añadir filtro sobre los pedidos en Prestashop

Documento que sirve para añadir un filtro nuevo en panel de Prestashop dentro del listado de pedidos para poder filtrarlos por número de seguimiento del transportista.

Numero de seguimiento

Para acceder al documento, debéis pinchar en la siguiente imagen:

Ver información sobre cómo filtrar pedidos en base a un nuevo dato
Ver información sobre cómo filtrar pedidos en base a un nuevo dato

Eliminar logo administración en Prestashop 1.7

Tutorial que nos puede servir de utilidad para eliminar el logo en el panel de administración de Prestashop 1.7.

Logo panel de administración

Para acceder a este tutorial, que nos servirá para quitar u ocultar el logo en la parte superior del panel de administración, debéis pinchar sobre la siguiente imagen:

Acceder a un tutorial para no mostrar el logo de Prestashop dentro del panel de administración.
Acceder a un tutorial para no mostrar el logo de Prestashop dentro del panel de administración.

Quitar sombras de los productos en Prestashop 1.7

En todos los sitios donde vemos los listados de productos en Prestashop 1.7, vemos que rodea a los productos una especie de sombra.

Sombra productos Prestashop

La idea es dejar los productos de la siguiente forma:

Productos sin sombra

Cuando intentamos inspeccionar el elemento, por ejemplo desde Chrome (F11 / botón derecho del ratón -> inspeccionar elemento).

Inspeccionar elemento

Vemos en el fichero:

/themes/classic/assets/css/theme.css

#products .thumbnail-container, .featured-products .thumbnail-container, .product-accessories .thumbnail-container, .product-miniature .thumbnail-container {
position: relative;
margin-bottom: 1.563rem;
height: 318px;
width: 257px;
background: #fff;
box-shadow: 2px 2px 8px 0 rgba(0,0,0,.2);
}

El efecto lo está haciendo el “box-shadow“.

Información sobre “box-shadow” aquí:
http://librosweb.es/libro/css_avanzado/capitulo_1/sombras.html

Es cierto que puedes editar el fichero y quitar el box-shadow solamente, pero como tenéis el fichero:

/themes/classic/assets/css/custom.css

para añadir vuestras propias personalizaciones, os será más sencillo añadir esta única instrucción:

#products .thumbnail-container, .featured-products .thumbnail-container, .product-accessories .thumbnail-container, .product-miniature .thumbnail-container {
box-shadow: none;
}
Instrucción añadida en el fichero custom.css

De esta forma, estamos sobrescribiendo el valor del box-shadow que teníamos en el theme.css

Por otro lado, si vamos a la ficha del producto vemos que siguen las sombras:

Sombra ficha del producto
Inspeccionar elemento ficha del producto

Añadimos en el fichero:

/themes/classic/assets/css/custom.css

.product-images>li.thumb-container>.thumb {
box-shadow: none;
}
.product-cover img {
box-shadow: none;
}
Sombra quitada

Tener en cuenta que estamos tocando “clases” en el css, mucho cuidado porque una clase afecta a distintas partes.

Documento construido bajo Prestashop 1.7.2.4 con la plantilla por defecto.

Limpiar lista de módulos en Prestashop 1.7

Al intentar acceder a la pestaña “Módulos -> Módulos y Servicios

Entrando en la gestión de módulos en Prestashop 1.7

estando situados dentro del bloque “Selección“, muestra tanto los módulos que no están instalados como los módulos disponibles para descargar o comprar (addons).

Listado módulos

Hennes, nos propone mostrar solo en el bloque “Selección” los módulos que no están instalados, pero que se encuentran físicamente en el servidor. Es decir, ocultar principalmente aquellos módulos que se encuentra en la tienda de addons. A que tener en cuenta, que también afecta a módulos que nos interese utilizar (siendo gratuitos) pero que no vienen en el paquete de descarga. Por lo tanto, pensar bien si queréis hacer el cambio u no.

Para ello, nos propone ir al fichero:

src/Core/Addon/Module/ModuleRepository.php

Editando fichero

Y dentro de la función “getList()” que podemos encontrar justo debajo del siguiente bloque:

/**
* @return AddonInterface[] retrieve the universe of Modules
*/

Donde visualizamos el siguiente código:

Función getList()

Dejarla del siguiente modo:

Función getList() modificada

Hemos comentado el “return array_merge” donde retornábamos dos funciones:

  • getModulesOnDisk -> Función que hace referencia a los módulos que se encuentran físicamente en el servidor.
  • getAddonsCatalogModules -> Función que hace referencia a los módulos que no se encuentra físicamente, es decir que muestra módulos para descargarlos o comprarlos.
  • Hemos comentado dicho return y hemos dejado un return único retornando la función getModulesOnDisk, de este modo solo mostraremos módulos que se encuentran físicamente en el servidor, ocultando todos aquellos módulos que tengan posibilidad de adquirirse en la tienda de módulos de Prestashop (addons).

Este documento ha sido construido bajo Prestashop 1.7.2.4 y es muy posible que no sea válido para futuras variantes o que futuras variantes dejen realizar esta configuración desde el mismo panel de administración.

 

¿Cómo cambiar la palabra “Envolver regalo” en Prestashop 1.7?

Documento “muy básico” para manejarnos por las traducciones y cambiar el texto: “Envolver regalo“.

Texto envuelto en regalo

Para acceder al documento, debéis pinchar en la siguiente imagen:

Cambiar la palabra "Envolver regalo" en Prestashop 1.7
Cambiar la palabra “Envolver regalo” en Prestashop 1.7

Añadir WhatsApp en el producto en Prestashop

Módulo que permite añadir en la ficha del producto el botón de WhatsApp para que los usuarios puedan compartir el producto por ese medio.

WhatsApp en ficha producto
WhatsApp en ficha producto

Para ver la información del módulo, debéis pinchar sobre la siguiente imagen:

Ver información sobre el módulo que añade un botón de WhatsApp en la ficha del producto de Prestashop
Ver información sobre el módulo que añade un botón de WhatsApp en la ficha del producto de Prestashop

Añadir bloque login a la columna de la tienda en Prestashop

Módulo que permite añadir en la tienda un “bloque” en el lateral izquierdo para que los usuarios puedan tanto registrarse como entrar directamente en su cuenta.

Bloque login Prestashop columna

Para ver toda la información sobre este módulo, debéis pinchar en la siguiente captura:

Ver información sobre el módulo

Captcha para Prestashop 1.7

Módulo gratuito que permite añadir un captcha en la tienda para evitar el spam en los formularios de la tienda como, por ejemplo, el formulario de contacto.

A inicios del año 2013 habíamos reseñado un módulo que integraba una especie de captcha en Prestashop para poder mostrarlo en los distintos formularios de la tienda.

En esta ocasión, vamos hablar de otro clásico y de nuevo del compañero francés  Hernes del que ya hemos comentado en antaño varios aportes interesantes.

Captcha formulario de contacto
Captcha en el formulario de registro de Prestashop 1.7

Aunque existen versiones del módulo para versiones anteriores de Prestashop, en la actualidad también tenemos disponible una versión actualizada del módulo para mostrar el reCAPTCHA de Google en el formulario de contacto y de registro en Prestashop 1.7.  Al final de la entrada dejare el enlace para descargarlo desde el repositorio.

Una vez, hemos subido e instalado el módulo desde la pestaña módulos -> módulos y servicios (guía de instalación de módulos) del panel de administración y accedemos a su configuración, debemos añadir y configurar los datos de la API correspondientes al reCaptcha de Google.

Datos captcha
  • Para obtener los datos “Captcha public key (Site Key)” y “Captcha private key (Secret key)” debemos tener añadido nuestra web en: https://www.google.com/recaptcha/intro/index.htmlAccedemos al enlace que he pasado y añadimos nuestra tienda, tal como podéis ver en las siguientes capturas:
    Pulsamos getRecaptcha

    Obtener captcha

    Rellenamos formulario:

Creando Captcha
  • Etiqueta -> Etiqueta a modo informativo.
  • Choose the type Captcha -> Nosotros hemos elegido reCaptcha v2
  • Dominios -> Añadimos el dominio de nuestra tienda.

Una vez registrado el captcha, podremos obtener la clave del sitio (Site Key) y la clave Secreta (Secret Key) para pegarla posteriormente en la configuración del módulo.

Clave del sitio y clave secreta
  • Otras opciones de configuración que nos ofrece el módulo son las siguientes:
    Activar/Desactivar captcha

    Enable Captcha for contact form -> Para activar/desactivar el captcha en el formulario de contacto.
    Enable Captcha for account creation -> Para activar/desactivar el captcha en el formulario de registro.

Por si tenéis curiosidad el módulo lleva los siguientes overrides:

Controlador -> AuthController.php para añadir el catpcha en el formulario de registro.

Clase del módulo de formulario de contacto -> contactform.php -> Para añadir el captcha al formulario de contacto.

¿Dónde podemos descargar la última versión de este módulo para poder integrar un catpcha en Prestashop 1.7?

Podemos descargar las distintas versiones del módulo desde el siguiente enlace:

  •  https://github.com/nenes25/eicaptcha/releases donde disponemos también de una versión del módulo para versiones anteriores de Prestashop.

Enlace alternativo de una versión antigua del módulo (2.0.1) por si el enlace fuente falla.

* Es muy importante descargar siempre la versión más reciente del módulo captcha desde el repositorio del desarrollador.

Documento construido bajo Prestashop 1.7.2.4 y la versión 2.0.1 del módulo.

PD: Se me ha olvidado comentar (en Prestashop 1.7) que debéis tener instalado previamente el módulo contactform, si no lo tenéis instalado, lo buscáis en la zona de gestión de módulos y aparecerá para instalarlo.

Módulo

*** Actualización del artículo:

Versiones actuales de los módulos:

Para PS 1.7 -> 2.0.4 o superior

Para Prestashop 1.7

Para Prestashop 1.6 -> 0.4.14 o superior

Versiones anteriores

Si en versiones antiguas de Prestashop o en la plantilla que usas no aparece el captcha en el formulario de contacto, edita el fichero: /themes/TuPlantilla/contact-form.tpl y añade:

<div id="captcha-box"></div>

antes de cerrar el formulario (etiqueta </form>).

Vuelvo a recordar todas las versiones del módulo aquí:

https://github.com/nenes25/eicaptcha/releases

Y más información sobre el captcha en la propia web del desarrollador:

https://www.h-hennes.fr/blog/module-recaptcha-pour-le-formulaire-de-contact-prestashop/

Mejor fuente que la web del desarrollador no vais a tener.

Continúa leyendo Captcha para Prestashop 1.7