> For the complete documentation index, see [llms.txt](https://docs.chamilo.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chamilo.org/2.x/ar/dlyl-almtwr/developer-guide/frontend/views-and-routing.md).

# Views and Routing

يحتوي Chamilo على مجموعة كبيرة من عروض Vue (مكونات على مستوى الصفحة) متصلة عبر Vue Router. تقع الملفات الفعلية تحت `assets/vue/views/`.

## هندسة التوجيه

يتم تعريف التوجيه في `assets/vue/router/index.js` باستخدام `createWebHistory` للحصول على عناوين URL نظيفة.

الطرق معيارية — منظمة في ملفات طرق لكل ميزة مستوردة إلى التوجيه الرئيسي:

| وحدة الطريق         | الصفحات                                           |
| ------------------- | ------------------------------------------------- |
| `admin`             | صفحات لوحة الإدارة                                |
| `sessionAdmin`      | صفحات إدارة الجلسات                               |
| `course`            | قائمة الدورات، الإنشاء، الصفحة الرئيسية، الكتالوج |
| `account`           | ملف المستخدم والإعدادات                           |
| `personalfile`      | مساحة الملف الشخصي                                |
| `message`           | الرسائل / صندوق الوارد                            |
| `user`              | صفحات إدارة المستخدمين                            |
| `usergroup`         | صفحات مجموعات المستخدمين (الفصول)                 |
| `userreluser`       | صفحات علاقات المستخدمين (الأصدقاء/المتابعة)       |
| `ccalendarevent`    | تقويم الدورة والجدول الزمني                       |
| `ctoolintro`        | صفحات مقدمة أدوات الدورة                          |
| `page`              | صفحات CMS الثابتة                                 |
| `pageLayout`        | غلاف تخطيط الصفحة                                 |
| `publicPage`        | الصفحات القابلة للوصول العام                      |
| `social`            | صفحات الشبكة الاجتماعية                           |
| `filemanager`       | مدير الملفات (متصفح وثائق الدورة)                 |
| `skill`             | صفحات المهارات والكفاءات                          |
| `accessurl`         | صفحات إدارة الـ URL المتعدد (البوابة)             |
| `branch`            | صفحات الفرع / حرم الشبكة                          |
| `room`              | صفحات الغرف الافتراضية                            |
| `buycourses`        | صفحات شراء الدورات                                |
| `documents`         | إدارة الوثائق                                     |
| `assignments`       | سير عمل المهام                                    |
| `links`             | إدارة الروابط الخارجية                            |
| `glossary`          | إدارة المصطلحات                                   |
| `attendance`        | تتبع الحضور                                       |
| `lp`                | مشغل مسار التعلم والمحرر                          |
| `dropbox`           | Dropbox / تبادل الملفات                           |
| `blog`              | صفحات المدونة                                     |
| `blogAdmin`         | إدارة المدونة                                     |
| `coursemaintenance` | نسخ احتياطي واستعادة الدورة                       |
| `catalogue`         | كتالوجات الدورات والجلسات                         |

## الطرق الرئيسية

| المسار               | العرض                                      | الوصف                      |
| -------------------- | ------------------------------------------ | -------------------------- |
| `/`                  | `AppIndex.vue` (أو مخصص)                   | نقطة الدخول للتطبيق        |
| `/home`              | `pages/Home.vue`                           | صفحة رئيسية المنصة         |
| `/login`             | `pages/Login.vue`                          | صفحة تسجيل الدخول          |
| `/courses`           | `views/user/courses/List.vue`              | دورات المستخدم المسجل فيها |
| `/sessions`          | `views/user/sessions/SessionsCurrent.vue`  | الجلسات الحالية            |
| `/sessions/past`     | `views/user/sessions/SessionsPast.vue`     | الجلسات السابقة            |
| `/sessions/upcoming` | `views/user/sessions/SessionsUpcoming.vue` | الجلسات القادمة            |
| `/course/:id/home`   | `views/course/CourseHome.vue`              | صفحة رئيسية الدورة         |
| `/account/home`      | `views/account/Home.vue`                   | ملف المستخدم               |
| `/admin`             | عروض الإدارة                               | لوحة الإدارة               |
| `/faq`               | `pages/Faq.vue`                            | صفحة الأسئلة الشائعة       |

## حراس الطريق

يستخدم التوجيه حراس التنقل (معلنة بـ `beforeEach` و `afterEach`) للقيام بما يلي:

* التحقق من حالة المصادقة عبر `useSecurityStore` وإعادة توجيه المستخدمين غير المصادق عليهم إلى `/login`
* التحقق من سياق الدورة عبر `useCidReqStore`
* تطبيق فئات CSS حسب نوع الصفحة أثناء التنقل في SPA (بدلاً مما يقوم `PageHelper` في Twig به عند تحميل صفحة كاملة)
* دعم تجاوزات قوالب Vue المخصصة — يتم استبدال مكون الدخول في `/` بـ `AppIndex.vue` مخصص عند تمكين قالب Vue مخصص (`var/vue_templates/pages/AppIndex.vue`)

## تنظيم العروض

تقع العروض في `assets/vue/views/`، منظمة حسب الميزة:

```
views/
├── account/          # ملف المستخدم والإعدادات
├── admin/            # صفحات الإدارة
├── assignments/      # تقديم المهام والتقييم
├── attendance/       # جداول الحضور
├── blog/             # منشورات المدونة والتعليقات
├── branch/           # إدارة حرم الشبكة
├── buycourses/       # سير شراء الدورات
├── ccalendarevent/   # تقويم الدورة
├── course/           # قائمة الدورات، الصفحة الرئيسية، الإنشاء، الكتالوج
├── coursecategory/   # إدارة فئات الدورات
├── coursemaintenance/# نسخ احتياطي/استعادة الدورة
├── ctoolintro/       # صفحات مقدمة الأدوات
├── documents/        # قائمة الوثائق، الإنشاء، إنشاء الوسائط
├── dropbox/          # Dropbox / تبادل الملفات
├── filemanager/      # متصفح الملفات
├── glossary/         # قائمة المصطلحات وإدارة المصطلحات
├── links/            # الروابط الخارجية
├── lp/               # مشغل مسار التعلم والمحرر
├── message/          # صندوق الوارد والرسائل
├── page/             # صفحات CMS الثابتة
├── pageLayout/       # غلاف تخطيط الصفحة
├── personalfile/     # مساحة الملف الشخصي
├── room/             # الغرف الافتراضية
├── sessionadmin/     # إدارة الجلسات
├── skill/            # المهارات والكفاءات
├── social/           # الشبكة الاجتماعية
├── terms/            # شروط الخدمة
├── user/             # إدارة المستخدمين وقوائم الدورات/الجلسات
├── usergroup/        # مجموعات المستخدمين (الفصول)
└── userreluser/      # علاقات المستخدمين (الأصدقاء/المتابعات)
```
