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