تحديث Discourse الأخير أحدث خللاً في plugin outlet بطريقة غريبة

لقد أدى أحد التغييرات التي طرأت على Discourse في الأسبوع الماضي تقريبًا إلى تعطيل المكون الإضافي الخاص بي ولا يمكنني معرفة ما هو الخطأ بالفعل أو كيفية إصلاحه. لقد عمل المكون الإضافي لسنوات عديدة حتى هذه النقطة.

يقوم المكون الإضافي بالعديد من الأشياء، ولكن الشيء الذي يبدو ذا صلة هنا هو إضافة زر إلى صفحة ملف تعريف المستخدم.

الآن، عندما أزور تلك الصفحة لأي مستخدم، لا يتم عرض معظم الصفحة (بما في ذلك الزر الذي يهدف المكون الإضافي الخاص بي إلى إضافته):

(إذا قمت بتعطيل المكون الإضافي عبر زر الإعدادات الخاص به، فسيتم عرض الصفحة بشكل صحيح.)

تُظهر وحدة تحكم JavaScript في Chrome الاستثناء التالي وتتبع المكدس في كل مرة يتم فيها تحديث هذه الصفحة:

لست متأكدًا مما يجب أن أستنتجه من هذا الخطأ لأنه ليس الكود الخاص بي، و t الذي هو not a function ليس على السطر، أو أي شيء قريب منه، والذي يأتي منه الاستثناء. مربك للغاية. لكنني لست خبيرًا في JavaScript، لذا ربما أفتقد شيئًا ما هنا.

من خلال التتبع باستخدام مصحح Chrome، تحدث المشكلة في هذا السطر أثناء معالجة قالب المكون الإضافي الخاص بي، ولكن لا يمكنني رؤية ما يسبب المشكلة بالفعل، أو ما إذا كان ذلك بسبب شيء أحتاج إلى تغييره/تحديثه أو خطأ في Discourse نفسه.

يوجد كود JavaScript الخاص بالمكون الإضافي وقالب HBS الذي أعتقد أنه متورط في موصل user-profile-primary الخاص بي، والذي يمكن العثور عليه هنا:

لا أعرف على وجه اليقين، ولكن بدا لي أن هذه الالتزامات الأخيرة لـ Discourse قد تكون متورطة:

ستكون أي اقتراحات موضع تقدير كبير!

مرحباً @LeoDavidson - شكراً لك على طرح هذه المشكلة. أنت على الأرجح على حق في أن الأمر يتعلق بتلك الالتزامات - سأتعمق في الأمر وأحاول معرفة ما الذي تغير. لم أكن أنوي إدخال أي تغييرات في السلوك.

ولكن في غضون ذلك، سيؤدي طلب السحب هذا إلى إصلاح المشكلة عن طريق نقل موصلات المكون الإضافي الخاص بك إلى تخطيط دليل أكثر شيوعاً:

10 إعجابات

شكراً جزيلاً! سواء على طلب السحب (PR) أو لكونك سريعًا جدًا. لقد قمت بتطبيقه للتو وكل شيء يبدو جيدًا الآن!

4 إعجابات

لقد بحثت فيما تسبب في هذا التغيير في السلوك. تم تحديد مواقع الموصلات على النحو التالي:

assets/javascripts/discourse/templates/user/connectors/{outlet-name}/{unique-name}.js
assets/javascripts/discourse/templates/user/connectors/{outlet-name}/{unique-name}.hbs

هذا المسار الإضافي /user/ في المسار يعني أنه لم يتم اكتشافه بواسطة منطق unColocateConnectors الخاص بنا.

لقد بحثت في all-the-plugins و all-the-themes ولم أجد أي تكرارات أخرى لهذا التخطيط للمجلد. لذلك، سأترك الأمور كما هي في الوقت الحالي، ما لم نحصل على المزيد من التقارير عن مشكلات.

4 إعجابات

تم إغلاق هذا الموضوع تلقائيًا بعد 554 يومًا. لم يعد الرد على المواضيع الجديدة مسموحًا به.