Подключение CSS/JS к форме Drupal

Если необходимо подключить стили или скрипты к своей форме, как это сделать?

Первый подход — добавить необходимые стили и скрипты в тему оформления. В этом случае, если к примеру, идет речь о форме редактирования, которая отображается в шаблоне используемом только для админ-панели, вам придется заниматься кастомизацией ещё одной темы, помимо основной. А ваш модуль станет зависим от темы оформления.

Оптимально было бы подключить нужные файлы с помощью одного из хуков form API.

hook_form_alter

Прямое подключение

Можно добавить в хук form_alter вызов drupal_add_js()drupal_add_css(). И это будет работать до тех пор, пока ваша форма успешно проходит валидацию. При ошибке в любом из #validate hook-ов, форма потеряет подключаемые файлы.

#suffix

Атрибут формы suffix (и аналогично prefix) позволяет добавить произвольный HTML код. Никто не мешает вставить следующее:

Хотя этот подход не испытывает проблем на этапе валидации, но явно не сочетается с парадигмой MVC.

#after_build

В этом свойстве формы можно указать функции вызываемые каждый раз после окончания сборки формы. Как раз в этот момент можно использовать drupal_add_css() и drupal_add_js(), чтобы корректно подключить нужные файлы.

Все в этом варианте хорошо и правильно, но нам всего то лишь нужно подключить пару файлов, а не превращать работу с формой в бесконечный вызов хелперов. :)

#attached

Потому в Drupal 7 появляется специальный атрибут формы — #attached. Здесь вы можете указать необходимые JS и CSS файлы.

Ну или так:

Последние примеры я спер из документации drupal form API :).

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

Error Code 1366 of Mysql при записи переводов в базу tmgmt_deepl

Октябрь 4, 2024 г.

Типично ошибка 1366 связана с тем, что кто то пытается записать символы с кодами не соответствующими кодовой таблице символов, установленной для таблицы в базе данных. Но в нашем случае речь идет о иной проблеме. Drupal использует utf8mb4 для текстовых ...

Читать

Добавляем свои стили в CKEditor на Drupal

Ноябрь 16, 2017 г.

Задача не для программиста, а больше для системного администратора, т.к. речь пойдет о правильной настройке. Типично, CKeditor имеет компонент Форматирование ...

Читать

Проблемы загрузки скриптов в параграфах Drupal 7

Март 22, 2021 г.

Проявляется как не прогружающиеся wysiwyg редактор (ckeditor, например) или элементы поля, обрабатываемые модулем media, при добавлении параграфа (entity модуля parapraphs). Это по-крайней мере два примера с которыми я лично сам сталкивался. Характерно, ...

Читать

Имена блоков в Drupal 7 по умолчанию

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

Соответствующие системные названия регионов для вывода блоков можно подсмотреть в верстке. Ещё они явно прописаны в тестовой теме в модуле block. ...

Читать
 

Комментарии к «Подключение CSS/JS к форме Drupal»

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



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