Crear un nuevo hook en Prestashop

Prestashop tiene la particularidad de trabajar con módulos y por lo tanto para añadir una nueva funcionalidad deberemos crear un nuevo módulo y añadirlo o posicionarlo en alguna posición o hook de nuestra tienda.

En este artículo vamos a ver como crear un nuevo hook o posición para añadir módulos.

En el ejemplo que vamos a ilustrar vamos a crear un hook que su posición estará en la página que muestra las categorías y los productos de una categoría.

Lo primero que deberemos hacer es entrar en la base de datos y añadir un nuevo registro en la tabla “tuprefijo_hook” utilizando phpMyAdmin o el programar de gestión de base de datos que utilices.

Simplemente deberemos introducir un nombre sin espacios, título y descripción.

Como vemos, hemos añadido este nuevo hook que utilizaremos en la página “category.php”.

Si ahora nos vamos a la administración de la tienda a modulos – posiciones, abajo del todo tendremos la nueva posición o hook creado y listo para añadirle módulos.

A nivel de código, deberemos sobreescribir el controlador de esta página, en este caso, “CategoryController.php” donde deberemos crear una nueva variable a la que asignaremos el hook que hemos creado.

self::$smarty->assign(array('HOOK_CATEGORY_HEADER' => Module::hookExec('categoryHeader')));

Y luego en el archivo category.tpl de la plantilla que estemos utlizando deberemos invocar a esta variable en la posición que deseemos del código HTML para mostrar todos los módulos que haya allí dentro.

{$HOOK_CATEGORY_HEADER}

También tienes la opción de llamarlo directamente en la plantilla de la siguiente forma:

{hook h='categoryHeader'}
1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (5 votos, promedio: 5,00 de 5)
Loading...Loading...
Escrito por Jose Aguilar - Experto programador Prestashop y Wordpress.

6 comentarios para “Crear un nuevo hook en Prestashop

  • Pablo dice:

    Siento decirte que aunque te funcione , eso no es lo correcto, no puedes machacar los controladores de esa manera, tienes que sobreescribirlos, si actualizas la versión de php entonces que pasa?

  • cesar recoba dice:

    No puedes modificar los controladores del Core, para sobre escribir una funcion tienes que usar crear una clase con el mismo nombre en la carpeta override.

  • Susanna dice:

    Hola Jose, muchas gracias por tu aporte, justamente estaba buscando como crear un nuevo hook en Prestashop. He encontrado instrucciones similares a estas en otros foros y blogs, pero no consigo que un módulo se enganche y sea impreso correctamente en un nuevo hook. Utilizo Prestashop 1.5. Cuando refresco la página para apreciar los cambios, ahí donde debería imprimirse el módulo, aparece espacio en blanco. En la consola de smarty, la variable del hook aparece listada pero no tiene un valor asignado. ¿Tienes idea de a qué puede deberse? Muchas gracias de antemano por tu ayuda.

    • Jose Aguilar dice:

      En prestashop 1.5 todavía no he vivido la experiencia de crear un nuevo hook pero debería ser lo mismo… Mira de tener en cuenta las mayúsculas y minúsculas del nobmre del hook y también a la hora de enlazarlo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>