Как обычно, я думал, что что-то в API форм Drupal будет простым ... о чем я думал?
Проблема
У меня есть блок, который выводит форму через drupal_get_form (). Каким-то образом в функции отображения блока я хочу проверить, не прошла ли проверка формы (т.е. есть ли какие-либо ошибки, которые были установлены функцией form_set_error () в функции проверки моей формы).
Пока пробовал ...
- проверка
$_SESSION['messages']['error']
в функции отображения блока - но они к тому времени исчезли
- проверка
$_POST
в функции отображения блока - здесь ничего полезного
- проверка
form_get_errors()
в mymodule_preprocess_page()
- пусто
- проверка
form_get_errors()
в mytheme_preprocess_page()
- пусто
Меня смущают мои звонки на form_get_errors () , который пуст. Он вызывает form_set_error () без аргументов - что оставляет $reset = FALSE
, поэтому статическая переменная, содержащая ошибки формы, не очищается. Так что я не знаю, где этот VAR сбрасывается - где-то с помощью функции API других форм? - так что к тому времени, когда я вызову его в моем модуле или теме, он станет пустым.
помощь
Итак, кто-нибудь знает, в какой момент (функции предварительной обработки?) Я могу вызвать form_get_errors()
до очистки статической переменной? Или есть другая идея, как проверить ошибки формы в блоке, который отображает форму? (Между прочим - я вполне уверен, что смог бы легко проверить это, как только я нахожусь внутри своей функции, которую вызывает drupal_get_form()
... но мне нужно знать об ошибках в функции отображения включающего блока.)