هل يمكنني عرض مودال من head_tag؟

مرحباً @david، هل هناك أي فرصة لعرض النافذة المنبثقة من نص برمجي في head_tag.html؟ شكراً لك.

من الناحية الفنية يمكنك ذلك باستخدام الكثير من الحيل، ولكن لا يُنصح بذلك.

بدلاً من ذلك، يمكنك التوسيع باستخدام واجهة برمجة تطبيقات المكونات الإضافية (plugin API) ثم تشغيل النافذة المنبثقة من هذا الرمز، هل يمكنك شرح ما تحاول القيام به بالضبط؟ هل قمت بالفعل بالتحايل على هذه المشكلة؟

إعجاب واحد (1)

مرحباً سام، لدي سؤال مشابه.

بالنسبة لموقعنا، لقد استخدمنا فقط الوسم head_tag لتخصيصه. في السابق، استخدمنا magnific مع jQuery و iframe لملء نافذة منبثقة بعناصر قائمة قابلة للتفاعل من نطاق منفصل، ولكننا استنتجنا أن Discourse قد تخلص أخيرًا رسميًا من magnific/jQuery مؤخرًا لأن النقر على نفس الروابط لا ينتج عنه شيء (لا شيء في وحدة التحكم أيضًا).

لذا أنا أبحث عن الخيار الأفضل التالي. هل يمكنك تأكيد أن استخدام DModal هو الخيار الأنسب لاحتياجاتي؟ أي مساعدة ستكون مفيدة للغاية!

إليك بعض الأكواد التي استخدمناها لإرفاق مشغلات magnific popup.

   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
        })

مرحباً براندون،

بشكل عام، نوصي بتجنب استخدام “علامة الرأس” (head tag) لأي تخصيصات معقدة. بدلاً من ذلك، يجب أن تفكر في إعداد سمة قائمة على Git.

بمجرد حصولك على ذلك، نعم، DModal هو على الأرجح ما تحتاجه. لدينا بعض الوثائق حول هذا هنا:

إعجاب واحد (1)

مرحباً ديفيد، شكراً على الرد.

لدينا سمة مخصصة تعتمد على git حيث نقوم بشكل أساسي بتعديل جافاسكريبت الخاص بنا في head_tag.html؛ عذراً إذا لم يكن ذلك واضحاً. لقد كنا نستخدم علامات script لأي قوالب handlebar، ولكنني أرى أنه يوصى باستخدام ملفات مخصصة لقوالب موصلات معينة.

هل يمكنك تأكيد أن magnific لم يعد متوافقاً مع Discourse؟ أحاول تحديد سبب تعطل وظيفة النافذة المنبثقة لدينا.

إعجاب واحد (1)

لست على علم بأي تغيير في magnificPopup، ولكننا نخطط لإزالته قريبًا لذا أوصي بالانتقال إلى واجهة برمجة تطبيقات DModal الموثقة.

أحد الأشياء التي تغيرت مؤخرًا هو الطريقة التي نقوم بها بتحميل JQuery. أصبح متاحًا الآن بعد ذلك بقليل في عملية التمهيد. لذلك، قد لا يكون window.JQuery متاحًا إلا بعد تشغيل Discourse.

يمكنك جعل البرنامج النصي الخاص بك يعمل بعد التمهيد عن طريق تبديل <script> إلى “مُهيئ المكون الإضافي” الخاص بـ Discourse:

<script type="text/discourse-plugin" version="0.8">
إعجاب واحد (1)