#PRESTASHOP 1.5, CREAR UN NUEVO #HOOK EN TIENDA VIRTUAL by developando.com

fuente: http://developando.com/blog/prestashop-crear-un-nuevo-hook-en-tienda-virtual

En este tutorial vamos a explicar los pasos que hay que realizar para crear y utilizar un nuevo ‘Hook‘ en una tienda virtual desarrollada con Pretashop.

INSERTAR EL NUEVO HOOK EN LA BASE DE DATOS

Para ello debemos ejecutar manualmente la siguiente sentencia SQL:

INSERT INTO `ps_hook` (`name`, `title`, `description`) VALUES ('menuTopHook', 'Menu Top Hook', 'Menu horizontal top');

¿CÓMO SE UTILIZA EL NUEVO HOOK EN UN MÓDULO?

Para utilizar el nuevo ‘Hook’ en un módulo Prestashop debemos editar la clase del módulo y añadir un método público y estático que referencie al nuevo ‘Hook’.

La nomenclatura de estos métodos comienza por la palabra ‘hook’ seguido del nombre que se haya configurado para le nuevo hook.

En este ejemplo deberemos añadir el siguiente método:

public function hookMenuTopHook($params){}

RESGISTRAR EL NUEVO HOOK DENTRO DE LA CONGIFURACIÓN DEL MÓDULO

Un módulo debe definir todos los hooks en los que puede situarse. Por tanto, ahora deberemos indicar que a los que estuviesen ya configurados también le estamos añadiendo el nuevo. Esto se hace con el siguiente código:

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

LLAMADAS A UN HOOK EN PRESTASHOP

LLAMADA DIRECTA AL HOOK

Ejecutamos la llamada directa al ‘Hook’ pasando a la función ‘hookExec‘ el nombre con el que se ha creado el ‘Hook’ y una matriz de parámetros de configuración:


$params = array(
	
    'parametro_1' => 'valor_1',
	
    'parametro_2' => 'valor_2',
	
);
	
Module::hookExec('MenuTopHook', $params);

CREAR UN MÉTODO DE ACCESO DIRECTO

En este punto crearemos un método que lo utilizaremos de acceso directo. Así cada vez que llamemos al ‘Hook’ únicamente tendremos que hacer una llamada a este método, y nos quedará un código más limpio.

El método que hay que crear debe ser como el siguiente:

 
	
class HookCore extends ObjectModel
	
{
	
    // resto de hooks
	
    static public function actualizarMenu($menu)
	
    {
	
        $params = array('boton' => $boton);
	
        return Module::hookExec('actualizarMenu', $boton);
	
    }
	
    // resto de hooks
	
}

Ahora desde el núclero de Prestashop podremos realizar llamadas a este ‘Hook’ utilizando una línea como la siguiente:

	
Hook::actualizarMenu(new Boton('miBoton'));
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s