إنشاء إضافة في Discourse يمكن أن يكون بسيطًا للغاية، بمجرد أن تتعلم بعض الخواص الغريبة. الهدف من هذا المنشور هو إنشاء هيكل عظمي للإضافة وتعريفك بالأساسيات.
بيئة التطوير الخاصة بك
تأكد من أن لديك بيئة تطوير Discourse تعمل على جهاز الكمبيوتر الخاص بك. أنصحك باستخدام دليل الإعداد المناسب والعودة هنا بعد الانتهاء.
plugin.rb
استخدم GitHub - discourse/discourse-plugin-skeleton: Template for Discourse plugins · GitHub لإنشاء هيكل عظمي كامل لإضافة Discourse في دليل الإضافات الخاص بك
الهيكل العظمي الآن مدمج في نواة Discourse، و
rake plugin:create[اسم-الإضافة]سينشئ إضافة باستخدام هذا الهيكل
عند بدء تشغيل Discourse، يبحث في دليل plugins عن أدلة فرعية تحتوي على ملف plugin.rb. ملف plugin.rb له غرضان: فهو manifesto للإضافة الخاصة بك مع المعلومات المطلوبة عنها بما في ذلك: اسمها، معلومات الاتصال ووصفها. الغرض الثاني هو تهيئة أي كود Ruby ضروري لتشغيل الإضافة.
في حالتنا، لن نضيف أي كود Ruby ولكننا لا زلنا بحاجة إلى plugin.rb. دعنا ننشئ الدليل basic-plugin مع ملف plugin.rb بداخله، بالمحتويات التالية:
basic-plugin/plugin.rb
# name: basic-plugin
# about: إضافة بسيطة للغاية لتوضيح كيفية عمل الإضافات
# version: 0.0.1
# authors: مطور إضافات رائع
# url: https://github.com/yourusername/basic-plugin
بمجرد إنشاء هذا الملف، يجب أن تعيد تشغيل خادمك المحلي وستتم تحميل الإضافة.
نقطة مهمة يجب الانتباه لها!
إذا كنت معتادًا على تطوير Rails العادي، قد تلاحظ أن الإضافات ليست لطيفة بنفس القدر عندما يتعلق الأمر بإعادة التحميل. بشكل عام، عند إجراء تغييرات على إضافتك، يجب عليك Ctrl+c لإيقاف تشغيل الخادم، ثم تشغيله مرة أخرى باستخدام bin/dev.
لم يتم التقاط تغييراتي! 
أحيانًا لا يتم مسح ذاكرة التخزين المؤقت بالكامل، خاصة عند إنشاء ملفات جديدة أو حذف ملفات قديمة. للتغلب على هذه المشكلة، احذف مجلد tmp وأعد تشغيل Rails. على نظام Mac، يمكنك القيام بذلك في أمر واحد: rm -rf tmp; bin/dev.
التحقق من أن إضافتك تم تحميلها
بمجرد إعادة تشغيل خادمك المحلي، قم بزيارة الرابط /admin/plugins (تأكد من أنك مسجل الدخول كحساب مدير أولاً، لأن المديرين فقط يمكنهم رؤية سجل الإضافات).
إذا كل شيء عمل بشكل صحيح، يجب أن ترى إضافتك في القائمة:
تهانينا، لقد أنشأت إضافتك الأولى!
دعنا نضيف بعض JavaScript
حاليًا إضافتك لا تفعل أي شيء. دعنا نضيف ملف JavaScript سيظهر مربع تنبيه عند تحميل Discourse. هذا سيكون مزعجًا للغاية لأي مستخدم ولا يُنصح به كإضافة فعلية، لكنه سيوضح كيفية إدراج JavaScript في تطبيقنا قيد التشغيل.
أنشئ الملف التالي:
plugins/basic-plugin/assets/javascripts/discourse/initializers/alert.js
export default {
name: "alert",
initialize() {
alert("مربعات التنبيه مزعجة!");
},
};
الآن إذا أعدت تشغيل خادمك المحلي، يجب أن ترى “مربعات التنبيه مزعجة!” تظهر على الشاشة. (إذا لم يحدث ذلك، انظر إلى قسم “لم يتم التقاط تغييراتي” أعلاه).
دعنا نوضح كيف عمل هذا:
-
ملفات JavaScript الموجودة في
assets/javascripts/discourse/initializersيتم تنفيذها تلقائيًا عند تحميل تطبيق Discourse. -
هذا الملف بالتحديد
exports كائن واحد، لهnameووظيفةinitialize. -
يجب أن يكون
nameفريدًا، لذا سميتهاalert. -
يتم استدعاء وظيفة
initialize()عند تحميل التطبيق. في حالتنا، كل ما تفعله هو تنفيذ كودalert()الخاص بنا.
أنت الآن مطور إضافات Discourse رسمي!
المزيد في السلسلة
الجزء 1: هذا الموضوع
الجزء 2: Plugin Outlets
الجزء 3: Site Settings
الجزء 4: git setup
الجزء 5: Admin interfaces
الجزء 6: Acceptance tests
الجزء 7: Publish your plugin
هذا المستند خاضع لإدارة الإصدارات - اقترح التغييرات على github.

