Проброс переменных из 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:

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

Twig-функция qr_code() в Drupal: простой плагин с использованием Endroid QR Code

Октябрь 23, 2025 г.

Иногда в шаблоне Drupal удобно вывести QR-код прямо по месту — без внешних файлов, без рендеринга через отдельный контроллер и без подключения сторонних ...

Читать

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

Июль 21, 2025 г.

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

Читать

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

Май 7, 2025 г.

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

Читать

Как программно отрендерить View в Drupal и получить HTML

Август 3, 2025 г.

В некоторых случаях удобно не только встроить View через UI или блок, но и программно срендерить представление (View) и получить HTML — например, для отправки во внешнюю систему, в e-mail, или вывода в нестандартном месте. В этой статье покажем, как ...

Читать
 

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

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



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