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

Good day! This post could not be written any better! Reading this post reminds me of my previous roommate! He always kept chatting about this. https://www.assignmentuk.co.uk/write-my-assignment I will forward this write-up to him. Fairly certain he will have a good read. Thanks for sharing!

Ajouter un commentaire

Ne sera pas publié

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