في إطار سعينا المستمر لتوحيد أنظمة العرض عبر قاعدة بيانات Discourse، نقوم باستبدال تنفيذ قائمة الموضوعات.
في السابق، كان هذا يستخدم نهج “المقابض الخام” (.hbr)، ويمكن تخصيصه عبر تجاوزات القوالب ومنافذ الإضافات الخام. يستخدم التنفيذ الجديد لقائمة الموضوعات مكونات Glimmer الحديثة، وقد تم بناؤه من الألف إلى الياء ليكون قابلاً للتخصيص بطرق مستدامة.
التنفيذ الجديد متاح الآن خلف الإعداد glimmer_topic_list_mode.
disabled: استخدام قائمة الموضوعات القديمة “المقابض الخام”.auto: سيقوم بالكشف عن توافق الإضافات والمظاهر الحالية لديك. إذا كانت أي منها غير متوافقة، فسيستخدم النظام القديم؛ وإلا فسيستخدم التنفيذ الجديد.enabled: سيستخدم التنفيذ الجديد لقائمة الموضوعات. إذا كانت لديك أي إضافات أو مظاهر غير متوافقة، فقد يتعطل موقعك.
لقد قمنا بالفعل بتحديث معظم مظاهرنا وإضافاتنا الرسمية لتكون متوافقة مع القائمة الجديدة. ولكن، إذا كنت تستخدم أي إضافات أو مظاهر أو مكونات مظاهر خارجية تقوم بتخصيص قائمة الموضوعات، فستحتاج إلى ترقيتها.
سيتم طباعة تحذيرات في وحدة تحكم المتصفح تحدد مصدر عدم التوافق.
الجدول الزمني للإطلاق
هذه تقديرات تقريبية قابلة للتغيير
الربع الرابع 2024:
الانتهاء من التنفيذ الأساسي
تحديث المظاهر/الإضافات الرسمية (قيد التقدم)
تم التمكين في Meta
نشر نصائح الترقية
الربع الأول 2025:
-
تحديث المظاهر/الإضافات الرسمية -
سيتم تعيين glimmer_topic_list_modeافتراضيًا إلىauto؛ سيتم تمكين رسائل إيقاف الاستخدام في وحدة التحكم -
ستؤدي إيقافات الاستخدام إلى ظهور لافتة تحذير للمسؤول لأي مشاكل متبقية -
يجب تحديث الإضافات والمظاهر الخارجية
-
1 مارس - تمكين قائمة الموضوعات الجديدة لجميع المواقع. سيتم تبديل الإعداد الافتراضي للموقع إلى enabled، ولكن سيظل من الممكن العودة إلى ‘disabled’
الربع الثاني 2025
بعد 1 أبريل - الإزالة النهائية للوضع القديم والكود المرتبط به
ماذا يعني هذا بالنسبة لي؟
إذا كانت الإضافة أو المظهر الخاص بك يحتوي على أي ملفات “مقابض خام” (مسماة .hbr أو .raw.hbs)، فستحتاج هذه الملفات إلى تحديث لتكون متوافقة مع الإصدار الجديد. الملفات .hbs العادية لمكونات/مسارات Ember غير متأثرة بهذا التغيير.
ستكون الترقيات مطلوبة أيضًا إذا كنت تستخدم modifyClass على component:topic-list أو component:topic-list-item.
إذا كان موقعك يحتوي على أي من هذه التخصيصات غير المتوافقة، فسيتم طباعة رسائل تحذير في وحدة تحكم مطوري المتصفح، بما في ذلك معلومات حول المظهر/الإضافة التي تسبب المشكلة.
ما هي البدائل؟
تم تحويل بعض منافذ الإضافات القديمة إلى منافذ إضافات عادية. يمكن تحديث هذه بشكل مباشر.
ستحتاج التخصيصات الأكثر تقدمًا إلى تقييمها على أساس كل حالة على حدة. تحتوي قائمة الموضوعات الجديدة على عدد من واجهات برمجة التطبيقات الجديدة للتخصيص السهل والقوي. اكتشف المزيد هنا:
إليك بعض الأمثلة:
-
discourse-assignيقدم عمودًا جديدًا لقائمة موضوعات محددة -
discourse-calendarيستخدم أحد منافذ الإضافات الجديدة لعرض شارة تاريخ الحدث -
discourse-solvedيستخدمvalueTransformerجديد لاستبدالmodifyClassالسابق
ماذا عن التخصيصات الأخرى؟
إذا لم يكن من الممكن تحقيق التخصيص الخاص بك باستخدام واجهات برمجة التطبيقات الجديدة التي قدمناها، فيرجى إخبارنا عن طريق إنشاء موضوع Dev جديد للمناقشة.
أنا مؤلف إضافة/مظهر. كيف أقوم بتحديث مظهر/إضافة لدعم كل من قائمة الموضوعات القديمة والجديدة أثناء الانتقال؟
يتم عرض منافذ الإضافات الجديدة في كل من التنفيذ القديم والجديد لقائمة الموضوعات. لذا: عندما تقوم بتنفيذ التنفيذ الجديد، ما عليك سوى حذف موصل منفذ الإضافة القديم.
بالنسبة للتخصيصات المستندة إلى DAG التي تستبدل تجاوزات القوالب أو المنافذ غير الحديثة، ستحتاج إلى الاحتفاظ بكلا التنفيذين خلال الفترة الانتقالية.
بمجرد أن يدعم مظهرك/إضافتك كلا التنفيذين القديم والجديد، يمكنك إضافة هذا التعليق السحري في أعلى جميع ملفات .hbr الخاصة بك:
{{!-- has-modern-replacement --}}
سيؤدي هذا إلى إسكات رسائل إيقاف الاستخدام، والسماح باستخدام التنفيذ الجديد عند التعيين على الوضع “auto”.


