Crear Posiciones/Hooks junto a un módulo en Prestashop

Muchas veces cuando creamos nuestro propio módulo en prestashop lo queremos asignar también a una nueva posición (hook) que no existe en nuestra actual plantilla. Para ello podemos  incluir la posición en el módulo que vamos a instalar y automáticamente Prestashop se encargará de hacer todo el proceso.

Posición+Módulo

En el fichero php de nuestro modulo, tendremos que añadir la función que va a crear la nueva posición para que el módulo se posicione en ella.

public function hookDisplayNombreHook($params) {
    // Código a mostrar.
    return 'Texto en mi nueva posición NombreHook';

}

y en la función install() de nuestro módulo, incluir el código que hará que se registre el hook a la vez que se instala el módulo.

public function install() {
    return parent::install() && $this->registerHook('NombreHook');
}

La función $this->registerHook() en definitiva hace un insert en la tabla ps_hook.  Cosa que también podemos hacer de forma manual  nosotros.

INSERT INTO `ps_hook` (`name`, `title`, `description`) VALUES ('displayNombreHook', 'Este es el nombre de mi Hook', 'Descripcion');
-- Podemos añadir el campo `position` con valor = 1 para que así esté habilitado por defecto desde el admin.

 

Incluir la posición en la plantilla .tpl que queramos

Simplemente añadiendo el siguiente código dentro de nuestro fichero .tpl se visualizarán los módulos de esta posición.

{hook h='displayNombreHook'}
// También podemos añadir el nombre de un módulo.
{hook h='displayLeftColumn' mod='nombre_modulo'}

 

No visualizo mi posición en el administrador

Si desde el administrador no se visualiza su nuevo Hook creado, tendremos que entrar en la base de datos de nuestro Prestashop y dirigirnos a la tabla `ps_hook`. En ella buscaremos nuestra posición creada y observamos que el campo `position` deba estar en 1. Si no es así, lo modificamos sin problema.

 

Aprovechar esta posición para otros módulos

Para que un módulo pueda asignarse a una posición, ésta debe de estar definida en su código. Si no aparecerá un mensaje de error. Por lo que habrá que entrar en el fichero .php del módulo ya existente y añadir la función:

public function hookDisplayNombreHook($params) {
    // Código a mostrar.
    return 'Texto en mi nueva posición NombreHook';

}

Y recuerda que nuestros desarrolladores web expertos en Prestashop pueden crear tu tienda online con la máxima versatilidad

¿Te ha gustado el artículo?
Sé el primero en calificar esta publicación.
1 Star2 Stars3 Stars4 Stars5 Stars
Loading...
Artículo escrito por

¡Exprésate! Dejanos tu comentario

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



Aún no hay comentarios en esta entrada. ¿Te animas?