Drupal 8 y 7: Modificar el peso de un hook en tu módulo para que se ejecute al final.
29/11/2016 por Capy

Front.id

Digamos que tienes un hook_form_alter() en tu módulo y quieres modificar un label de un elemento de formulario pero después de hacer tu cambio viene otro modulo y vuelve a tocar ese label. Jode ¿a que si?

No problemo, para eso está el hook_module_implements_alter() que nos permite especificar el orden en el que todos los módulos ejecutan un hook puntual:

/**
 * Implements hook_module_implements_alter.
 *
 * Run after the path module.
 */
function MI_MODULO_module_implements_alter(&$implementations, $hook) {
  if ($hook == 'form_alter') {
    unset($implementations['MI_MODULO']);
    $implementations['MI_MODULO'] = FALSE;
  }
}

Lo que hacemos es simplemente quitar y volver a poner a a nuestro modulo dentro de la cola de orden de ejecución de ese hook (hook_form_alter()). Pero al volver a agregarlo queda puesto al final de la cola, por lo que tu módulo va a ser el último en ser ejecutado.

Saludos!

Agregar nuevo comentario

El contenido de este campo se mantiene privado y no se mostrará públicamente.

HTML Restringido

  • Etiquetas HTML permitidas: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Las líneas y los párrafos se rompen automáticamente.
  • Las direcciones de las páginas web y las direcciones de correo electrónico se convierten en enlaces automáticamente.