J'utilise le code suivant pour prétraiter les variables de mon modèle:
function template_preprocess_imagegallery_format(&$vars) {
template_preprocess_image_formatter($vars);
$vars['image']['#theme'] = 'igimage';
$vars['image']['#thumbnail'] = ImageStyle::load('thumbnail')->buildUrl($vars ['image']['#uri']);
$vars['image']['#fullimage'] = file_create_url($vars ['image']['#uri']);
}
La variable #uri est déjà présente, et si je la modifie, tout fonctionne bien. Mais je dois ajouter des variables supplémentaires ici car j'ai besoin de deux styles différents de la même image. Mais simplement ajouter ces variables au tableau ne fonctionne pas.
Si je vide les variables disponibles dans mon modèle Twig avec {{ dump(_context|keys) }}
, je ne vois pas les variables que j'ai ajoutées là-bas. Si j'essaie de les utiliser dans mon modèle, rien n'est inséré.
Je peux voir que les valeurs sont ajoutées au tableau, lorsque je vide la variable d'image dans le thème qui rend le champ entier, je vois mes variables dans le tableau. Mais ils ne sont toujours pas disponibles dans le modèle qui rend la variable d'image elle-même.
Que dois-je faire d'autre pour ajouter une variable dans ma fonction de prétraitement que je peux utiliser dans mon modèle Twig?
template_preprocess_imagegallery_format
mais le «modèle» devrait être remplacé par le nom de votre thème ou module. Vous aurez également besoin d'un cache vide.
$vars
et vos clés (par exemple['image']
). Je suis presque sûr que ce n'est pas permis.