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

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

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

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

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

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

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

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

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

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

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

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

Выполнение действий после сохранения ноды – обход стандартных ограничений

Май 22, 2026 г.

Поговорим о ситуациях, когда hook_node_insert, hook_node_update гибки не на столько хорошо, и нужны альтернативные способы выполнения кода после полного завершения транзакций или даже после отправки ответа браузеру. Проблема Стандартные хуки ...

Читать

Как изменить длину поля (max length) после создания, сохраняя данные

Май 15, 2018 г.

Друпал не позволяет менять длину текстового поля после создания. Функция field_update_field также нам не поможет - будет сгенерирована соответствующая ошибка, что поле уже содержит данные и изменить его длину нельзя. Это можно проделать вручную, зная ...

Читать

Удалить список публикаций со страницы термина таксономии в Drupal

Апрель 10, 2021 г.

Стандартный шаблон страницы термина таксономии taxonomy-term.tpl.php не позволяет управлять выводом публикаций, он лишь служит как обертка для полей термина. Единственная настройка CMS, которая влияет на вывод списка - это переменная default_nodes_main, ...

Читать

Вывод строки запроса построенного в db_select

Апрель 11, 2019 г.

Конструктор запросов db_select позволяет абстрагироваться от движка базы данных. Если запрос довольно сложный, то на этапе тестирования может потребоваться, что называется, убедиться в том, что конечный запрос на языке SQL к базе именно тот, что вы ожидаете. ...

Читать
 

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

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



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