Проброс переменных из PHP в JS (в Drupal) с использованием js_settings_alter

В этой статье мы рассмотрим, как пробросить данные из PHP в JavaScript в Drupal 11 с использованием js_settings_alter(). Этот метод позволяет изменять или добавлять переменные в объект drupalSettings, который доступен в JavaScript на всех страницах.

Drupal предоставляет мощный механизм для проброса данных из PHP в JavaScript через drupalSettings. Чтобы корректно изменить или добавить данные, нам нужно использовать хук js_settings_alter().

Для начала создадим библиотеку JavaScript, которую мы подключим к страницам. В Drupal это делается через файл my_module.libraries.yml.

Здесь мы создаем библиотеку my_module/my_script, которая будет подключать файл script.js. Также мы указываем зависимость от jQuery, так как часто его используют в Drupal для работы с DOM.

Проброс переменной через js_settings_alter()

Теперь, для передачи данных из PHP в drupalSettings, мы будем использовать хук js_settings_alter(). Он позволяет модифицировать уже существующие данные в объекте drupalSettings, который затем будет доступен в JavaScript.

Пример hook_js_settings_alter():

В этом примере мы добавляем или изменяем переменную var в drupalSettings.my_module.

Подключение библиотеки в hook_page_attachments()

Теперь, когда мы добавили переменные в drupalSettings, нам нужно подключить библиотеку JavaScript к странице. Для этого используем hook_page_attachments().

Здесь мы подключаем нашу библиотеку my_module/my_script, которая будет использовать переменную из drupalSettings.

Использование переменной в JavaScript

Теперь, после того как данные были переданы через drupalSettings, мы можем использовать их в JavaScript. В файле my_script.js доступ к этим данным осуществляется через объект drupalSettings.

Пример my_script.js:

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

Отключаем страницы терминов таксономии в Drupal

Июль 21, 2025 г.

По умолчанию Drupal генерирует маршруты для каждого термина таксономии. Это означает, что у каждого термина появляется своя страница с URL вида /taxonomy/term/123. В некоторых случаях такие страницы могут быть полезны, например, если вы используете термины ...

Читать

Использование модального диалога в Drupal

Январь 13, 2026 г.

В комплекте Drupal включает в себя jquery dialog, который можно подключить и использовать для ваших целей на фронт-енд. Эта статья о том, как это быстро сделать и начать собственно использовать в своей теме оформления. Типичная тема представляет ...

Читать

Инициализируем кастомную тему в Drupal

Май 12, 2025 г.

При создании новой темы у вас есть варианты выбора начиная с того, чтобы взять готовую тему (и начать её менять под ваши задачи) до создания новой темы ...

Читать

Как в шаблоне параграфа получить заголовок родительской ноды

Сентябрь 15, 2025 г.

Иногда возникает задача: в Twig-шаблоне параграфа (paragraph.html.twig) нужно отобразить заголовок материала (ноды), к которому этот параграф прикреплён. Нам не нужно передавать что то дополнительно в шаблон, эти данные могут быть получены из самой ...

Читать
 

Комментарии к «Проброс переменных из PHP в JS (в Drupal) с использованием js_settings_alter»

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



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