VIa le module media_library_form_element, Voici comment ajouter un champ de type « référence à un media » dans un formulaire personnalisé en utilisant le widget Media Library :
$form['video'] = [
'#type' => 'media_library',
'#allowed_bundles' => ['video', 'remote_video'],
'#title' => t('Video'),
'#default_value' => $config->get('video') ?? NULL,
];
la clé #allowed_bundles contient la liste des types de media que l'on veut autoriser
Voici ensuite comment le rendre dans un template via un controller :
Dans le controller :
if($config['video'] && $media = Media::load($config['video'])) {
$config['video'] = $this->entityTypeManager->getViewBuilder('media')->view($media, 'default');
}
return [
'#theme' => 'mon_template',
'#data' => $config,
];
et dans le template twig, un simple :
{{ data.video }}
Ajouter un commentaire