Aller au contenu

Twig

phil/qr-code-bundle

qr_code()

Une fonction et un filtre, qui dessinent un code avec les valeurs par défaut de la configuration :

{{ qr_code('https://example.com/tickets/42') }}
{{ 'https://example.com/tickets/42'|qr_code({title: 'Ticket 42', level: 'H'}) }}
<img src="{{ qr_code(url, {output: 'png_data_uri', scale: 4}) }}" alt="{{ qr_code_label(url) }}">
Option
outputsvg (SVG en ligne, par défaut), data_uri (SVG en URI data:) ou png_data_uri
levelL, M, Q ou H
quiet_zone, dark, lightcomme dans la configuration
sizela largeur et la hauteur du SVG en pixels
scaleles pixels d'un module du PNG
logole nom d'un logo configuré
titlele nom du SVG pour les lecteurs d'écran ; le libellé du contenu quand il est vide

Une option inconnue, ou une valeur hors de sa plage, est refusée avec InvalidOption. Le SVG peut être écrit tel quel : son seul texte, le titre, est échappé, et il ne contient aucun script.

Contenus typés

Le contenu est un texte, un contenu typé de phil/qr-code, ou le tableau de l'un d'eux :

{{ qr_code({type: 'wifi', ssid: 'Gnome Café', password: 'tea-and-dice'}) }}
{{ qr_code({type: 'vcard', name: 'Jane Doe', phones: ['+15551234567'], emails: 'jane@example.com'}) }}
{{ qr_code({type: 'event', summary: 'Game night', start: '2026-11-13T19:00:00-05:00', location: 'Back room'}) }}
TypeClés
urlurl
emailto, subject, body, cc, bcc
phonenumber
smsnumber, message
geolatitude, longitude, altitude, uncertainty, name
wifissid, password, security (WPA, WEP ou nopass), hidden
mecardname, phones, emails, url, address, note, birthday
vcardname, family_name, given_name, organization, title, phones, emails, urls, address (street, locality, region, postal_code, country), birthday, note, version (3.0 ou 4.0)
eventsummary, start, end, location, description, url, all_day, uid

Une liste peut être donnée sous forme d'un seul texte ; les dates s'écrivent 2026-11-08 ou 2026-11-08T19:00:00-05:00. Un type ou une clé inconnus, ou une valeur du mauvais type, sont refusés avec InvalidContent, comme un champ que le contenu ne peut pas écrire.

qr_code_label()

Ce que contient un code, en quelques mots : l'adresse, le numéro, le nom du réseau ou du contact, le résumé de l'événement — jamais un mot de passe. Le SVG est nommé par lui, sauf si un title est donné.

qr_code_url()

L'adresse signée de la route, quand elle est activée : voir La route.