Puis-je afficher une modale depuis head_tag

Salut @david , y a-t-il une possibilité d’afficher la modale à partir d’un script dans head_tag.html ? Merci

Techniquement, vous pourriez le faire avec une quantité importante de piratages, mais ce n’est pas recommandé.

Au lieu de cela, vous étendriez en utilisant l’API des plugins, puis déclencheriez la fenêtre modale à partir de ce code. Pouvez-vous expliquer exactement ce que vous essayez de faire ? Avez-vous déjà trouvé une solution à ce problème ?

1 « J'aime »

Salut Sam, j’ai une question similaire.

Pour notre site, nous n’avons utilisé que la balise head_tag pour le personnaliser. Auparavant, nous utilisions magnific avec jQuery et iframe pour remplir une modale avec des éléments de liste interactifs d’un domaine distinct, mais nous avons estimé que Discourse avait finalement abandonné officiellement magnific/jQuery récemment car cliquer sur les mêmes liens ne produit rien (rien dans la console non plus).

Je cherche donc la meilleure option suivante. Pouvez-vous confirmer que l’utilisation de DModal est l’option la plus appropriée pour mes besoins ? Toute aide serait très utile !

Voici un extrait de code que nous utilisions pour attacher les déclencheurs de popup magnific.

   if (window.jQuery) {
        const $document = $(document)
        $document.on('click', '.otpc-magnific-trigger', function() {
            var $button = $(this)
            if ($button.hasClass('initialized')) {
                $button.magnificPopup('open')
            } else {
                $button.magnificPopup({
            type: 'inline',
            preloader: false
          })
                $button.magnificPopup('open')
                $button.addClass('initialized')
            }
            return false
        })

Salut Brandon,

En général, nous recommandons d’éviter d’utiliser la « balise head » pour des personnalisations complexes. Vous devriez plutôt envisager de configurer un thème basé sur Git.

Une fois que vous l’aurez, oui, DModal est probablement ce dont vous avez besoin. Nous avons de la documentation à ce sujet ici :

1 « J'aime »

Salut David, merci pour ta réponse.

Nous avons bien un thème personnalisé basé sur Git où nous modifions principalement notre javascript dans head_tag.html ; désolé si cela n’était pas clair. Nous avons utilisé des balises script pour tous les modèles handlebar, mais je vois qu’il est recommandé d’utiliser des fichiers dédiés pour certains modèles de connecteur.

Peux-tu confirmer que magnific n’est plus compatible avec Discourse ? J’essaie de déterminer la cause de la rupture de notre fonctionnalité popup.

1 « J'aime »

Je ne suis au courant d’aucun changement apporté à magnificPopup, mais nous prévoyons de le supprimer bientôt, je vous recommande donc de passer à l’API DModal documentée.

Une chose qui a changé récemment est la façon dont nous chargeons JQuery. Il est maintenant disponible un peu plus tard dans le processus de démarrage. Ainsi, window.JQuery peut ne pas être disponible avant que Discourse n’ait démarré.

Vous pouvez faire en sorte que votre script s’exécute après le démarrage en remplaçant <script> par un ‘initialiseur de plugin’ Discourse :

<script type="text/discourse-plugin" version="0.8">
1 « J'aime »