Bagaimana membuat teks termasuk bidang video embed
Saya memiliki bidang teks yang diformat, dan saya menggunakan modul video_embed untuk memungkinkan pengguna menyematkan video ke bidang itu, menggunakan submodul video_embed_wysiwyg.
Saya kemudian mencoba merender bidang dalam satu blok, tetapi saya hanya mendapatkan keluaran JSON di bidang teks:
{"preview_thumbnail": "/sites/default/files/styles/video_embed_wysiwyg_preview/public/video_thumbnails/A5jNGsBHHUE.jpg?itok=7fW8O9To", "video_url": "https://www.youtube.com/watch?v=* ******* "," settings ": {" responsive ": 1," width ":" 854 "," height ":" 480 "," autoplay ": 1}," settings_summary ": [" Tersemat Video (Responsif, putar otomatis). "]}
Ini array render saya:
$text=check_markup($node->get('field_html_containing_video_content')->value, $node->get('field_html_containing_video_content')->format); $renderArray=[
'content'=>[
'#type'=>'inline_template',
'#template'=>$text ] ]; return $renderArray;
Saya telah mengaktifkan filter penyematan video pada format teks yang relevan, dan telah mencoba mengubah urutan filter.
Ada ide apa yang saya lakukan salah di sini?
Kami menggunakan subtema bootstrap.
Terima kasih atas bantuan yang diberikan.
Jawaban
check_markup()
tidak dapat menangani metadata terlampir yang diperlukan beberapa filter teks agar berfungsi dengan baik.
Anda harus menggunakan elemen render processed_text
:
$renderArray = [ 'content' => [ '#type' => 'processed_text', '#text' => $node->field_html_containing_video_content->value,
'#format' => $node->field_html_containing_video_content->format,
],
];
Info lebih lanjut Bagaimana cara aman merender badan node pada variabel kustom?