Vamos a explicar dos métodos para crear tus propios hooks en Prestashop 1.5

 

Mediante un módulo

1 Creamos un módulo básico de la siguiente manera /modules/didnewhook/didnewhook.php e insertamos en siguiente código

name = 'didnewhook';
        $this->tab = 'advertising_marketing';
        $this->author = 'you name';
        $this->version = '1.0';
        $this->need_instance = 0;
        parent::__construct();
        $this->displayName = $this->l('Did New Hook');
        $this->description = $this->l('Create a new custom hook');
    }
    public function install()
    {
        return (parent::install() AND $this->registerHook('displayTopPageBar'));
    }
    public function hookDisplayTopagebar($params)
    {
           return 'Hello world';
    }
}
?>

2Modifica la plantilla poniendo esto donde quieras que se muestre

{hook h='displaytoppagebar'}

&nbsp

3Finalmente si quieres ver el hook en el administrador, habrá que acceder de forma manual a la base de datos. Para esto buscaremos la tabla ps_hook y modificaremos el campo position poniéndolo a 1

&nbsp

De forma manual

1 Crear la entrada en la base de datos.

Para esto accederemos a la base de datos (por ejemplo con PHPMyAdmin) y en la tabla ps_hook crearemos una nueva linea rellenando los campos con, por ejemplo, displayTopPageBar

 

2Registramos el Hook en prestashop

Para esto abriremos classes/controller/FrontController.php y buscaremos displayHeader o displayTop. Justo debajo de

'HOOK_TOP' => Hook::exec('displayTop')

añadiremos

'HOOK_displayTopPageBar' => Hook::exec('displayTopPageBar')

 

3Modificamos la plantilla añadiendo {$HOOK_displayTopPageBar} donde queramos que se muestre

Recordar que el Hook tiene que existir en cada uno de los módulos que queramos mover, si no veremos el mensaje de "no se puede trasplantar". Como es nuestro tendremos que crearlo en cada módulo que nos interese

    public function hookDisplayTopPageBar($params)
    {
           return 'message';
    }