Jadi berkat 4k4 akhirnya saya berhasil mendapatkan URI gambar asli saya melalui templat bidang
item.content['#item'].entity.uri.value
dan dengan
{{ file_url(item.content['#item'].entity.uri.value) }}
Saya akan mendapatkan url dari file asli.
Saya memiliki informasi gaya gambar melalui
item.content['#item']['#image-style']
'media' itu diminta
Solusi PHP sudah tersedia di sini , tetapi bagaimana saya melakukan ini di TWIG?
Ada beberapa upaya membuat filter untuk 8.1 di sini - tetapi itu tidak membantu saya saat ini.
Jawaban:
Anda bisa meletakkan kode php dalam fungsi preprocess dari templat bidang. Anda memiliki semua informasi yang Anda butuhkan dalam pertanyaan Anda.
Tetapi kemudian Anda akan melakukan pengkodean, itu sudah dalam drupal. Jika Anda memiliki # gaya gambar yang diatur dalam elemen render gambar, maka bidang gambar harus dikonfigurasikan untuk fungsi preprocess yang datang kemudian dalam formatter gambar dan template gaya gambar untuk meletakkan atribut src kanan dalam variabel untuk
image-style.html.twig
. Jadi, Anda dapat menggunakan kode yang sudah ada di sana dengan mengganti template ini.Lihat kode di /core/module/image/image.module:
sumber
<img>
tetapi sebagai gambar latar inline-style. Saat ini saya mendapatkan gambar yang benar dengan gaya sebagai<img>
atau jalur file asli yang terlalu besar untuk digunakan pada koneksi non-broadband - jadi saya hanya ingin mendapatkan jalur ke yang sampel-down. Dan saya tidak ingin menimpa semua render gambar, hanya satu bidang. Tentu saya bisa memasang hardwire jalur ke gaya, karena saya tahu nama aslinya - tapi itu akan buruk.Saya hanya perlu melakukan ini juga. Pendekatan yang tepat di sini adalah untuk menyimpan URL gambar dari gambar gaya ke dalam variabel (melalui fungsi preproses), dan kemudian variabel itu akan tersedia di file ranting Anda.
Saya telah menulis sebuah fungsi yang akan mendapatkan file field_image dan mengembalikan nama file asli, atau jika Anda menentukan nama gaya, itu akan mengembalikan URL dari gambar gaya.
Di dalam
.theme
file saya :Sekarang di file ranting saya (node.html.twig, karena saya menggunakan fungsi preprocess_node):
Fungsi
_var_image_url()
ini harus dipanggil dariTHEME_preprocess_node()
fungsi karena mengharapkan pengaturan tertentu dalam$vars
argumen pertama . Jika Anda mencoba memanggilnyapreprocess_page
, Anda harus memodifikasinya.sumber