Ini dapat dilakukan dengan beberapa cara, Anda dapat melakukan semuanya di templat simpul dengan Twig atau Anda dapat membuat fungsi preprocess dan membuat variabel untuk digunakan dalam templat simpul. Kunci untuk mempelajari apa yang ada dalam array adalah menggunakan Devel Kint. Tanpa itu, Anda tidak akan tahu apa yang ada di array.
Pertama instal Kint yang datang dengan modul Devel untuk Drupal 8. Selanjutnya, pilih template simpul Anda (tetapi ini dapat dilakukan dalam segala jenis template) dan periksa variabel konten seperti itu (idealnya di bagian bawah template).
{{ kint (content) }}
Dari ini, kami mendapatkan info debug yang dicetak pada halaman dan jika Anda memperluas array, Anda akan melihat banyak informasi. Segera, saya melihat nilai latar belakang saya dan saya bisa membuat jalur untuk mencetak ini sebagai
{{ content.field_background[0]['#markup'] }}
Sekarang Anda dapat mencetak ini sebagai gaya latar belakang atau kelas di div
<div style="background-color: {{ '#' }}{{ content.field_background[0]['#markup'] }};" class="color-{{ content.field_background[0]['#markup'] }}">
<h2>Hello</h2>
</div>
Saya telah menguji ini dan itu bekerja dengan baik, div memberikan warna latar belakang yang telah saya pilih dalam daftar bidang saya pada node edit.
Sekarang ini tidak ideal sehingga kami mungkin ingin membuat variabel untuk ini dalam preprocess_node dalam file tema. Tema kami.
function MYTHEME_preprocess_node(&$vars) {
$vars['bgcolor'] = '#' . $vars['content']['field_background'][0]['#markup'];
}
Sekarang saya telah membuat var, jauh lebih bersih untuk mencetak ini:
<div style="background-color: {{ bgcolor }};" >
<h2>Hello</h2>
</div>
Satu catatan untuk di atas, Anda mungkin harus membungkus ini dengan pernyataan jika untuk memeriksa apakah itu kosong atau tidak.
Ini akan berfungsi atau struktur pernyataan if di mana Anda suka
{% if bgcolor %}
<div style="background-color: {{ bgcolor }};" >
<h2>Hello</h2>
</div>
{% endif %}
{% set classes = [ ...
dan kemudian mencetak kelas-kelas sebagai<article{{ attributes.addClass(classes) }}>
atau Anda dapat melakukan sesuatu seperti<div{{ content_attributes.addClass('foobar' | clean_class) }}>
juga. Seperti kata catatan di atas, saya pikir kita perlu info lebih lanjut. Jika Anda ingin nilai bidang sebagai kelas, itu akan membantu untuk menggunakan debug Kint dan Twig juga dan Anda mungkin perlu mengatur var dengan fungsi preprocess tetapi mungkin tidak perlu.