كيانات محتوى الدورة (CDocument، CQuiz، CLp، CForum، CStudentPublication، إلخ.)
Controller/
وحدات التحكم في الدورة
Settings/
مخططات إعدادات مستوى الدورة
Component/CourseCopy/
استيراد/تصدير الدورة (Common Cartridge، Moodle)
LtiBundle
تكامل LTI 1.3:
المجلد
المحتويات
Entity/
كيانات منصة LTI، وأداة، ونشر
Controller/
نقاط نهاية إطلاق LTI وتكوين
الواجهة الأمامية (assets/vue/)
الإعدادات (config/)
يدمج Symfony تلقائيًا ملفات packages/*.yaml الأساسية مع تلك الموجودة في مجلد البيئة المتطابق (dev/، أو prod/، أو test/)، لذا لا تحتاج ملفات محددة للبيئة إلا إلى تجاوز القيم التي تختلف.
إعدادات البناء
الملف
الغرض
webpack.config.js
إعدادات Webpack Encore (المدخلات، المحملات، الإضافات)
توجد جميع الملفات في جذر المشروع. تُعد إضافات PostCSS (Tailwind + Autoprefixer) داخل webpack.config.js عبر enablePostCssLoader() — لا يوجد postcss.config.js مستقل. يقرأ webpack.config.js ملف tailwind.config.js بشكل غير مباشر عبر PostCSS، لذا تظهر التغييرات في أقسام content أو theme الخاصة بـ Tailwind في التشغيل التالي لـ yarn encore dev / yarn encore production.
نقاط الدخول لـ Webpack
يُنتج البناء هذه الحزم:
JavaScript:
vue — التطبيق الرئيسي لـ Vue 3 (assets/vue/main.js)
legacy_app، legacy_exercise، legacy_lp، legacy_document — JavaScript القديم للصفحات التي لم تُهاجر إلى Vue بعد
CSS:
app — ورقة الأنماط الرئيسية (assets/css/app.scss)
بالإضافة إلى أوراق متخصصة: chat، document، editor، editor_content، markdown، print، responsive، scorm
هيكل CSS (assets/css/)
Tailwind CSS
يتم دمج Tailwind عبر PostCSS. assets/css/_tailwind.scss يصدر الطبقات الأساسية والمكونات والأدوات؛ assets/css/app.scss يستورده أولاً حتى تكون أدوات Tailwind متاحة في جميع الجزئيات الأخرى. تكوين Tailwind — مسارات المحتوى للتنقية، وامتدادات الثيم، والإضافات — موجود في tailwind.config.js في جذر المشروع (/var/www/chamilo/tailwind.config.js).
الفئات الأدوات المخصصة وفئات المكونات المعرفة باستخدام @layer (المرئية في app.scss) تتبع اتفاقية الطبقات في Tailwind بحيث تحترم الفئات المعرفة من قبل المستخدم نفس قواعد الخصوصية مثل الأدوات المولدة.
Color Themes
يدعم Chamilo نظامًا لثيمات الألوان يمكن تهيئته مباشرة من واجهة الإدارة (Admin > Color Themes). كل ثيم محفوظ يكتب ملفاته في دليل مخصص تحت var/themes/:
colors.css يعرف خصائص CSS المخصصة كثلاثيات قنوات RGB مفصولة بمسافات بدلاً من قيم rgb()، مما يسمح لـ Tailwind بتكوين متغيرات الشفافية (مثل bg-primary/50) دون تكوين إضافي:
تضع طبقة الثيم فوق حزمة Tailwind/SCSS المجمعة: يقوم المتصفح بتحميل colors.css بعد ورقة الأنماط الرئيسية، لذا تطبق تغييرات الثيم فورًا دون خطوة بناء.