Creating a Plugin
يوضح هذا الدليل خطوة بخطوة إنشاء إضافة Chamilo أساسية. للحصول على تفاصيل إضافية، انظر صفحة ويكي تطوير الإضافات.
الخطوة 1: إنشاء مجلد الإضافة
أنشئ مجلدًا في public/plugin/. يجب أن يتطابق اسم المجلد مع معرف الإضافة الخاصة بك:
public/plugin/MyPlugin/الخطوة 2: تعريف فئة الإضافة
أنشئ src/MyPluginPlugin.php. تمتد الفئة من Plugin وتتبع نمط الـ singleton:
<?php
class MyPluginPlugin extends Plugin
{
protected function __construct()
{
$settings = [
'tool_enable' => 'boolean',
'api_key' => 'text',
];
parent::__construct('1.0', 'Your Name', $settings);
}
public static function create(): static
{
static $instance = null;
return $instance ??= new static();
}
}أنواع الإعدادات المتاحة
boolean
Checkbox on/off
text
Single-line text input
select
Dropdown (provide options array)
wysiwyg
Rich text editor
html
Raw HTML field
checkbox
Checkbox
user
User selector
بالنسبة لإعدادات select:
الوصول إلى الإعدادات أثناء التشغيل:
الخطوة 3: إنشاء plugin.php
plugin.php في جذر الإضافة مطلوب. يجب أن يعين $plugin_info:
الخطوة 4: إنشاء نصوص التثبيت والإزالة
install.php:
uninstall.php:
قم بتنفيذ إنشاء/حذف المخطط الفعلي داخل الفئة باستخدام SchemaTool الخاص بـ Doctrine.
الخطوة 5: إضافة الترجمات
أنشئ ملفات اللغة في lang/ باستخدام رموز اللغات (مثل en_US.php، fr_FR.php، es_ES.php). الاحتياطي هو en_US.php.
الوصول إلى الترجمات عبر $plugin->get_lang('key').
الخطوة 6: إدخال المحتوى عبر مناطق العرض
يمكن للإضافات إدخال HTML في 18 منطقة محددة مسبقًا من الواجهة الأمامية Vue. قم بتجاوز renderRegion() في فئتك:
تشمل المناطق المتاحة: content_bottom، content_top، course_tool_plugin، footer_center، footer_left، footer_right، header_center، header_left، header_main، header_right، login_bottom، login_top، main_bottom، main_top، menu_administrator، menu_bottom، menu_top، pre_footer.
الخطوة 7: الاستجابة لأحداث المنصة (اختياري)
يمكن للإضافات الاستجابة لأحداث المنصة باستخدام مشتركي أحداث Symfony. أنشئ ملفًا ينتهي بـ EventSubscriber.php داخل src/EventSubscriber/ — يتم تسجيله تلقائيًا عبر PluginEventSubscriberPass.
انظر src/CoreBundle/Event/Events.php للحصول على قائمة كاملة بالأحداث المتاحة (المستخدم، الدورة، الجلسة، LP، التمرين، المحفظة، المصادقة، وغيرها).
الخطوة 8: خطافات دورة الحياة
قم بتجاوز هذه الطرق في فئة الإضافة الخاصة بك للرد على إجراءات المنصة:
install()
تفعيل الإضافة
uninstall()
إزالة الإضافة
performActionsAfterConfigure()
حفظ نموذج الإعدادات بواسطة المسؤول
course_settings_updated(array $values)
تغيير إعدادات المستوى الدراسي
validateCourseSetting(string $variable)
حفظ إعداد الدورة (أعد false للرفض)
doWhenDeletingUser(int $userId)
حذف مستخدم
doWhenDeletingCourse(int $courseId)
حذف دورة
doWhenDeletingSession(int $sessionId)
حذف جلسة
الخطوة 9: التفعيل
قم بتسجيل الدخول كمسؤول، انتقل إلى إدارة الإضافات، ابحث عن إضافتك، وانقر على تفعيل.
نصائح
اتبع الإضافات الحالية كأمثلة —
public/plugin/HelloWorld/وpublic/plugin/TopLinks/مراجع بسيطة جيدةاستخدم الترجمات — استخدم دائمًا نظام
lang/للنصوص الموجهة للمستخدمنظف عند الإلغاء — أزل جداول قاعدة البيانات والإعدادات في سكريبت الإلغاء
تحقق من حالة التفعيل — في مشتركي الأحداث، اتصل دائمًا بـ
$this->plugin->isEnabled()قبل تنفيذ المنطق
آخر تحديث
هل كان هذا مفيدا؟