Saya menggunakan kode berikut untuk memproses ulang variabel untuk templat saya:
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']);
}
Variabel #uri sudah ada, dan jika saya memodifikasinya semuanya berfungsi dengan baik. Tapi saya perlu menambahkan variabel tambahan di sini karena saya perlu dua gaya berbeda dari gambar yang sama. Tetapi hanya menambahkan variabel-variabel ke array tidak bekerja.
Jika saya membuang variabel yang tersedia di templat Twig saya {{ dump(_context|keys) }}
, saya tidak melihat variabel yang saya tambahkan di sana. Jika saya mencoba menggunakannya di template saya, tidak ada yang dimasukkan.
Saya bisa melihat bahwa nilai ditambahkan ke array, ketika saya membuang variabel gambar di tema yang membuat seluruh bidang, saya melihat variabel saya di array. Tapi mereka masih belum tersedia di templat yang membuat variabel gambar itu sendiri.
Apa lagi yang harus saya lakukan untuk menambahkan variabel dalam fungsi preproses saya yang dapat saya gunakan dalam templat Ranting saya?
template_preprocess_imagegallery_format
tetapi 'template' harus diganti dengan tema atau nama modul Anda. Anda juga perlu cache yang jelas.
$vars
dan kunci Anda (misalnya['image']
). Saya cukup yakin itu tidak diizinkan.