Child pages
  • Comprensión y uso de hooks

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Como se habrá dado cuenta, PrestaShop es un software que le permite crear módulos diseñados para interactuar directamente con el corazón de la muestra de soluciónes o eventos.

...

Tip

A veces el "hook" de observación también puede servir como un "hook" de acción. Usted no necesita hacer nada para mostrarlasmostrarlos. Por ejemplo, usted puede hacer una tarea recurrente en la página de inicio con el "hook" "home".

Si tomamos el ejemplo del tema básico de PrestaShop, en la página principal, la solución utiliza "puntos de fijación" de la siguiente manera:

Nombre del Hook name

Decripción

header

Hook del encabezado

top

Hook de la parte superior

leftColumn

Hook de la columna izquierda

home

Hook de la página de inicio

rightColumn

Hook de la columna derecha

footer

Hook del pie de página

Como puede ver, todos los "hooks" utilizados son "hooks de observación".

...

En primer lugar, para usar correctamente el "hook", usted debe dirijirse a la clase de su módulo y crear un método no estático, público a partir de la palabra "hook" y el nombre del "hook" utilizado.
Entonces, sólo un solo argumento es pasado: la matriz de información de contexto diferente enviado al "hook".

...

Code Block
public function install()
{
    return parent::install() && $this->registerHook('NameOfHook');
}
Tip

TNo No hay necesidad de utilizar el método del módulo "uninstall" para eliminar el "hook".

...

La segunda llamada es un "acceso directo" a la primera para obtener una muestra "limpia" cuando realice la llamada. El conjunto de "accesos directos" están disponibles en la clase de "hook".

Code Block
class HookCore extends ObjectModel
{
    // ...
    static public function updateProduct($product)
    {
        $params = array('product' => $product);
        return Module::hookExec('updateProduct', $params);
    }
    // ...
}

Llamar al "hook" denominado "updateProduct" será lo siguiente en el corazón núcleo de PrestaShop.

Code Block
Hook::updateProduct(new Product(/* ... */));
Note

Hemos llamado a la clase "HookCore" utilizando "Hook" como el nombre de la clase. ¡Esto se debe a la anulaciónal reemplazo!

¿Cómo agregar uno nuevo?

...

Para crear su propio y pequeño "hook" personal, simplemente guarde una fila en el cuadro la tabla de la base de datos "ps_hook" con el nombre de su "hook". (Vea 0 y 1 si es compatible con LiveEdit)

...