비디오 임베드 필드를 포함한 텍스트를 렌더링하는 방법

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 ": ["포함됨 동영상 (반응 형, 자동 재생). "]}

다음은 내 렌더링 배열입니다.

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

관련 텍스트 형식에서 비디오 삽입 필터를 활성화했으며 필터 순서를 변경해 보았습니다.

내가 여기서 뭘 잘못하고 있는지 아이디어가 있습니까?

우리는 부트 스트랩 서브 테마를 사용하고 있습니다.

도움을 주셔서 감사합니다.

답변

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,
  ],
];

추가 정보 사용자 지정 변수에서 노드 본문을 안전하게 렌더링하는 방법은 무엇입니까?