Записи с тегом ‘Drupal 10/11’

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

 14 Ноя, 2025

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

Читать далее »

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

 23 Окт, 2025

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

Читать далее »

Табличное редактирование мультиполей в Drupal через Paragraphs и Field Group

 14 Окт, 2025

Иногда при работе с Drupal возникает необходимость оформить ввод набора однотипных данных — например, списка характеристик, параметров или цен — не в виде длинного списка полей, а в виде таблицы.

Читать далее »

Drupal: как получить список target_id из ссылочного поля без перебора массива

 20 Сен, 2025

При работе с сущностями в Drupal нередко возникает задача: из ссылочного поля (entity reference) нужно достать список ID связанных объектов.

Читать далее »

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

 15 Сен, 2025

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

Читать далее »

Drupal: возврат страницы из контроллера с установкой cookie и использованием шаблона темы

 12 Сен, 2025

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

Читать далее »

Форматирование дат в Twig на Drupal 10/11: date и format_date() с примерами

 8 Авг, 2025

В Drupal 10/11 при работе с шаблонами Twig часто требуется вывести дату в нужном формате — будь то текущая дата, дата из поля сущности или timestamp. Для этого можно использовать стандартный Twig-фильтр date, а также функцию format_date().

В этой статье разберём основные варианты с примерами, в том числе:

  • использование форматов из админки /admin/config/regional/date-time.
  • получение текущего timestamp;
  • вывод даты в любом формате PHP;
  • локализация с помощью format_date();
  • работа с датами в ISO-формате;
Читать далее »

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

 3 Авг, 2025

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

В этой статье покажем, как это сделать правильно — через Views::getView() и renderer->renderRoot().

Читать далее »

Эффективное кеширование по доступу к ноде: параметрический Cache Context в Drupal

 26 Июл, 2025

Когда мы используем кеширование в Drupal, типичный подход — добавить user в список контекстов: ['user']. Это означает, что для каждого пользователя будет создана своя версия кеша. Иногда это оправдано. Но если доступ можно классифицировать в ограниченное число состояний — гораздо разумнее кешировать по этим состояниям.

Читать далее »

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

 21 Июл, 2025

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

Читать далее »