كجزء من مشروعنا لترقية Discourse إلى أحدث إصدار من Ember، عملنا على إعادة هيكلة كبيرة لمسارات الاكتشاف (المعروفة أيضًا باسم “قائمة الموضوعات”).
هذا الموضوع موجه لمطوري الثيمات/الإضافات، ويهدف إلى سرد أنواع أنشطة الثيمات/الإضافات التي قد تتأثر بإعادة الهيكلة.
خلفية
تعد إعادة الهيكلة هذه ضرورية لأن Ember الحديث لم يعد يدعم “المنافذ المسماة” مثل {{outlet "topics"}}، والتي كنا نستخدمها بشكل مكثف في هذه المسارات. في الأساس، تم تحويل جميع وحدات التحكم/القوالب التي تم عرضها سابقًا في منافذ مسماة إلى مكونات.
على طول الطريق، اغتنمنا الفرصة لتحديث وتوحيد التعليمات البرمجية ذات الصلة (على سبيل المثال، تشترك جميع أنواع مسارات الاكتشاف الآن في نفس وحدة التحكم والقالب)
لم يتم الانتهاء من تنفيذ التغيير في النواة بعد، ولكن يمكن العثور على عمل قيد التقدم في هذا الفرع. ليس لدينا تاريخ محدد للدمج، ولكن نتوقع أن يتم ذلك خلال الأسابيع القليلة القادمة. إذا كانت لديك أي أسئلة أو مخاوف، فيرجى إخبارنا!
ما هي أنشطة الثيمات/الإضافات المتأثرة؟
تؤثر إعادة الهيكلة هذه بشكل أساسي على طبقة “وحدة التحكم”. المسارات لم تتغير إلى حد كبير، وكل شيء من المكون <TopicList /> وما دونه لم يتأثر أيضًا.
نتوقع أن يكون التأثير الوحيد على الثيمات/الإضافات التي تصل بعمق إلى التعليمات البرمجية الأساسية (على سبيل المثال، عبر modifyClass وتجاوزات القوالب). الواجهات المحددة والمنافذ لم تتأثر.
تجاوزات القوالب
تم إعادة هيكلة هذه القوالب إلى مكونات. أي تجاوزات موجودة ستتوقف عن العمل بصمت
navigation/categoriesnavigation/categorynavigation/defaultnavigation/filterdiscovery/topics
تم إعادة هيكلة هذه القوالب بشكل كبير. من المحتمل أن تتسبب أي تجاوزات قوالب موجودة في أخطاء كارثية على الموقع.
discoverytag/showuser-topics-listuser/messagesdiscovery/categoriescomponents/basic-topic-listcomponents/d-navigation
من الناحية الفنية، من الممكن تجاوز القوالب الجديدة التي تم تقديمها بهذا التغيير. ومع ذلك، لا يُنصح بتجاوزات القوالب وهي في طريقها للخروج.
لذلك، يجب إزالة جميع تجاوزات القوالب واستبدالها بواجهات توسيع أكثر قوة (على سبيل المثال، منافذ الإضافات). إذا كان هناك أي شيء تفعله ولا يبدو ممكنًا مع نقاط التوسيع الحالية في Discourse، فيرجى إخبارنا!
استدعاءات modifyClass و lookup()
لم تعد هذه الفئات موجودة. سيتوقف modifyClass عن العمل بصمت. ستعيد عمليات البحث القيمة الفارغة (وبالتالي قد تؤدي إلى أخطاء). في معظم الحالات الشائعة، قدمنا دعامات للتوافق مع الإصدارات السابقة (انظر الحواشي السفلية)
controller:discoverycontroller:discovery/topics[1]controller:discovery-sortable(->controller:discovery/list)controller:discovery-filter(->controller:discovery/filter)controller:navigation/categoriescontroller:navigation/category[2]controller:navigation/defaultcontroller:tag/show[3]controller:discovery.*(->controller:discovery/list)
خضعت هذه الفئات لإعادة هيكلة كبيرة. قد تتطلب استدعاءات modifyClass و lookup إعادة هيكلة:
route/discoveryroute/discovery.*route/tag-show
المسارات
أسماء المسارات (أي router.currentRouteName) لم تتغير
خطافات model() لمسار الاكتشاف (أي router.currentRoute.attributes) لم تتغير في الغالب
منافذ الإضافات
جميع منافذ الإضافات وحججها لم تتغير.
HTML / CSS
لم تتأثر بنية HTML والفئات إلى حد كبير