Apakah ada cara untuk mengubah urutan pelaksanaan hook_form_alter di Drupal 7 tanpa mengubah bobot modul atau meretas Drupal Core?
Saya mencoba mengubah elemen yang ditambahkan di translation_form_node_form_alter dari modul terjemahan. Ketika debugging formulir saya tidak dapat menemukan elemen jadi saya menganggap kait saya dieksekusi sebelum yang ada di modul terjemahan.
hook_form_FORM_ID_alter()
maka pengertian saya adalah bahwa Anda tidak perlu memodifikasi bobot sama sekali (karena semuahook_form_FORM_ID_alter()
panggilan dibuat setelah semuahook_form_BASE_FORM_ID_alter()
).drupal_prepare_form()
dandrupal_alter()
. Saya sudah memperhatikan bahwa dokumen itu kelihatan tidak enak, jadi saya membuat masalah . Entah mengapa itu tidak bekerja untuk Anda tanpa mengubah berat sistem tho!Juga layak disebutkan, ada drupal 7 API baru yang disebut hook_module_implements_alter () yang memungkinkan Anda mengubah urutan eksekusi untuk pengait yang diberikan.
Kode sampel dari API API menunjukkan betapa mudahnya melakukannya:
sumber
Berikut adalah cara memastikan hook_form_alter Anda dipanggil setelah modul lain hook_form_alter:
Ini juga berfungsi ketika modul lain telah menyediakan hook form_alter dalam variasi: hook_form_FORM_ID_alter. (mereka menjelaskannya dalam dokumentasi: hook_module_implements_alter ).
Saya tahu bahwa posting ini sangat mirip dengan posting wiifm, tetapi saya pikir ini berguna dengan contoh dengan hook_form_alter
sumber