¿Qué son los hooks en Drupal y cuales son los más usados?

Author Top
estebanvalerioh

Si estamos iniciando con Drupal, probablemente escuchemos mucho la palabra hooks, pero:

1. ¿Qué son los hooks en Drupal?

Son funciones PHP que utilizamos en nuestros módulos, el nombre de las mismas se compone de la siguiente forma:

function hook_name() {
}
hook => nombre del módulo
name => nombre del hook

2. ¿Para qué sirven los hooks en drupal?

Aumentan la funcionalidad de Drupal permitiendo a los módulos interactuar con el core.  De esta manera podemos alterar los comportamientos default de Drupal, y agregar nueva funcionalidad, si esos son los requerimientos para nuestro sitio.

Veremos a continuación, una descripción de los hooks más comunes utlizados en nuestros sitios:

- hook_boot( )

  • La función hook_boot() se ejecuta en el booteo de drupal
  • Afecta las páginas cacheadas
  • Se ejecuta antes de que los módulos y archivos de Drupal se carguen a memoria.
  • No se usa mucho en módulos personalizados.

- hook_init( )

  • La función hook_init() es un hook de iniciación
  • No afecta a las paginas cacheadas
  • Se ejecuta cuando los módulos y archivos están cargados a memoria, por lo tanto, podemos hacer uso de todas las funciones que vienen en los módulos instalados.

- hook_ form_alter( )

  • Nos permite alterar los formularios que se usan en Drupal
  • Permite agregar y remover elementos al formulario
  • Permite agregar y remover funciones de validación
  • Permite agregar y remover funciones del submit del form

- hook_theme( )

  • Nos permite crear funciones de tematización que podemos usar en nuestro sitio.
  • Podemos pasarle variables, las cuales utilizamos para crear HTML y presentarlo en una página.

- hook_node_[acción]( )

El token [acción] será cambiado por una acción específica.  Ejemplo: hook_node_save().

  • Son una serie de funciones que nos permite interactuar con las acciones que se le aplican a los nodos, como save, presave, update, etc.

- hook_user_[acción]( )

El token [acción] será cambiado por una acción específica.  Ejemplo: hook_user_save().

  • Son una serie de funciones que nos permite interactuar con las acciones que se le aplican a los usuarios de Drupal, como save, presave, update, etc.

- hook_block_[acción]( )

El token [acción] será cambiado por una acción específica.  Ejemplo: hook_node_info().

  • Son funciones que nos permiten crear nuevos bloques para utilizar en nuestro sitio, existen las funciones hook_node_info() y hook_node_view().

Espero les haya sido de utilidad!

Saludos!