Drupal 9 - ouvrir un lien dans une fenêtre modale

Posté le Lundi 17 octobre 2022 - 11:09

Dans drupal 9, via la librairie jquery UI Dialog, Il est possible très facilement d'ouvrir des pages dans des fenêtres modales (ou « popin », « Lightbox »...) Dans votre contrôleur :

# On attache la librairie nécessaire
$build['#attached']['library'][] = 'core/drupal.dialog';

# On défini notre lien
$build['link'] = [
  'title' => $this->t("Contacter l'annonceur"),
  'url' => \Drupal\Core\Url::fromRoute('ma_page'),
  'attributes' => [
    'class' => ['use-ajax'],
    'data-dialog-type' => 'modal',
    'data-dialog-options' => Json::encode([
      'width' => 400, 
    ]),
  ],
];

 

Voir toutes les options qu'il est possible d'utiliser : https://jqueryui.com/dialog/#content

Pour faire la même chose directement dans un template twig :

{# on ajoute la librairie nécessaire #}
{{ attach_library('core/drupal.dialog')}}


{# Lien à ouvrir dans une modale #}
<a class="use-ajax" data-dialog-type="modal" data-dialog-options="{&quot;width&quot;:400}" href="{{ path('ma_page') }}">{{ "Contacter l'annonceur" }}</a>

 

Aller plus loin ?

Commentaires

Bonjour,. Je souhaite ouvrir des URL spécifiques (de mon site) dans une fenêtre modale. J'ai essayé d'utiliser ce lien pour un test. Merci!

Ajouter un commentaire

Ne sera pas publié

Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...