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?
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:
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.
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">