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



