Come eseguire il rendering del testo incluso il campo di incorporamento del video
Ho un campo di testo formattato e sto utilizzando il modulo video_embed per consentire agli utenti di incorporare video in quel campo, utilizzando il sottomodulo video_embed_wysiwyg.
Sto quindi cercando di eseguire il rendering del campo in un blocco, ma ottengo semplicemente l'output JSON nel campo di testo:
{"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 Video (reattivo, riproduzione automatica). "]}
Ecco il mio array di rendering:
$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;
Ho abilitato il filtro di incorporamento video sul formato di testo pertinente e ho provato a cambiare l'ordine dei filtri.
Qualche idea su cosa sto facendo di sbagliato qui?
Stiamo usando un sottotema bootstrap.
Grazie per qualsiasi aiuto dato.
Risposte
check_markup()
non è in grado di gestire i metadati allegati di cui alcuni filtri di testo necessitano per funzionare correttamente.
Devi usare l'elemento render processed_text
:
$renderArray = [ 'content' => [ '#type' => 'processed_text', '#text' => $node->field_html_containing_video_content->value,
'#format' => $node->field_html_containing_video_content->format,
],
];
Ulteriori informazioni Come eseguire il rendering in modo sicuro del corpo del nodo su una variabile personalizzata?