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