Вывод сообщений валидации формы рядом с формой

При возникновении ошибок, во время проверки формы друпал выполняет две вещи, которые отражаются на фронт-энд — добавляет сообщение об ошибке в стек сообщений и маркирует классом error поле, содержащее ошибку.

Если форма находится далеко от места вывода списка сообщений, выглядит это совсем не юзер-френдли.

Здесь я хочу рассмотреть самый простой подход, когда вывод сообщений об ошибках формы переносится непосредственно к самой форме.

Я не собираюсь переносить вывод всех сообщений в шаблоне к форме, а только сообщения об ошибках, которые относятся к конкретной форме.

Момент захвата сообщений об ошибах

Ошибки в массив $_SESSION[‘messages’] добавляются в момент рендера формы. Т.е. перехват нужно произвести уже после кода вроде:

В этот момент функция form_get_errors() начнет возвращать список ошибок формы, если они были найдены.

Убираем ошибки из стека сообщений

Сообщения drupal накапливает в массиве $_SESSION[‘messages’], и выяснить их происхождение нельзя, т.к. кроме самого текста ничего там нет. Чтобы удалить сообщения, относящиеся к форме, мы будем сравнивать список, полученный из form_get_errors() с тем, что хранит $_SESSION[‘messages’][‘error’].

Пример показывает как можно получить сообщения об ошибках формы и удалить их из общего списка.

Мало букафф? Читайте есчо !

Хак с Form API в Drupal 7: создаём HTML5‑поля (number, email, tel) без лишних модулей

Март 15, 2026 г.

Drupal 7 предлагает мощный Form API для построения форм. Однако при работе с HTML5‑атрибутами можно столкнуться с неожиданным ограничением: если вы попытаетесь задать тип поля number, email или tel стандартным способом, Drupal проигнорирует ваше значение ...

Читать

Использование cache API Drupal 7

Май 14, 2019 г.

Изучение API удобно начинать с шаблонов кода, которые демонстрируют технику использования. Пример логики использования/создания элемента кеша [crayon-6a6f1535d6a04702156178/] Обратите внимание на дополнительные скобки вокруг $cache = cache_get($cache_id). ...

Читать

Список всех типов публикаций в Drupal

Май 13, 2020 г.

Как получить полный список зарегистрированных типов публикаций в Drupal 7. Задача типична для бек-енда при создании форм страниц настроек. Потому покажу в статье пример реализации поля для формы с выбором типов публикаций. В API Drupal существует ...

Читать

Добавляем фильтр в wysiwyg в Drupal

Сентябрь 5, 2020 г.

Пример добавления обработчика (фильтра) текста в rich editor. Требуется всего два шага для реализации нового фильтра: имплементировать hook_filter_info(), ...

Читать
 

Комментарии к «Вывод сообщений валидации формы рядом с формой»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: