Как визуализировать текст, включая поле для встраивания видео
У меня есть форматированное текстовое поле, и я использую модуль 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.voutube.com ******* "," settings ": {" responseive ": 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;
У меня включен фильтр встраивания видео для соответствующего текстового формата, и я попытался изменить порядок фильтров.
Есть идеи, что я здесь делаю не так?
Мы используем подтему начальной загрузки.
Спасибо за любую предоставленную помощь.
Ответы
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,
],
];
Подробнее Как безопасно отрисовать тело узла в пользовательской переменной?