Posso mostrar um modal da tag head?

oi @david , há alguma chance de mostrar o Modal a partir de um script em head_tag.html? Obrigado

Tecnicamente, você poderia com uma quantidade enorme de hacks, mas não é recomendado.

Em vez disso, você estenderia usando a API de plugin e, em seguida, acionaria o modal a partir desse código. Você pode explicar exatamente o que está tentando fazer? Você já contornou esse problema?

1 curtida

Olá Sam, tenho uma pergunta semelhante.

Para o nosso site, utilizamos apenas a head_tag para personalizá-lo. Anteriormente, utilizávamos o magnific com jQuery e iframe para popular um modal com itens de lista interativos de um domínio separado, mas raciocinamos que o Discourse finalmente abandonou oficialmente o magnific/jQuery recentemente, pois clicar nos mesmos links não produz nada (nada no console também).

Então, estou procurando a próxima melhor opção. Você pode confirmar que usar o DModal é a opção mais apropriada para minhas necessidades? Qualquer ajuda seria super útil!

Aqui está um código que usamos para anexar gatilhos 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
        })

Olá Brandon,

Em geral, recomendamos evitar o uso da ‘tag head’ para personalizações complexas. Em vez disso, você deve configurar um tema adequado baseado em git.

Depois de ter isso, sim, DModal é provavelmente o que você precisa. Temos alguma documentação sobre isso aqui:

1 curtida

Olá David, obrigado pela resposta.

Temos um tema personalizado baseado em Git onde modificamos principalmente nosso JavaScript em head_tag.html; desculpe se isso não ficou claro. Temos usado tags de script para quaisquer modelos Handlebars, mas vejo que é recomendado utilizar arquivos dedicados para certos modelos de conector.

Você pode confirmar que o Magnific não é mais compatível com o Discourse? Estou tentando determinar a causa da quebra da nossa funcionalidade de popup.

1 curtida

Não estou ciente de nenhuma alteração no magnificPopup, mas planejamos removê-lo em breve, então recomendo migrar para a API DModal documentada.

Uma coisa que mudou recentemente é a forma como carregamos o JQuery. Ele agora fica disponível um pouco mais tarde no processo de inicialização. Assim, window.JQuery pode não estar disponível até depois que o Discourse for inicializado.

Você pode fazer seu script ser executado após a inicialização, trocando <script> por um ‘plugin initializer’ do Discourse:

<script type="text/discourse-plugin" version="0.8">
1 curtida