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

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>

 

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é
CAPTCHA
Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...