Hola @david, ¿hay alguna posibilidad de mostrar el Modal desde un script en head_tag.html? Gracias.
Técnicamente podrías con una gran cantidad de hacks, pero no se recomienda.
En su lugar, podrías extender usando la API de plugins y luego activar el modal desde ese código. ¿Puedes explicar exactamente qué estás intentando hacer? ¿Ya has encontrado una solución para este problema?
Hola Sam, tengo una pregunta similar.
Para nuestro sitio, solo hemos utilizado la etiqueta head_tag para personalizarlo. Anteriormente, utilizábamos magnific con jQuery y iframe para poblar una ventana modal con elementos de lista interactivos de un dominio separado, pero razonamos que Discourse finalmente ha eliminado oficialmente magnific/jQuery recientemente porque hacer clic en los mismos enlaces no produce nada (tampoco nada en la consola).
Así que estoy buscando la mejor opción siguiente. ¿Puedes confirmar que usar DModal es la opción más apropiada para mis necesidades? ¡Cualquier ayuda sería de gran utilidad!
Aquí hay un código que usamos para adjuntar los desencadenadores de popup de 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
})
Hola Brandon:
En general, recomendamos evitar el uso de la ‘etiqueta head’ para personalizaciones complejas. En su lugar, deberías configurar un tema adecuado basado en git.
Una vez que lo tengas, sí, DModal es probablemente lo que necesitas. Tenemos algo de documentación al respecto aquí:
Hola David, gracias por la respuesta.
Tenemos un tema personalizado basado en git donde modificamos principalmente nuestro javascript en head_tag.html; lamento si eso no quedó claro. Hemos estado usando etiquetas script para cualquier plantilla handlebar, pero veo que se recomienda utilizar archivos dedicados para ciertas plantillas de conector.
¿Puedes confirmar que magnific ya no es compatible con Discourse? Estoy tratando de determinar la causa de la interrupción de la funcionalidad de nuestra ventana emergente.
No tengo conocimiento de ningún cambio en magnificPopup, pero planeamos eliminarlo pronto, por lo que recomendaría migrar a la API documentada de DModal.
Algo que ha cambiado recientemente es la forma en que cargamos JQuery. Ahora está disponible un poco más tarde en el proceso de arranque. Por lo tanto, window.JQuery puede no estar disponible hasta después de que Discourse se haya iniciado.
Puedes hacer que tu script se ejecute después del arranque cambiando <script> por un ‘inicializador de plugin’ de Discourse:
<script type="text/discourse-plugin" version="0.8">