Подключение 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 :).

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

Добавление произвольных требований при установке модуля в Drupal

Май 7, 2025 г.

Иногда модуль в Drupal требует наличия специфических сущностей или конфигураций, например — определённого текстового формата. Поскольку текстовые форматы являются конфигурационными сущностями (entities), напрямую указать их как зависимость в .info.yml ...

Читать

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

Апрель 11, 2019 г.

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

Читать

Добавление произвольного эффекта в виды показа изображений

Июнь 17, 2015 г.

Сегодня разберем то, как создать собственный эффект для обработки изображений в Drupal 7. Для этого нам понадобится модуль Imagecache Custom Actions из ...

Читать

Настраиваем мета информацию о картинке для соц. сетей в Drupal 7

Сентябрь 27, 2016 г.

Когда посетители делятся ссылкой на ваш сайт в какой нить соц.сети, то программа со стороны соц. сети (Facebook или вКонтакте) пытается собрать информацию ...

Читать
 

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

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



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