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

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

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

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

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

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

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

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

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

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

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

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

Программно выводим блок в Drupal

Февраль 7, 2019 г.

Если вы решили вывести блок, реализованный в каком либо модуле, программно, то следующие  примеры кода помогут вам. Используя block API Запрашиваем данные блока через API, готовим массив для последующего рендеринга: [crayon-69f724426b210595554083/] ...

Читать

Формирование одиночного чекбокса в Drupal 7 Webform

Ноябрь 23, 2025 г.

В Webform для Drupal 7 нет отдельного типа элемента, который отвечал бы за одиночный чекбокс. Если возникает задача добавить в форму знакомую всем галочку ...

Читать

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

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

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

Читать

Программное создание параграфов (ParagraphsItemEntity) в Drupal

Май 24, 2019 г.

Пример кода, как программно реализовать создание параграфа (речь идет о модуле - paragraphs). Обычно параграфы создаются редакторами через админку, но иногда требуется создать новый параграф с помощью кода, например, при импорте данных, структурных ...

Читать
 

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

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



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