Проброс переменных из 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: возврат страницы из контроллера с установкой cookie и использованием шаблона темы

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

В Drupal контроллеры чаще всего возвращают Renderable-массивы. Такие массивы автоматически проходят через систему рендеринга и подставляются в базовый шаблон темы (page.html.twig). Но иногда бывает нужно получить полный Response с темизацией вручную — ...

Читать

Как сформировать отдельный хидер или футер для первой страницы в mPDF на примере Drupal

Декабрь 6, 2025 г.

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

Читать

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

Май 12, 2025 г.

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

Читать

Добавляем в page cache зависимость от значения cookie

Март 4, 2025 г.

Модуль page_cache использует http_middleware, чтобы зацепиться за объект request и произвести кеширование страницы. Работает он для анонимных пользователей. ...

Читать
 

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

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



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