📁 تحليل مشروع klshey بالكامل

Phalcon PHP 8.0.4 — Classifieds/Marketplace
نظام إعلانات مبوبة متكامل | يدعم Arabic, English, Türkçe | MySQL + Volt Templates

📋 فهرس المحتويات

  1. 🧭 نظرة عامة
  2. 🗂️ هيكل المجلدات
  3. 📂 تحليل كل مجلد
  4. apps/config/ — الإعدادات
  5. apps/backend/ — لوحة التحكم
  6. apps/frontend/ — الموقع العام
  7. Models — موديلات DB
  8. apps/library/ — المكتبات
  9. public/ — المجلد العام
  10. 🔀 نظام التوجيه (Routing)
  11. 🎨 الستايل (CSS/SCSS)
  12. 🔗 خريطة ارتباط الملفات
  13. 📊 ملخص العلاقات

🧭 نظرة عامة عن المشروع

klshey هو نظام إعلانات مبوبة (Classifieds/Marketplace) مبني على إطار العمل Phalcon PHP (الإصدار 8.0.4).

النظام يشبه موقع "أوليكس" أو "حراج" — يمكن للمستخدمين نشر إعلانات، إنشاء متاجر، مشاريع، والعديد من الميزات الأخرى.
النظام يستخدم قواعد بيانات MySQL، ومحرك القوالب Volt، ويدعم عدة لغات.

🗂️ هيكل المجلدات والملفات

C:\MAMP\htdocs\klshey\
│
├── __MACOSX/                          # ملفات نظام macOS (غير مهمة)
│
└── klshey/                            # جذر المشروع الأساسي
    │
    ├── .htaccess                      # قائمة ضخمة لمنع البوتات الضارة
    ├── .gitignore                     # ملف تجاهل Git
    ├── version.ini                    # يحتوي على رقم الإصدار: 8.0.4
    ├── helper.php                     # ملف فارغ — مخصص للإضافات
    ├── index.html                     # صفحة HTML بسيطة (placeholder)
    ├── index.html.bak                 # نسخة احتياطية
    │
    ├── apps/                          # ⭐ مجلد التطبيقات الأساسي
    │   ├── backend/                   # وحدة لوحة التحكم (Admin Panel)
    │   ├── frontend/                  # وحدة الموقع العام (Public Site)
    │   ├── config/                    # ملفات الإعدادات
    │   ├── library/                   # المكتبات الخارجية
    │   ├── models/                    # موديلات DB (61 ملف)
    │   ├── cache/                     # ذاكرة التخزين المؤقت لـ Volt
    │   ├── certs/                     # الشهادات (SSL)
    │   └── install.sql                # ملف SQL للتثبيت
    │
    ├── public/                        # ⭐ المجلد العام (Document Root)
    │   ├── .htaccess                  # قواعد إعادة الكتابة (Rewrite Rules)
    │   ├── .user.ini                  # تفعيل short_open_tag
    │   ├── index.php                  # ⭐ نقطة الدخول الرئيسية (Front Controller)
    │   ├── favicon.ico                # أيقونة الموقع
    │   ├── robots.txt                 # ملف SEO
    │   ├── awy.license                # ملف ترخيص
    │   ├── assets/                    # ملفات الأصول (CSS, JS, Fonts)
    │   │   ├── AWY-V8/                # ثيم الموقع العام
    │   │   ├── Panel/                 # ثيم لوحة التحكم
    │   │   └── Wizard/                # ثيم معالج التثبيت
    │   ├── images/                    # الصور المرفوعة
    │   └── models/                    # نفس موديلات apps/models
    │
    ├── public_html/                   # نسخة ثانية من المجلد العام (قديمة)
    ├── html/                          # ملفات HTML إضافية
    ├── *.sql / *.sql.zip              # ملفات تصدير قاعدة البيانات
    └── klshey29-9.zip                 # نسخة مضغوطة
  

📂 تحليل كل مجلد بالتفصيل

1️⃣ apps/config/ — الإعدادات الأساسية

الملفماذا يحويبماذا يرتبط
config.php إعدادات التطبيق: مسار لوحة التحكم (Panel)، حالة التثبيت، وضع التصحيح يُستدعى من public/index.php
database.php إعدادات اتصال MySQL — يدعم متغيرات البيئة يُستدعى من public/index.php عبر $di->set('db')
panel.php قائمة menu لوحة التحكم (277 سطر) يُستدعى من apps/backend/Module.php
asset_versions.php أرقام إصدارات مكتبات CDN (Bootstrap, jQuery, FontAwesome...) يُستدعى من public/index.php ويُمرر إلى index.volt
site_id.php رقم الموقع: 1 يُقرأ في public/index.php
store_url.php قيمة: Magaza — اسم رابط المتاجر يُستخدم في التوجيه (Routing)
super_admins.php قائمة معرفات المشرفين المتميزين: [1] يُستخدم في التحقق من صلاحيات المشرف
awy_stubs.php محاكي لمكتبة AydinWeb المشفرة — يسمح بعمل المشروع محلياً يُستدعى من public/index.php
phalcon5_compat.php طبقة توافقية مع Phalcon 5 (كلاسات بديلة) يُستدعى من public/index.php
translate_helper.php دالة مساعدة للترجمة awy_make_translator() يُستدعى من public/index.php
crons.php إعدادات المهام المجدولة (Cron Jobs) يُستخدم من CronController
localhost_bypass.php تجاوز بعض القيود في البيئة المحلية يُستدعى عند الحاجة

2️⃣ apps/backend/ — وحدة لوحة التحكم

Module.php

الوظيفة: تعريف الوحدة الخلفية — تسجيل مساحات الأسماء، إعداد الموزع (Dispatcher)، تمرير المتغيرات للعرض
يرتبط بـ: apps/config/panel.php ← لتحميل قائمة المنيو  |  controllers/AWY.php ← للحصول على روابط الموقع  |  يُسجل في public/index.php

المتحكمات (78 ملفًا)

المتحكمالوظيفةالمسار في الموقع
ControllerBase.phpالقاعدة الأساسية — التحقق من تسجيل الدخول، الصلاحيات، الترجماتجميع المتحكمات ترث منه
AWY.phpكلاس المساعد الرئيسي — Traits (LocalhostAwyStub, Extra, Queries)يُحقن في Module.php
IndexController.phpالصفحة الرئيسية للوحة التحكم + 404 و 500/Panel
GirisController.phpتسجيل دخول المشرفينPanel/Giris
TumIlanlarController.phpإدارة كل الإعلاناتPanel/Tum-Ilanlar
TumUyelerController.phpإدارة الأعضاءPanel/Tum-Uyeler
TumKategorilerController.phpإدارة التصنيفاتPanel/Tum-Kategoriler
TumMagazalarController.phpإدارة المتاجرPanel/Tum-Magazalar
SiteAyarlariController.phpإعدادات الموقع العامةPanel/Site-Ayarlari
KategoriController.phpإدارة التصنيفاتPanel/Kategori
TumSayfalarController.phpإدارة الصفحات الثابتةPanel/Tum-Sayfalar
TumProjelerController.phpإدارة المشاريعPanel/Tum-Projeler
TumReklamlarController.phpإدارة الإعلانات المدفوعةPanel/Tum-Reklamlar
TumOdemelerController.phpإدارة المدفوعاتPanel/Tum-Odemeler
TumDillerController.phpإدارة اللغاتPanel/Tum-Diller
TumYoneticilerController.phpإدارة المشرفينPanel/Tum-Yoneticiler
TumAnketlerController.phpإدارة استبيانات الرأيPanel/Tum-Anketler
TumHaberlerController.phpإدارة الأخبارPanel/Tum-Haberler
TumMakalelerController.phpإدارة المقالاتPanel/Tum-Makaleler
TumSlaytlarController.phpإدارة الشرائح الدوارةPanel/Tum-Slaytlar
RenkAyarlariController.phpإعدادات الألوان والثيمPanel/Renk-Ayarlari
BankaHesaplariController.phpإدارة الحسابات البنكيةPanel/Banka-Hesaplari
OdemeYontemleriController.phpإدارة طرق الدفعPanel/Odeme-Yontemleri
IlanAyarlariController.phpإعدادات الإعلاناتPanel/Ilan-Ayarlari
Pager.phpكلاس مساعد للترقيم (Pagination)يُستخدم من المتحكمات
Security.phpكلاس المساعدة الأمنية — تشفير، CSRFيُستخدم من المتحكمات
Email.phpكلاس إرسال البريد الإلكترونييُحقن في Module.php
Sms.phpكلاس إرسال الرسائل النصيةيُستخدم عند الحاجة
Warning.phpكلاس التحذيرات والرسائليُحقن في Module.php

بالإضافة إلى 28 متحكمًا آخر: AcilIlanlarController، FiyatiDusenIlanlarController، GununFirsatlariController، SilinenIlanlarController، SuresiBitenIlanlarController، SuresiBitenMagazalarController، SuresiBitenReklamlarController، OnayBekleyenYorumlarController، OnayBekleyenYorumCevaplariController، BolgeController، FotografController، KategoriGuncelleyiciController، GetIlanlariController، IlanlariDisaAktarController، IlanlariIceAktarController، IstatistiklerController، OdenmeyenOdemelerController، OnbellekTemizleController، PaypalSertifikaOlusturController، PuanAyarlariController، SiteHaritasiOlusturController، StilCssDerleController، TaksitYapilandirmasiController، UyelereEMailGonderController، UyelereSmsGonderController، AramaOnerileriController، GuncellemeKontrolController

قوالب العرض — views/ (68 مجلدًا)

المجلدالوظيفة
index.voltالقالب الرئيسي للوحة التحكم — 456 سطرًا، يحمل كل CSS/JS
index/الصفحة الرئيسية، 404، 500، صفحة ممنوع
Giris/صفحات دخول المشرفين
Tum-Ilanlar/إدارة الإعلانات
Tum-Uyeler/إدارة الأعضاء
باقي المجلدات — لكل Controller مجلد views مطابق باسمه بالتركية

ملفات الترجمة — langs/

ar/ اللغة العربية   en/ اللغة الإنجليزية   tr/ اللغة التركية

3️⃣ apps/frontend/ — وحدة الموقع العام

Module.php

الوظيفة: تعريف الوحدة الأمامية — مثل Backend Module.php لكن بدون متغير $backend
يرتبط بـ: controllers/AWY.php، controllers/Email.php — يُسجل في public/index.php

المتحكمات (64 ملفًا)

المتحكمالوظيفةالمسار في الموقع
ControllerBase.phpالقاعدة — ضبط القالب، الصيانة، تتبع الزوار، إعدادات الموقعجميع المتحكمات ترث منه
IndexController.phpالصفحة الرئيسية، تغيير اللغة، الاستبيانات/
GirisController.phpتسجيل دخول المستخدمين/Giris
UyeOlController.phpتسجيل مستخدم جديد/Uye-Ol
SifremiUnuttumController.phpاستعادة كلمة المرور/Sifremi-Unuttum
IlanController.phpصفحة تفاصيل الإعلان/Ilan/{Slug}-{ID}
IlanVerController.phpنشر إعلان جديد/Ilan-Ver
IlanAraController.phpالبحث المتقدم/Ilan-Ara
AraController.phpالبحث السريع/Ara
KategoriController.phpعرض التصنيفات/Kategori/{Slug}-{ID}
MagazaController.phpصفحة المتجر/Magaza/{name}
MagazaAcController.phpفتح متجر جديد/Magaza-Ac
MagazaYonetController.phpإدارة المتجر/Magaza-Yonet
MagazaIlanlariController.phpإعلانات المتجر/Magaza-Ilanlari
MagazaKullanicilariController.phpمستخدمي المتجر/Magaza-Kullanicilari
MagazaYenileController.phpتجديد المتجر/Magaza-Yenile
MagazalarController.phpقائمة المتاجر/Magazalar
UyeprofilController.phpالملف الشخصي/Profil/{Uye}
HesabimController.phpحسابي (الإعدادات، الإعلانات، المفضلة)/Hesabim
SepetController.phpسلة المشتريات/Sepet
OdemeController.phpصفحة الدفع/Odeme
SayfaController.phpالصفحات الثابتة (من نحن، اتصل بنا...)/Sayfa/{name}
HaberController.phpصفحة خبر/Haber/{Slug}-{ID}
HaberlerController.phpقائمة الأخبار/Haberler
BlogController.phpالمدونة/Blog
MakaleController.phpصفحة مقالة/Makale/{Slug}-{ID}
ProjeController.phpصفحة مشروع/Proje/{Slug}-{ID}
ProjelerController.phpقائمة المشاريع/Projeler
IletisimController.phpاتصل بنا/Iletisim
DestekMerkeziController.phpمركز الدعم الفني (تذاكر)/Destek-Merkezi
DopingController.phpالترويج للإعلانات/Doping
ApiController.phpواجهة API/Api
CronController.phpالمهام المجدولة/Cron (CLI)
KurulumSihirbaziController.phpمعالج التثبيت/Kurulum-Sihirbazi
RssController.phpتغذية RSS/Rss
SatisSozlesmesiController.phpعقد البيع/Satis-Sozlesmesi
BakimController.phpصفحة الصيانة/Bakim

قوالب العرض — views/AWY-V8/ (54 مجلد/ملف)

المسارالوظيفة
index.volt⭐ القالب الرئيسي — 1075 سطرًا، يحتوي على <head> و CSS/JS وجميع مكونات الصفحة
index/index.voltمحتوى الصفحة الرئيسية
Ilan/تفاصيل الإعلان
Ilan-Ver/نموذج نشر إعلان
Ilan-Ara/البحث المتقدم
Kategori/التصنيفات
Magaza/صفحة المتجر
Magaza-Ac/فتح متجر
Magaza-Yonet/لوحة تحكم المتجر
Magazalar/قائمة المتاجر
Giris/تسجيل الدخول
Uye-Ol/التسجيل
Hesabim/لوحة تحكم المستخدم
Sepet/سلة المشتريات
Odeme/الدفع
Haber/الخبر
Haberler/قائمة الأخبار
Blog/المدونة
Makale/مقالة
Proje/مشروع
Projeler/قائمة المشاريع
Sayfa/الصفحات الثابتة
Iletisim/نموذج الاتصال
Destek-Merkezi/تذاكر الدعم
partials/أجزاء قابلة لإعادة الاستخدام — sidebar.volt، sidebar_store.volt، error.volt
modules/موديولات الصفحة الرئيسية — 13 ملفًا (slider.volt، showcase.volt، ...)
Input/قوالب حقول الإدخال المخصصة — 18 ملفًا
mail/قالب البريد الإلكتروني
colors.cnfملف تعريف الألوان — 42 ثيم لوني

4️⃣ apps/models/ + public/models/ — موديلات قاعدة البيانات (61 ملفًا)

الموديلالجدولالوظيفة
Ads.phpadsالإعلانات — جدول رئيسي
Users.phpusersالمستخدمون (الأعضاء)
Categories.phpcategoriesالتصنيفات
Stores.phpstoresالمتاجر
Settings.phpsettingsإعدادات الموقع
Langs.phplangsاللغات المدعومة
Pages.phppagesالصفحات الثابتة
Slides.phpslidesالشرائح الدوارة
News.phpnewsالأخبار
Articles.phparticlesالمقالات
Projects.phpprojectsالمشاريع العقارية
Orders.phpordersالطلبات
Carts.phpcartsسلة المشتريات
PaymentMethods.phppayment_methodsطرق الدفع
BankAccounts.phpbank_accountsالحسابات البنكية
Managers.phpmanagersالمشرفون
Messages.phpmessagesالرسائل بين المستخدمين
Comments.phpcommentsالتعليقات على الإعلانات
Tickets.phpticketsتذاكر الدعم الفني
Fields.phpfieldsالحقول المخصصة
Currencies.phpcurrenciesالعملات
Packages.phppackagesباقات الإعلانات
Visitors.phpvisitorsزوار الموقع
Ulke.phpulkeالدول
Il.phpilالمدن
Ilce.phpilceالأقضية
Semt.phpsemtالأحياء
Mahalle.phpmahalleالحارات

بالإضافة إلى: Adverts، Dopings، FavoriteAds، FavoriteSearches، ShippingCompanies، Installments، Polls، PollsAnswers، HelpContents، AdsShowcase، AdsCatshowcase، AdsUrgent، AdsDeals، AdsDrop، AdTime، StoresShowcase، StoresCatshowcase، StoresAds، StoresUsers، UserAddress، UserBanks، ReportAds، ReportMessages، MailQueue، Stories، Get، Modules، AdFieldValues، MultipleFieldValues، ProjectsTypes، ProjectsFeatures، ProjectsPlans، TicketsReplys

5️⃣ apps/library/ — المكتبات والمساعدات

المكتبةالوظيفة
LocalhostAwyStub.php⭐ المحاكي الأساسي لمكتبة AydinWeb — 1074 سطرًا من دوال المنطق التجاري
LocalhostAwyStubExtra.phpدوال إضافية للمحاكي
LocalhostAwyStubQueries.phpاستعلامات قاعدة البيانات للمحاكي
AssetLicenser.phpيضيف ترخيصًا لنصوص CSS/JS
Captcha/نظام التحقق البشري (CAPTCHA)
ColorChanger.phpتغيير ألوان الثيم
CrontabManager/إدارة المهام المجدولة
Faker/توليد بيانات وهمية
IdnaConvert/تحويل أسماء النطاقات الدولية
MysqlImport/استيراد/تصدير قواعد البيانات
Payments/مكتبات الدفع (PayPal, PayTR, Iyzico...)
PhoneFormats/تنسيقات أرقام الهواتف
PHPMailer/مكتبة إرسال البريد الإلكتروني
PhpSpreadsheet/التعامل مع جداول البيانات (Excel)
SimpleCache/نظام التخزين المؤقت
SitemapGenerator/إنشاء خريطة الموقع (Sitemap XML)
Sms/إرسال الرسائل النصية
Twitter/التكامل مع تويتر
Upload/رفع الملفات والصور

6️⃣ public/ — المجلد العام (Document Root)

index.php — نقطة الدخول (372 سطرًا)

الوظيفة: الملف الذي تستقبله جميع الطلبات. يقوم بـ:
1. ضبط PHP (وقت التنفيذ، الذاكرة، رفع الملفات)
2. التحقق من Phalcon Extension
3. تحميل ملفات التوافق
4. إعداد DI Container (قاعدة بيانات، جلسة، كوكيز، Volt)
5. تحميل الإعدادات من DB
6. إعداد Router (جميع المسارات)
7. تسجيل الوحدات (frontend + backend)
8. معالجة الطلب ← عرض HTML

public/assets/AWY-V8/ — أصول ثيم الموقع العام

المسارالوظيفة
css/style.scss⭐ ملف الـ SCSS الرئيسي (16,357 سطرًا) — يُجمّع إلى style.min.css
css/out/style.min.cssالناتج النهائي — يُحمّل في index.volt
css/home-v2.cssCSS للصفحة الرئيسية فقط
css/category-v2.cssCSS لصفحات التصنيفات فقط
css/ilan-v2.cssCSS لصفحة تفاصيل الإعلان فقط
css/contract.min.cssCSS لعقد البيع
css/payment.min.cssCSS لصفحة الدفع
js/custom.jsجافاسكريبت عام
js/home-v2.jsجافاسكريبت الصفحة الرئيسية
js/category-v2.jsجافاسكريبت التصنيفات
js/ilan-v2.jsجافاسكريبت تفاصيل الإعلان
js/tinymce/محرر النصوص TinyMCE
fonts/خطوط Cairo و LucidaGrande
froala/محرر Froala (بديل)
error/صفحات الأخطاء
maintenance/صفحة الصيانة
mail/قوالب البريد

public/assets/Panel/ — أصول لوحة التحكم

المسارالوظيفة
css/main.cssCSS كامل للوحة التحكم
css/main.min.cssنسخة مضغوطة — يُحمّل في index.volt
js/main.jsجافاسكريبت كامل
js/main.min.jsنسخة مضغوطة
js/customizer.jsأداة تخصيص الواجهة
img/19 صورة (شعارات، أيقونات)

public/assets/Wizard/ — أصول معالج التثبيت

يحتوي على css/paper-bootstrap-wizard.css، js/، img/ لمعالج التثبيت الأولي.

🔀 نظام التوجيه (Routing)

كيف يعمل التوجيه

1. طلب المستخدم يصل إلى public/.htaccess
2. .htaccess يعيد كتابة المسار ← public/index.php?_url=/path
3. index.php يستخدم Phalcon Router لتحليل _url
4. الـ Router يوزع الطلب إلى المتحكم المناسب

مسارات الموقع العام (Frontend)

النمط (Pattern)المتحكمالوصف
/Indexالصفحة الرئيسية
/Dil-Degistir/{language}Indexتغيير اللغة
/Cookie-Uyari-KapatIndexإخفاء تحذير الكوكيز
/Magaza/{Magaza}Magazaصفحة المتجر
/Profil/{Uye}UyeProfilالملف الشخصي
/Sayfa/{Sayfa}Sayfaالصفحات الثابتة
/Haber/{Slug}-{ID}Haberخبر
/Ilan/{Slug}-{ID}Ilanتفاصيل الإعلان
/Makale/{Slug}-{ID}Makaleمقالة
/Kategori/{Slug}-{ID}Kategoriالتصنيفات
/Proje/{Slug}-{ID}Projeالمشاريع

مسارات لوحة التحكم (Backend)

النمطالوحدةالمتحكمالأكشن
/PanelbackendIndexindex
/Panel/:controllerbackend:controllerindex
/Panel/:controller/:actionbackend:controller:action
/Panel/:controller/:action/:paramsbackend:controller:action

🎨 الستايل (CSS/SCSS) — الوجهات الأساسية

ملفات CSS/SCSS الرئيسية

الملفالنوعأين يُستخدم
assets/AWY-V8/css/style.scssSCSS (16,357 سطر)⭐ الموقع العام — الستايل الأساسي بالكامل
assets/AWY-V8/css/out/style.min.cssCSS مضغوطيُحمّل في index.volt للموقع العام
assets/AWY-V8/css/home-v2.cssCSSيُحمّل عند isHome = true
assets/AWY-V8/css/category-v2.cssCSSيُحمّل في صفحات التصنيفات
assets/AWY-V8/css/ilan-v2.cssCSSيُحمّل في صفحة تفاصيل الإعلان
assets/AWY-V8/css/contract.min.cssCSSيُحمّل في صفحة عقد البيع
assets/AWY-V8/css/payment.min.cssCSSيُحمّل في صفحة الدفع
assets/Panel/css/main.cssCSSلوحة التحكم — يُجمّع إلى main.min.css
assets/Panel/css/main.min.cssCSS مضغوطيُحمّل في index.volt للوحة التحكم

مكتبات CSS الخارجية (CDN)

Font Awesome 6 — الأيقونات  |  Bootstrap 4.4.1 — تخطيط اللوحة  |  Fancybox — معرض الصور
OwlCarousel2 — الكاروسيل  |  Select2 — صناديق اختيار محسّنة
SweetAlert2 — نوافذ التأكيد  |  DataTables — جداول تفاعلية  |  Mapbox GL — الخرائط

نظام الألوان (colors.cnf)

الملف يحتوي على 42 ثيم لوني، كل ثيم معرف بـ 5 ألوان:

اسم_الثيم=اللون_الرئيسي|اللون_الداكن|لون_الرابط|لون_الخلفية|لون_النص

مثال: red=#df1f26|#ad0000|#003399|#e7e7e7|#000000

آلية عمل الستايل وارتباطه

style.scss (16,357 سطر) ──→ style.min.css ──→ index.volt (يُحمّل)

ControllerBase.php ──→ $settings = \Models\Settings::findFirst() ──→ $colors (يُمرر إلى index.volt)

RenkAyarlariController ──→ يُحفظ اللون في DB

المسؤول يختار الثيم من لوحة التحكم

سلسلة الارتباط الكاملة: المسؤول يختار الثيم ← RenkAyarlariController ← يُحفظ في جدول settings في DB ← ControllerBase.php يحمّل الإعدادات ← يُمرّر إلى index.volt كـ $colors ← يُستخدم inline في CSS

🔗 خريطة ارتباط الملفات — من يدعو من؟

🎯 نقطة الدخول (Entry Point)

طلب المستخدم (URL) │ ▼ public/.htaccess ← يعيد كتابة المسار │ ▼ public/index.php ← ⭐ نقطة الدخول الوحيدة ├── apps/config/awy_stubs.php ← محاكي المكتبة المشفرة ├── apps/config/phalcon5_compat.php ← توافقية Phalcon 5 ├── apps/config/config.php ← إعدادات التطبيق ├── apps/config/database.php ← اتصال قاعدة البيانات ├── apps/models/Settings.php ← إعدادات الموقع من DB ├── [Router] ← يحدد المتحكم حسب URL ├── apps/frontend/Module.php ← للطلبات العامة │ ├── controllers/AWY.php │ │ ├── library/LocalhostAwyStub.php │ │ ├── library/LocalhostAwyStubExtra.php │ │ └── library/LocalhostAwyStubQueries.php │ ├── controllers/Email.php │ └── controllers/Warning.php └── apps/backend/Module.php ← للطلبات التي تبدأ بـ /Panel ├── controllers/AWY.php ├── controllers/Email.php ├── controllers/Warning.php └── apps/config/panel.php ← قائمة المنيو

🎯 سلسلة استدعاء المتحكم (Controller)

index.php Router [Module: frontend|backend] [Controller] [Action] │ ▼ Module.php (يسجل المساحات) │ ▼ ControllerBase.php │ ├── قبل التنفيذ: تحقق من تسجيل الدخول (للباك إند) │ ├── بعد التنفيذ: تعيين عنوان الصفحة │ └── أثناء التهيئة: تحميل القالب والترجمات │ ▼ Controller المطلوب (مثل IndexController) │ └── Action (مثل indexAction) │ └── يعرض القالب (View) المناسب

🎯 سلسلة استدعاء القالب (View)

Controller → Action │ └── apps/frontend/views/AWY-V8/ أو apps/backend/views/ ├── index.volt (القالب الرئيسي/Layout) │ ├── يحتوي على <head> │ ├── يحمل CSS/JS من CDN + محلي │ ├── يستخدم متغيرات من ControllerBase: │ │ ├── $url ← من AWY->getUri() │ │ ├── $colors ← من Settings │ │ ├── $conf ← من Settings │ │ ├── $awy ← كلاس AWY (دوال مساعدة) │ │ └── $actlang ← اللغة النشطة │ └── يستدعي partials/ و modules/ عند الحاجة │ └── [ControllerName]/*.volt (محتوى الصفحة)

🎯 سلسلة ارتباط الموديلات (Models)

أي Controller أو Stub │ └── Models: │ ├── \Models\Settings::findFirst() ← إعدادات الموقع │ ├── \Models\Ads::find() ← الإعلانات │ ├── \Models\Users::findFirst() ← المستخدمين │ ├── \Models\Categories::find() ← التصنيفات │ └── ... إلخ │ └── كل Model يرتبط بجدول في MySQL عبر PDO

🎯 سلسلة ارتباط الـ Assets (CSS/JS)

index.volt (القالب الرئيسي) ├── مكتبات CDN: Font Awesome, Bootstrap, jQuery... (من asset_versions.php) ├── CSS المحلي: │ ├── assets/AWY-V8/css/out/style.min.css ← الموقع العام │ └── assets/Panel/css/main.min.css ← لوحة التحكم ├── JS المحلي: │ ├── assets/AWY-V8/js/custom.min.js ← الموقع العام │ └── assets/Panel/js/main.min.js ← لوحة التحكم └── كل Controller يضيف CSS/JS إضافي: ├── home-v2.css + home-v2.js ← الصفحة الرئيسية فقط ├── category-v2.css + category-v2.js ← التصنيفات فقط ├── ilan-v2.css + ilan-v2.js ← تفاصيل الإعلان فقط └── contract.min.css + payment.min.css ← صفحات خاصة

📊 ملخص العلاقات بين المكونات

.htaccess public/index.php ┌─────────────────┼─────────────────┐ ▼ ▼ ▼ apps/config Router DI Container (Settings) (Routing) ├── db (MySQL PDO) ├── session ├── cookies └── view (Volt) Module.php ControllerBase Controller (مثل IndexController) ├── يستخدم Models ├── يستخدم Library (AWY Stubs, PHPMailer, Sms...) View (Volt) ├── index.volt (Layout) │ ├── CSS (CDN + Assets/AWY-V8/css) │ ├── JS (Assets/AWY-V8/js) │ ├── partials/ │ └── modules/ │ └── صفحة المحتوى (مثل index/index.volt) الترجمة: apps/frontend|backend/langs/{ar,en,tr}/
المبدأ الأساسي:
طلب → .htaccessindex.phpRouterModuleControllerBaseControllerModel + LibraryView (Volt)CSS/JS