В этой статье мы рассмотрим, как пробросить данные из PHP в JavaScript в Drupal 11 с использованием js_settings_alter(). Этот метод позволяет изменять или добавлять переменные в объект drupalSettings, который доступен в JavaScript на всех страницах.
Записи с тегом ‘Drupal 10/11’
Проброс переменных из PHP в JS (в Drupal) с использованием js_settings_alter
Twig-функция qr_code() в Drupal: простой плагин с использованием Endroid QR Code

Иногда в шаблоне Drupal удобно вывести QR-код прямо по месту — без внешних файлов, без рендеринга через отдельный контроллер и без подключения сторонних сервисов. Например, чтобы вставить ссылку на страницу, код подтверждения, номер заказа или любую короткую строку. Это можно сделать всего несколькими строками, добавив к Twig собственный фильтр |qrcode.
Табличное редактирование мультиполей в Drupal через Paragraphs и Field Group
Иногда при работе с Drupal возникает необходимость оформить ввод набора однотипных данных — например, списка характеристик, параметров или цен — не в виде длинного списка полей, а в виде таблицы.
Читать далее »Drupal: как получить список target_id из ссылочного поля без перебора массива
При работе с сущностями в Drupal нередко возникает задача: из ссылочного поля (entity reference) нужно достать список ID связанных объектов.
Как в шаблоне параграфа получить заголовок родительской ноды
Иногда возникает задача: в Twig-шаблоне параграфа (paragraph.html.twig) нужно отобразить заголовок материала (ноды), к которому этот параграф прикреплён.
Drupal: возврат страницы из контроллера с установкой cookie и использованием шаблона темы
В Drupal контроллеры чаще всего возвращают Renderable-массивы. Такие массивы автоматически проходят через систему рендеринга и подставляются в базовый шаблон темы (page.html.twig). Но иногда бывает нужно получить полный Response с темизацией вручную — например, когда дополнительно требуется работать с заголовками, cookie или особыми параметрами ответа.
Форматирование дат в Twig на Drupal 10/11: date и format_date() с примерами
В Drupal 10/11 при работе с шаблонами Twig часто требуется вывести дату в нужном формате — будь то текущая дата, дата из поля сущности или timestamp. Для этого можно использовать стандартный Twig-фильтр date, а также функцию format_date().
В этой статье разберём основные варианты с примерами, в том числе:
- использование форматов из админки
/admin/config/regional/date-time. - получение текущего timestamp;
- вывод даты в любом формате PHP;
- локализация с помощью
format_date(); - работа с датами в ISO-формате;
Как программно отрендерить View в Drupal и получить HTML
В некоторых случаях удобно не только встроить View через UI или блок, но и программно срендерить представление (View) и получить HTML — например, для отправки во внешнюю систему, в e-mail, или вывода в нестандартном месте.
В этой статье покажем, как это сделать правильно — через Views::getView() и renderer->renderRoot().
Эффективное кеширование по доступу к ноде: параметрический Cache Context в Drupal

Когда мы используем кеширование в Drupal, типичный подход — добавить user в список контекстов: ['user']. Это означает, что для каждого пользователя будет создана своя версия кеша. Иногда это оправдано. Но если доступ можно классифицировать в ограниченное число состояний — гораздо разумнее кешировать по этим состояниям.
Отключаем страницы терминов таксономии в Drupal
По умолчанию Drupal генерирует маршруты для каждого термина таксономии. Это означает, что у каждого термина появляется своя страница с URL вида /taxonomy/term/123. В некоторых случаях такие страницы могут быть полезны, например, если вы используете термины как категории для материалов и хотите отображать подборку по ним. Но чаще всего — особенно для вспомогательных словарей (тегов, фильтров, FAQ-групп) — такие страницы не нужны вовсе.