انتقل إلى المحتوى الرئيسي

مقدمة

🎯 ماذا يفعل هذا الموديل؟

يتيح لك موديل Menus استرجاع هياكل تنقل الموقع - قوائم الرأس، قوائم التذييل، التنقل الجانبي، قوائم الهواتف المحمولة - من خلال بناء تنقل متعدد المستويات ديناميكياً من الصفحات المكونة في OneEntry.

فكر في الأمر كمدير التنقل الخاص بك - تقوم بإنشاء قوائم في لوحة إدارة OneEntry (ربط الصفحات معًا)، ويقوم هذا الموديل بجلب هيكل شجرة القائمة الكاملة، بحيث يمكنك عرض التنقل ديناميكياً دون الحاجة إلى ترميز الروابط بشكل ثابت.


📖 شرح بسيط

تحتاج كل موقع إلى تنقل لمساعدة المستخدمين في العثور على المحتوى:

  • قائمة الرأس - التنقل الرئيسي (الرئيسية، حول، خدمات، اتصال)
  • قائمة الهواتف المحمولة - قائمة همبرغر مع قوائم منسدلة
  • قائمة جانبية - تنقل الفئات (فئات المدونة، فلاتر المنتجات)
  • قائمة التذييل - روابط قانونية، روابط اجتماعية، خريطة الموقع
  • قائمة ضخمة - قوائم منسدلة معقدة مع صور وفئات
  • فتحات الخبز - مسار الصفحة الحالية (الرئيسية > المنتجات > الإلكترونيات)

المشاكل:

  • صعب التحديث - الحاجة إلى إعادة نشر الكود لتغيير القائمة
  • لا دعم للغات متعددة - قوائم مختلفة لكل لغة
  • غير صديقة للإدارة - الحاجة إلى المطورين لكل تغيير
  • تكرار القوائم - نفس القائمة مشفرة بشكل ثابت في أماكن متعددة

حل القوائم:

الفوائد:

  • تحديثات سهلة - تغيير القوائم في لوحة الإدارة، دون إعادة نشر
  • دعم متعدد اللغات - القوائم محلية تلقائياً
  • صديقة للإدارة - يمكن لغير المطورين إدارة التنقل
  • مصدر واحد للحقيقة - هيكل قائمة واحد في كل مكان

✨ المفاهيم الأساسية

ما هي القائمة؟

القائمة هي هيكل تنقل يحتوي على روابط للصفحات:

  • عناصر القائمة - روابط تنقل فردية (صفحات)
  • التسلسل الهرمي - هيكل متداخل (الأب → الأبناء)
  • الترتيب - ترتيب عرض العناصر
  • التعريب - عناوين مترجمة لكل لغة
  • ديناميكية - جلب الهيكل من واجهة برمجة التطبيقات، وعرضه في تطبيقك

هيكل القائمة

كل قائمة لها هذا الهيكل:

{
id: 123,
identifier: "header_menu", // معرف فريد
localizeInfos: {
title: "التنقل الرئيسي" // عنوان القائمة
},
pages: [ // عناصر القائمة (الصفحات)
{
id: 1, // معرف الصفحة
pageUrl: "/home", // عنوان URL للصفحة
localizeInfos: {
title: "الرئيسية", // العرض في الصفحة
menuTitle: "الرئيسية" // العرض في القائمة
},
attributeValues: {}, // قيم السمات
parentId: 0, // عنصر المستوى الأعلى
position: 1 // ترتيب العرض
}
]
}

تسلسل القائمة

تدعم القوائم الهياكل المتداخلة (التنقل متعدد المستويات):

📂 قائمة الرأس
├─ 🏠 الرئيسية (العمق: 0، parentId: 0)
├─ 📖 حول (العمق: 0، parentId: 0)
│ ├─ 👥 الفريق (العمق: 1، parentId: 2)
│ ├─ 🏢 المكتب (العمق: 1، parentId: 2)
│ └─ 📜 التاريخ (العمق: 1، parentId: 2)
├─ 🛍️ المنتجات (العمق: 0، parentId: 0)
│ ├─ 💻 الإلكترونيات (العمق: 1، parentId: 4)
│ │ ├─ 📱 الهواتف (العمق: 2، parentId: 5)
│ │ └─ 💻 الحواسيب المحمولة (العمق: 2، parentId: 5)
│ └─ 👕 الملابس (العمق: 1، parentId: 4)
└─ 📞 الاتصال (العمق: 0، parentId: 0)

أنواع القوائم الشائعة

نوع القائمةالوصفحالات الاستخدام
قائمة الرأسالتنقل الرئيسي للموقعشريط التنقل العلوي، الروابط الأساسية
قائمة التذييلروابط التذييلقانونية، اجتماعية، خريطة الموقع
قائمة جانبيةتنقل الفئاتفئات المدونة، فلاتر المنتجات
قائمة الهواتف المحمولةتنقل مخصص للهواتف المحمولةقائمة همبرغر، قائمة درج
قائمة ضخمةقائمة منسدلة معقدة مع الفئاتتنقل متعدد المستويات للتجارة الإلكترونية
فتحات الخبزمسار الصفحة الحاليةالرئيسية > المنتجات > الإلكترونيات

لماذا تستخدم موديل القوائم؟

الفائدةالوصف
تنقل ديناميكيجلب هيكل القائمة من واجهة برمجة التطبيقات، دون ترميز ثابت
دعم متعدد اللغاتالقوائم محلية تلقائياً بناءً على اللغة
صديقة للإدارةيمكن لغير المطورين تحديث التنقل
هيكل هرميدعم للقوائم المتداخلة (عمق غير محدود)
صديقة لمحركات البحثعلاقات وهيكل الصفحات بشكل صحيح
مصدر واحد للحقيقةهيكل قائمة واحد مستخدم في كل مكان

📋 ما تحتاج إلى معرفته

تُنشأ القوائم في لوحة الإدارة

لا يمكنك إنشاء قوائم عبر SDK - يتم إنشاؤها في لوحة إدارة OneEntry:

لوحة إدارة OneEntry → القوائم → إنشاء قائمة → إضافة صفحات → حفظ

SDK مخصص لـ جلب هياكل القوائم، وليس لإنشائها.

عناصر القائمة هي صفحات

مهم: عناصر القائمة هي صفحات مكونة في OneEntry. لا يمكنك إضافة روابط عشوائية إلى القوائم - يجب أن تكون كل عنصر قائمة صفحة.

تسلسل القائمة (علاقات الأب والابن)

تدعم القوائم عمق تعشيش غير محدود


💡 ملاحظات مهمة

تُنشأ القوائم في لوحة الإدارة

تذكر: SDK مخصص لـ جلب هياكل القوائم، وليس لإنشاء القوائم.

لإنشاء/تعديل القوائم: استخدم لوحة إدارة OneEntry أو واجهة برمجة التطبيقات الإدارية.

يجب أن تكون عناصر القائمة صفحات

لا يمكنك إضافة روابط عشوائية إلى القوائم. يجب أن يكون كل عنصر قائمة صفحة مكونة في OneEntry.

حل للروابط الخارجية: أنشئ صفحات مع عناوين URL خارجية في OneEntry، ثم أضفها إلى القوائم.

تسلسل القائمة مرن

تدعم القوائم عمق تعشيش غير محدود - يمكنك أن يكون لديك العديد من المستويات كما تحتاج.

دعم متعدد اللغات

تدعم القوائم تلقائياً اللغات المتعددة بناءً على langCode في defineOneEntry().

أفضل ممارسة: جلب القوائم بلغة المستخدم المفضلة.

تخزين القوائم لأداء أفضل

تتغير القوائم نادراً - نفذ التخزين المؤقت لتقليل استدعاءات واجهة برمجة التطبيقات:

  • الواجهة الأمامية: localStorage، sessionStorage
  • الواجهة الخلفية: Redis، ذاكرة التخزين المؤقت
  • TTL: ساعة واحدة موصى بها

📊 جدول مرجعي سريع

الطريقةالوصفحالة الاستخدام
getMenuByMarker()جلب القائمة بواسطة العلامةجلب هيكل قائمة محدد

❓ الأسئلة الشائعة (FAQ)

كيف يمكنني إنشاء قائمة متعددة المستويات (تنقل منسدل)؟

تدعم القوائم عمق تعشيش غير محدود. استخدم parentId لإنشاء هياكل هرمية. في لوحة الإدارة، يمكنك تعشيش الصفحات لإنشاء علاقات أب وابن تعكس تلقائياً في هيكل القائمة.


هل يمكنني إضافة روابط خارجية إلى القوائم؟

يجب أن تكون عناصر القائمة صفحات مكونة في OneEntry. لإضافة روابط خارجية، أنشئ صفحات مع عناوين URL خارجية في موديل الصفحات، ثم أضفها إلى قائمتك.


كيف يمكنني التعامل مع حالة عنصر القائمة النشط؟

قارن عنوان URL للصفحة الحالية مع pageUrl لكل عنصر قائمة. قم بتطبيق فئة/نمط نشط عندما تتطابق لتسليط الضوء على الصفحة الحالية في التنقل.


تحتوي قائمتي على الكثير من العناصر. كيف يمكنني تحسين الأداء؟

قم بتخزين القوائم مؤقتاً باستخدام localStorage أو sessionStorage لأنها نادراً ما تتغير. نفذ التحميل الكسول للقوائم الضخمة مع العديد من العناصر المتداخلة. ضع في اعتبارك استخدام قائمة همبرغر محسّنة للهواتف المحمولة لتحسين تجربة المستخدم.


كيف يمكنني إنشاء تنقل فتحة الخبز؟

استخدم تسلسل القائمة لبناء فتحات الخبز. تتبع من الصفحة الحالية لأعلى من خلال علاقات parentId لبناء مسار فتحة الخبز (الرئيسية > الفئة > الفئة الفرعية > الصفحة الحالية).


هل يمكنني الحصول على قوائم مختلفة لأقسام مختلفة؟

نعم! أنشئ قوائم متعددة مع علامات مختلفة (مثل header_menu، footer_menu، sidebar_menu) وقم بجلبها بشكل منفصل باستخدام getMenuByMarker().


🎓 أفضل الممارسات

  • استخدم العلامات، وليس المعرفات - العلامات مستقرة عبر البيئات
  • قم بتخزين القوائم مؤقتاً - تقليل استدعاءات واجهة برمجة التطبيقات للبيانات التي نادراً ما تتغير
  • بناء شجرة متكررة - استخدم parentId للهيكل الهرمي
  • ترتيب حسب الموضع - احترم ترتيب العرض
  • التعامل مع الحالة النشطة - تسليط الضوء على الصفحة الحالية
  • توفير قوائم احتياطية - التعامل مع الأخطاء بشكل سلس
  • دعم اللغات المتعددة - استخدم langCode للتعريب
  • تحسين للهواتف المحمولة - تنفيذ تنقل متجاوب

مزيد من المعلومات حول واجهة المستخدم للموديل https://doc.oneentry.cloud/docs/menu/introduction_menu


تعريف موديل القوائم

يحدد موديل Menus هيكل وتنقل موقعك.

تعتبر القائمة عنصرًا رئيسيًا في هيكل وتنقل موقعك. من خلال القائمة، توفر للزوار وسيلة مريحة للتنقل عبر أقسام مختلفة من تطبيقك والعثور على المعلومات التي يحتاجونها.


const { Menus } = defineOneEntry(
"your-project-url", {
"token": "your-app-token"
}
);

في منصة OneEntry، يمكنك إنشاء هيكل القائمة مباشرة من حسابك الشخصي. يتيح لك ذلك تغيير مجموعة الصفحات المضمنة في القائمة، وترتيبها، وعناوينها دون تعديل الشيفرة المصدرية لتطبيقك.

بالإضافة إلى ذلك، إذا لزم الأمر، يمكنك إنشاء مستويات متداخلة في القائمة، مما يسمح بوجود هيكل شجري مع أقسام وفئات فرعية.

كل هذا يمكّنك من العمل بشكل مريح ومرن مع تنقل تطبيقك مباشرة من حسابك الشخصي.

في جوهر القائمة، توجد الصفحات. يتم إنشاء هيكل القائمة من الصفحات.

يمكنك تحديد:

أي الصفحات ستدرج في القائمة بالترتيب الذي ستعرض به للمستخدم ما العنوان الذي سيعطى لعنصر القائمة الذي يؤدي إلى صفحة معينة تعشيش عناصر القائمة (هيكل الشجرة) تم مناقشة بعض هذه المفاهيم في قسم الصفحات، وبعض إعدادات الصفحة تؤثر على هيكل القائمة التي يمكنك إنشاؤها من هذه الصفحات.


🔗 الوثائق ذات الصلة