วิธีแสดงข้อความรวมถึงฟิลด์ฝังวิดีโอ

Aug 19 2020

ฉันมีช่องข้อความที่จัดรูปแบบแล้วและกำลังใช้โมดูล video_embed เพื่ออนุญาตให้ผู้ใช้ฝังวิดีโอลงในช่องนั้นโดยใช้โมดูลย่อย video_embed_wysiwyg

จากนั้นฉันพยายามแสดงฟิลด์ในบล็อก แต่ฉันได้รับเอาต์พุต JSON ในช่องข้อความ:

{"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 ": [" Embedded วิดีโอ (ตอบสนองและเล่นอัตโนมัติ) "]}

นี่คืออาร์เรย์การแสดงผลของฉัน:

$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; 

ฉันได้เปิดใช้งานตัวกรองการฝังวิดีโอในรูปแบบข้อความที่เกี่ยวข้องและได้ลองเปลี่ยนลำดับของตัวกรองแล้ว

มีความคิดอะไรที่ฉันทำผิดที่นี่?

เรากำลังใช้ธีมย่อย bootstrap

ขอบคุณสำหรับความช่วยเหลือใด ๆ

คำตอบ

3 4k4 Aug 19 2020 at 11:55

check_markup() ไม่สามารถจัดการข้อมูลเมตาที่แนบมาซึ่งตัวกรองข้อความบางตัวต้องทำงานได้อย่างถูกต้อง

คุณต้องใช้องค์ประกอบการแสดงผลprocessed_text:

$renderArray = [ 'content' => [ '#type' => 'processed_text', '#text' => $node->field_html_containing_video_content->value,
    '#format' => $node->field_html_containing_video_content->format,
  ],
];

ข้อมูลเพิ่มเติมจะแสดงเนื้อหาโหนดอย่างปลอดภัยบนตัวแปรที่กำหนดเองได้อย่างไร