Sto usando il seguente codice per preelaborare le variabili per il mio modello:
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 variabile #uri è già presente e, se la modifico, tutto funziona bene. Ma devo aggiungere ulteriori variabili qui poiché ho bisogno di due stili diversi della stessa immagine. Ma semplicemente l'aggiunta di tali variabili all'array non funziona.
Se dump delle variabili disponibili nel mio modello Twig con {{ dump(_context|keys) }}
, non vedo le variabili che ho aggiunto lì. Se provo a usarli nel mio modello, non viene inserito nulla.
Vedo che i valori vengono aggiunti all'array, quando eseguo il dump della variabile immagine nel tema che esegue il rendering dell'intero campo, vedo le mie variabili nell'array. Ma non sono ancora disponibili nel modello che esegue il rendering della variabile immagine stessa.
Cos'altro devo fare per aggiungere una variabile nella mia funzione di preelaborazione che posso usare nel mio modello Twig?
template_preprocess_imagegallery_format
ma 'modello' dovrebbe essere sostituito con il nome del tema o del modulo. Avrai anche bisogno di cancellare la cache.
$vars
e le chiavi (ad es['image']
.). Sono abbastanza sicuro che non sia permesso.