Drupal 8 y 7: Modificar el peso de un hook en tu módulo para que se ejecute al final.
06/09/2018 by 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!

Add new comment

The content of this field is kept private and will not be shown publicly.

Restricted HTML

  • Allowed HTML tags: <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>
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.