Saya telah membuat tampilan untuk sebuah simpul yang menunjukkan konten sebagai entitas yang diberikan. Di antara yang lain, saya menampilkan bidang tubuh dalam templat ranting:
{{ content.field_body }}
Sekarang, saya ingin membatasi teks menjadi 200 karakter dan meletakkan tiga titik. Saya telah menguji tiga cara berbeda untuk melakukan itu, tetapi tidak ada yang berhasil. Masalahnya adalah, masing-masing cara menghitung dan memangkas karakter HTML juga.
1: Saya telah menambahkan format "Dipangkas" di "Kelola tampilan" => Teks terbatas tetapi tidak benar. Dan saya tidak punya tiga titik.
2: Saya telah memangkas teks dalam templat ranting. Tetapi untuk menghitung teks saya harus membuatnya terlebih dahulu. Dengan demikian, ranting menampilkan teks sebagai HTML (Saya melihat tag HTML di halaman saya!)
{% set text = content.field_body|render %}
{{ text|length > 200 ? text|slice(0, 200) ~ '...' : text }}
3: Saya sudah mencoba menyelesaikan masalah di template_preprocess_node (). Di sini saya memiliki masalah yang sama dengan menghitung markup HTML juga.
$body_text = $node->get('field_body')->getValue()[0]['value'];
$trimmed_text = substr($body_text, 0, 200) . '...';
Bagaimana saya bisa memotong teks saya dengan benar?
Terima kasih banyak atas bantuan Anda!