Проброс переменных из 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. В некоторых случаях такие страницы могут быть полезны, например, если вы используете термины ...

Читать

Фильтр по годам во views

Март 19, 2025 г.

Задача проста - есть материалы, у которых есть поле даты (timestamp), нужно вывести кнопки фильтрующие список по годам. Дополнительно задача ...

Читать

Добавить произвольную ссылку в меню на этапе препросессинга в Drupal

Март 17, 2025 г.

Иногда бывает потребность создать ссылку из кода. Структура ссылки довольно сложная на этапе препроцессинга шаблона меню, делюсь сниппетом кода. Потребуются следующие зависимости: [crayon-694ca22766cbe427518067/] Добавим ссылку в меню main. ...

Читать

Подключаем yandex cloud как s3 в Drupal

Апрель 3, 2025 г.

Облачные файловые хранилища Яндекса можно подключить и использовать в вашем проекте на drupal через модуль s3fs. А именно, хранить там т.н. юзерфайлы, ...

Читать
 

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

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



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