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

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

Для генерации самого кода используется лёгкая и надёжная библиотека endroid/qr-code, устанавливаемая через Composer:

После установки в модуле создаётся сервис, который регистрирует Twig-расширение: (У меня это был кастомный модуль tweaks).

В файле tweaks.services.yml регистрируется новый сервис:

Сам плагин минималистичен и не требует дополнительных зависимостей, кроме библиотеки Endroid. Он добавляет фильтр |qrcode, который принимает строку (или URL) и необязательный массив параметров.

В шаблоне Twig его можно использовать прямо как фильтр:

или с параметрами:

По умолчанию фильтр возвращает встроенный SVG, который сразу вставляется в HTML-разметку. Это наиболее лёгкий вариант: не создаётся файл, не загружается изображение с диска, и код можно использовать где угодно — в обычных страницах, e-mail-шаблонах или PDF-документах.

Если указать format: 'png', плагин создаёт <img> с data:image/png;base64,....


Минимум кода, никаких зависимостей от маршрутов и контроллеров, а результат — полностью автономный QR-код, который можно сгенерировать прямо в шаблоне. Это один из тех маленьких плагинов, которые экономят время и упрощают жизнь при верстке нестандартных шаблонов или интеграции с PDF-экспортом.

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

Убираем вставку &nbsp; в пустые div контейнеры в CKEditor 5

Апрель 9, 2025 г.

Неприятная особенность CKEditor - добавляет в пустые контейнера (в <div>,<p> и т.п.) html код неразрывного пробела. Покажу как можно от этого избавиться через код в кастомном плагине для CKEditor 5 в экосистеме Drupal 8+. Нам понадобится ...

Читать

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

Апрель 3, 2025 г.

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

Читать

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

Март 17, 2025 г.

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

Читать

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

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

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

Читать
 

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

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



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