head_tag에서 모달을 표시할 수 있나요?

hi @david, head_tag.html에서 스크립트로 Modal을 표시할 수 있는 방법이 있을까요? 감사합니다

기술적으로는 상당한 해킹을 통해 가능하지만, 권장되지 않습니다.

대신 플러그인 API를 사용하여 확장한 후, 해당 코드에서 모달을 트리거하도록 하세요. 정확히 어떤 작업을 시도하고 계신지 설명해 주시겠어요? 이 문제를 이미 우회하여 해결해 보셨나요?

샘, 안녕하세요. 비슷한 질문이 있습니다.

저희 사이트는 커스터마이징을 위해 head_tag만 사용하고 있습니다. 이전에는 magnific와 jQuery, iframe을 사용하여 다른 도메인에서 상호작용 가능한 목록 항목으로 모달을 채우는 방식을 사용했습니다. 하지만 동일한 링크를 클릭하면 아무 반응이 없기(콘솔에도 아무 메시지가 뜨지 않음) 때문에, Discourse가 최근 magnific/jQuery를 공식적으로 단계적으로 폐기했으리라 판단했습니다.

그래서 다음으로 최선의 대안을 찾고 있습니다. 제 필요에 가장 적합한 옵션이 DModal인지 확인해 주실 수 있을까요? 도움이 정말로 큰 힘이 될 것입니다!

다음은 이전에 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
        })

Brandon님,

일반적으로 복잡한 커스터마이징을 위해 'head 태그’를 사용하는 것을 권장하지 않습니다. 대신, 제대로 된 git 기반 테마를 설정하는 것을 권장합니다.

테마를 설정한 후에는, 네, DModal이 아마도 필요하신 기능일 것입니다. 관련 문서가 여기에 있습니다:

데이비드님, 답변해 주셔서 감사합니다.

저희는 git 기반의 커스텀 테마를 사용하고 있으며, 주로 head_tag.html 파일에서 JavaScript를 수정하고 있습니다. 이 부분이 명확하지 않았다면 죄송합니다. 저희는 핸들바(Handlebar) 템플릿에 스크립트 태그를 사용해 왔지만, 특정 커넥터 템플릿에는 전용 파일을 사용하는 것이 권장된다는 점을 확인했습니다.

Magnific이 더 이상 Discourse와 호환되지 않는지 확인해 주실 수 있을까요? 팝업 기능이 깨지는 원인을 파악하려고 하고 있습니다.

magnificPopup에 대한 변경 사항은 인지하고 있지 않지만, 곧 제거할 계획이 있으므로 문서화된 DModal API로 전환하는 것을 권장합니다.

최근 변경된 사항 중 하나는 JQuery를 로드하는 방식입니다. 이제 부팅 과정에서 약간 늦은 시점에 사용 가능해집니다. 따라서 Discourse가 부팅된 후에야 window.JQuery가 사용 가능할 수 있습니다.

<script>를 Discourse '플러그인 초기화 프로그램’으로 전환하면 스크립트가 부팅 후에 실행되도록 할 수 있습니다:

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