изменение формы крючка не вызывается, когда узел не проходит проверку


Я замечаю, что hook_form_alter не вызывается, когда на странице есть ошибки, которые отображают сообщение от form_set_error. Изменения в моей форме не вступают в силу, и страница с ошибкой фактически повреждена.

Я попытался вывести инструкцию dpm в hook_form_alter, но она не отображается на странице ошибок.

Есть ли способ заставить drupal вызвать хук и изменить форму?

Author: kiamlaluno, 2012-04-15

1 answers

Формы кэшируются в Drupal, поэтому форма загружается один раз (где запускается ваш form_alter), а затем загружается из кэша для перезагрузки при наличии ошибок проверки.

Вы должны использовать обратный вызов #after_build, который всегда запускается.

Просто не забудьте вернуть $элемент в обратном вызове #after_build, иначе вы получите WSOD.

 3
Author: Alex Weber, 2012-04-15 04:08:14