Conditional Form Fields в Drupal

Логика полей или условные поля — это удобная фича в Form API друпал. Она позволяет формализовать кучу мелкой логики на фронт-енд, связанной с взаимодействием пользователя с вашей формой.

Здесь я приведу пару примеров использования, а углубиться в подробности поможет документация.

Пример 1 — кнопка сабмит не активна, пока пользователь не заполнил поле заголовка статьи

Есть разные подходы к проверке обязательных полей. Вы можете позволить отправить данные и потом вернуть пользователю форму с ошибками. Вы можете осуществить проверку заполнения полей при нажатии сабмита, но не отправлять данные. Ну и третий способ — просто сделать кнопку сабмита не активной, если обязательное полей не заполнено.

Важно, чтобы пользователь при этом визуально различал enabled и disabled состояния кнопки.

В следующем примере я делаю неактивным сабмит у формы добавления нового топика форума, до тех пор, пока пользователь не введет заголовок:

Пример 2 — Прячем поле ввода альтернативного варианта

Классическая UI задача, когда форма предлагает опции из списка, и один из вариантов — «прочее». При этом пользователь может ввести альтернативный вариант в дополнительное поле. Задача заключается в том, чтобы не показывать доп. поле, пока пользователь не выберет в списке — прочее.

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

Пишем логи в Drupal 9

Октябрь 8, 2021 г.

Привычная функция watchdog, которую мы использовали в 6/7 версиях, к девятке пережила эволюцию до сервиса логирования. Бывшее ранее: [crayon-6958319cd4aa7423398932/] Сейчас выглядит так: [crayon-6958319cd4ab3261066901/] Помимо того, ...

Читать

Пример кода переключения между базами в Drupal 9

Август 22, 2021 г.

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

Читать

Программный рендер меню в Drupal 9

Сентябрь 8, 2021 г.

Продолжаю публиковать сниппеты кода для drupal 9, на этот раз несколько полезных вещей, связанных с рендерингом меню. Рендер меню по известному id меню Вы знаете идентификатор, вам нужен рендер: [crayon-6958319cd4f68219781471/] Рендер ...

Читать

Подстановка токенов в коде Drupal 9

Август 1, 2021 г.

Ядро и модули объявляют множество токенов подстановки. Рассмотрим как получить доступ к глобальному объекту типа \Drupal\Core\Utility\Token и выполнить подстановку в строке. Ядро предоставляет экземпляр объекта через следующий запрос: [crayon-6958319cd5144970009930/] ...

Читать
 

Комментарии к «Conditional Form Fields в Drupal»

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



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