Existe uma maneira de alterar a ordem de execução de hook_form_alter no Drupal 7 sem alterar o peso de um módulo ou invadir o Drupal Core?
Estou tentando alterar o elemento adicionado em translation_form_node_form_alter do módulo de tradução. Ao depurar o formulário, não consigo encontrar o elemento, portanto, suponho que meu gancho esteja sendo executado antes do do módulo de tradução.
hook_form_FORM_ID_alter()
, entendo que você não precisa modificar o peso (porque todas ashook_form_FORM_ID_alter()
chamadas são feitas, afinalhook_form_BASE_FORM_ID_alter()
).drupal_prepare_form()
edrupal_alter()
. Eu já tinha notado que os documentos pareciam errados, então criei um problema . Não sei por que não funciona para você sem alterar o peso do sistema!Também vale mencionar, existe uma nova API do drupal 7 chamada hook_module_implements_alter () que permite alterar a ordem de execução de um determinado gancho SEM alterar a tabela de pesos do módulo.
Código de exemplo dos documentos da API, mostrando como isso é fácil:
fonte
Aqui está como garantir que seu hook_form_alter seja chamado após outros módulos hook_form_alter:
Isso também funciona quando o outro módulo forneceu um gancho form_alter na variação: hook_form_FORM_ID_alter. (eles explicam isso na documentação: hook_module_implements_alter ).
Eu sei que este post é bastante semelhante ao post de wiifm, mas achei útil com um exemplo com hook_form_alter
fonte