التدوينة السابقة: Developing Discourse Plugins - Part 1 - Create a basic plugin
البداية: القوالب
تطبيق عميل Discourse مكتوب باستخدام إطار عمل Ember.js لـ JavaScript. يستخدم Ember القوالب لتوليد HTML. يوجد مقدمة رائعة حول لغة القوالب في ذلك الرابط، لذا يُنصح بقراءتها بعناية.
المشكلة: إضافة عناصر إلى واجهة مستخدم Discourse
تحتاج العديد من الإضافات إلى إضافة وتوسيع واجهة الويب الخاصة بـ Discourse. نحن نوفر آلية للقيام بذلك تسمى “مخارج الإضافات” (plugin outlets) في قوالب Handlebars.
إذا تصفحت قوالب Discourse، فستجد غالبًا الرمز التالي:
<PluginOutlet @name="edit-topic" />
هذا يحدد مخارج إضافة باسم “edit-topic”. إنه نقطة تمديد في القالب يمكن لمطوري الإضافات استخدامها لإضافة علاماتهم الخاصة.
عند كتابة إضافتك، ابحث في قوالب Discourse (في ملفات .gjs) التي ترغب في تغييرها عن <PluginOutlet />. إذا لم يكن هناك واحد، فاطلب منا إضافته! سنكون سعداء بإضافتها إذا كان لديك حالة استخدام جيدة. إذا أردت تسريع وتسهيل هذه العملية، يرجى تقديم طلب سحب (pull request) على GitHub!
إذا أردت رؤية بعض الأماكن التي توجد فيها مخارج الإضافات، يمكنك تشغيل الأمر التالي في غلاف POSIX متوافق:
git grep -A 1 "<PluginOutlet" -- "*.gjs"
يمكنك أيضًا عرض مخارج الإضافات على موقع Discourse عن طريق تفعيل شريط أدوات مطوري Discourse. ما عليك سوى كتابة enableDevTools() في وحدة تحكم المتصفح على منتدى Discourse والنقر على أيقونة التوصيل التي تظهر على الجانب الأيسر من الصفحة.
الاتصال بمخرج إضافة
بمجرد العثور على مخرج الإضافة الذي ترغب في إضافته، يجب عليك كتابة connector له. الـ connector هو مكون .gjs يتضمن اسم الملف في مساره connectors/<اسم المخرج>.
على سبيل المثال، إذا كان قالب Discourse يحتوي على:
<PluginOutlet @name="evil-trout" />
فإن أي ملفات .gjs تنشئها في مجلد connectors/evil-trout سيتم إرفاقها تلقائيًا. لذا، إذا أنشأت الملف:
plugins/hello/assets/javascripts/discourse/connectors/evil-trout/hello.gjs
مع المحتوى التالي:
<template>
<b>Hello World</b>
</template>
فسيقوم Discourse بإدراج <b>Hello World</b> في تلك النقطة من القالب.
لاحظ أننا سمينا الملف hello.gjs — اسم الملف (بخلاف اسم المجلد) لا يهم، لكنه يجب أن يكون فريدًا عبر جميع الإضافات. من المفيد تسميته بما يصف بوضوح ما تقوم بتوسيعه. هذا سيُسهّل عملية التصحيح في المستقبل.
استكشاف الأخطاء وإصلاحها
- تحقق مرة أخرى من اسم الـ connector وتأكد من مطابقته تمامًا لاسم الإضافة.
معلومات إضافية
المزيد من السلسلة
الجزء 1: أساسيات الإضافات
الجزء 2: هذا الموضوع
الجزء 3: إعدادات الموقع
الجزء 4: إعداد git
الجزء 5: واجهات الإدارة
الجزء 6: اختبارات القبول
الجزء 7: نشر إضافتك
يتم التحكم في إصدارات هذا المستند — اقترح التغييرات على GitHub.



