Czy istnieje sposób na zmianę kolejności wykonywania hook_form_alter w Drupal 7 bez zmiany wagi modułu lub włamania się do Drupal Core?
Próbuję zmienić element dodany w module_forma_węzła_formatowania z modułu tłumaczącego. Podczas debugowania formularza nie mogę znaleźć elementu, więc zakładam, że mój hak jest wykonywany przed tym w module tłumaczącym.
hook_form_FORM_ID_alter()
to rozumiem, że nie powinieneś w ogóle musieć modyfikować wagi (ponieważ w końcu wszystkiehook_form_FORM_ID_alter()
połączenia są wykonywanehook_form_BASE_FORM_ID_alter()
).drupal_prepare_form()
idrupal_alter()
. Już zauważyłem, że dokumenty wydawały się wyłączone, więc stworzyłem problem . Nie wiem, dlaczego to nie działa bez zmiany wagi systemu!Warto również wspomnieć, że istnieje nowy interfejs API drupal 7 o nazwie hook_module_implements_alter (), który pozwala zmienić kolejność wykonywania danego haka WIHOUT zmieniając tabelę wag modułu.
Przykładowy kod z dokumentacji API pokazujący, jak łatwo to zrobić:
źródło
Oto jak upewnić się, że Twój hook_form_alter jest wywoływany po innych modułach hook_form_alter:
Działa to również wtedy, gdy drugi moduł podał hak form_alter w wariancie: hook_form_FORM_ID_alter. (wyjaśniają to w dokumentacji: hook_module_implements_alter ).
Wiem, że ten post jest dość podobny do postu wiifm, ale pomyślałem, że jest przydatny na przykładzie z hook_form_alter
źródło