إنشاء إضافة في Discourse يمكن أن يكون بسيطًا للغاية بمجرد أن تتعلم بعض الخصائص الفريدة. هدف هذا المنشور هو إنشاء هيكل أساسي لإضافة وتعريفك بالأساسيات.
بيئة التطوير الخاصة بك
تأكد من وجود بيئة تطوير لـ Discourse تعمل على جهازك. أنصحك باستخدام دليل الإعداد المناسب والعودة عندما تنتهي.
plugin.rb
استخدم GitHub - discourse/discourse-plugin-skeleton: Template for Discourse plugins · GitHub لإنشاء هيكل كامل لإضافة Discourse في مجلد الإضافات الخاص بك
الهيكل الأساسي مُضمّن الآن في نواة Discourse، وسيفتح الأمر
rake plugin:create[plugin-name]إضافة باستخدام هذا الهيكل.
عند بدء تشغيل Discourse، يبحث في مجلد plugins عن مجلدات فرعية تحتوي على ملف plugin.rb. يحتوي ملف plugin.rb على غرضين: الأول هو كونه مظهرًا لإضافتك مع المعلومات المطلوبة عنها، بما في ذلك: اسمها، ومعلومات الاتصال، ووصف. والغرض الثاني هو تهيئة أي كود 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.
التحقق من تحميل إضافتك
بمجرد إعادة تشغيل الخادم المحلي الخاص بك، قم بزيارة عنوان URL /admin/plugins (تأكد من أنك تسجيل الدخول كحساب مدير أولاً، حيث يمكن للمديرين فقط رؤية سجل الإضافات).
إذا نجح كل شيء، يجب أن ترى إضافتك في القائمة:
تهانينا، لقد أنشأت أول إضافة لك!
دعنا نضيف بعض جافا سكريبت
في الوقت الحالي، إضافتك لا تفعل شيئًا. دعنا نضيف ملف جافا سكريبت سيظهر مربع تنبيه عند تحميل Discourse. سيكون هذا مزعجًا جدًا لأي مستخدم ولا يُنصح به كإضافة فعلية، لكنه سيوضح كيفية إدراج جافا سكريبت في التطبيق قيد التشغيل.
أنشئ الملف التالي:
plugins/basic-plugin/assets/javascripts/discourse/initializers/alert.js
export default {
name: "alert",
initialize() {
alert("مربعات التنبيه مزعجة!");
},
};
الآن إذا قمت بإعادة تشغيل الخادم المحلي الخاص بك، يجب أن ترى عبارة “مربعات التنبيه مزعجة!” تظهر على الشاشة. (إذا لم يحدث ذلك، راجع عنوان “لم يتم اكتشاف تغييراتي” أعلاه).
دعنا نخطو خطوة بخطوة كيف عمل هذا:
-
يتم تنفيذ ملفات جافا سكريبت الموضوعة في
assets/javascripts/discourse/initializersتلقائيًا عند تحميل تطبيق Discourse. -
هذا الملف بالتحديد يُصدّر كائنًا واحدًا يحتوي على
nameودالةinitialize. -
يجب أن يكون
nameفريدًا، لذا قمت بتسميتهalertفقط. -
تُستدعى دالة
initialize()عند تحميل التطبيق. في حالتنا، كل ما تفعله هو تنفيذ كودalert()الخاص بنا.
أنت الآن مطور إضافات رسمي في Discourse!
المزيد في السلسلة
الجزء 1: هذا الموضوع
الجزء 2: مخارج الإضافات
الجزء 3: إعدادات الموقع
الجزء 4: إعداد git
الجزء 5: واجهات الإدارة
الجزء 6: اختبارات القبول
الجزء 7: نشر إضافتك
يتم التحكم في إصدار هذا المستند - اقترح تغييرات على GitHub.

