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

المقدمة

إدارة صفحات الموقع الإلكتروني وشاشات التطبيق المحمول بمحتوى ديناميكي.

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

يتيح لك موديل Pages إنشاء واسترجاع وإدارة الصفحات (للمواقع الإلكترونية) أو الشاشات (للتطبيقات المحمولة) مع كل محتواها - النصوص، الصور، إعدادات تحسين محركات البحث، والسمات المخصصة.

فكر في الأمر كنظام إدارة محتوى - بدلاً من ترميز الصفحات بشكل ثابت، تديرها في OneEntry وتسترجعها ديناميكيًا في تطبيقك.

📖 شرح بسيط

تخيل أنك تبني موقعًا إلكترونيًا مع هذه الصفحات:

  • 🏠 الصفحة الرئيسية - الصفحة الرئيسية
  • 📄 من نحن - معلومات الشركة
  • 📞 اتصل بنا - صفحة نموذج الاتصال
  • 📝 المقالات - صفحات مقالات متعددة
  • الأسئلة الشائعة - مركز المساعدة

بدلاً من إنشاء كل صفحة يدويًا في الكود الخاص بك، أنت:

  • ✅ إنشاء الصفحات في لوحة إدارة OneEntry (مع المحتوى، الصور، تحسين محركات البحث)
  • ✅ استرجاع الصفحات ديناميكيًا باستخدام هذا الموديل
  • ✅ تحديث المحتوى دون إعادة نشر تطبيقك
  • ✅ إدارة هيكل الصفحة، وعناوين URL، والبيانات الوصفية في مكان واحد

مثال من العالم الحقيقي:

بدون موديل الصفحات (ترميز ثابت):
- تحرير الصفحة الرئيسية → تغيير الكود → اختبار → نشر → الانتظار ❌
- 10 صفحات = 10 ملفات كود لإدارتها ❌
- تغييرات تحسين محركات البحث = تغييرات في الكود ❌

مع موديل الصفحات (ديناميكي):
- تحرير الصفحة الرئيسية → تحديث في لوحة إدارة OneEntry → مباشرة ✅
- 100 صفحة = استرجاع ديناميكي من API ✅
- تغييرات تحسين محركات البحث = تحديث في لوحة الإدارة ✅

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

ما هي الصفحة؟

الصفحة هي كيان محتوى يمثل:

  • ويب: صفحة على موقعك الإلكتروني (مثل، /about, /contact)
  • محمول: شاشة في تطبيقك (مثل، شاشة الملف الشخصي، شاشة الإعدادات)

تحتوي كل صفحة على:

  • المحتوى - نصوص، صور، فيديوهات
  • عنوان URL - عنوان الصفحة (مثل، /about-us)
  • تحسين محركات البحث - عنوان ميتا، وصف، كلمات مفتاحية
  • سمات مخصصة - أي حقول إضافية تحددها
  • الحالة - منشورة، مسودة، مؤرشفة
  • التعريب - دعم متعدد اللغات

أنواع الصفحات

يدعم OneEntry أنواعًا مختلفة من الصفحات:

النوعالوصفمثال الاستخدام
صفحة عاديةصفحة ثابتة قياسيةمن نحن، اتصل بنا، الشروط
صفحة خطأصفحات خطأ 404، 500صفحة غير موجودة
صفحة نظامصفحات خاصةسياسة الخصوصية، الكوكيز
صفحة قالبهيكل صفحة قابلة لإعادة الاستخدامقالب مقالة المدونة

هيكل الصفحة

يمكن تنظيم الصفحات في هيكل شجري:

📁 الشركة
├─ من نحن
├─ الفريق
└─ الوظائف

📁 المنتجات
├─ فئة المنتج 1
│ ├─ المنتج أ
│ └─ المنتج ب
└─ فئة المنتج 2

لماذا هذا مهم: يمكنك استرجاع جميع الصفحات في قسم أو بناء قوائم التنقل تلقائيًا.

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

طريقتان لتحديد الصفحات

الطريقةمتى تستخدمهاالمثال
حسب URLيزور المستخدم صفحة معينة/about-us, /contact
حسب IDمراجع داخلية123, 456

أفضل ممارسة: استخدم id في الكود (لأنها لا تتغير)، استخدم عناوين URL للتوجيه.

هيكل الصفحة

كل صفحة تحتوي على هذه الحقول الرئيسية:

{
"id": 9, // معرف فريد
"parentId": 8, // معرف الوالد
"moduleFormConfigs": [], // تكوينات موديل النماذج
"pageUrl": "blog1", // عنوان URL للصفحة
"depth": 1, // العمق
"localizeInfos": { // معلومات التعريب
"title": "مدونة 1", // العنوان
"menuTitle": "مدونة 1", // عنوان القائمة
"htmlContent": "",
"plainContent": "",
},
"isVisible": true, // الرؤية
"blocks": [], // الكتل
"type": "common_page", // نوع الصفحة
"templateIdentifier": null, // معرف القالب
"attributeSetIdentifier": null, // معرف مجموعة السمات
"attributeValues": {}, // قيم السمات
"isSync": false, // المزامنة
}

التعريب (متعدد اللغات)

تدعم الصفحات لغات متعددة

نفس الصفحة، لغات مختلفة!

السمات المخصصة

يمكنك إضافة أي حقول إلى الصفحات باستخدام AttributesSets:

أمثلة:

  • مقالات المدونة: المؤلف، تاريخ النشر، العلامات، الصورة المميزة
  • صفحات المنتجات: السعر، SKU، المعرض، المواصفات
  • صفحات الهبوط: صورة البطل، أزرار CTA، الشهادات

تعلم المزيد: انظر AttributesSets Module


📊 جدول مرجعي سريع - الطرق الشائعة

الطريقةماذا تفعلمتى تستخدمها
getPages()الحصول على جميع الصفحات (مقيدة)بناء خريطة الموقع، قائمة بجميع الصفحات
getRootPages()الحصول على جميع الصفحات الجذرية (مقيدة)
getChildPagesByParentUrl()الحصول على جميع الصفحات الفرعية حسب ParentUrl (مقيدة)
getBlocksByPageUrl()الحصول على كائنات PositionBlock للصفحة حسب URL.تُستخدم الكتل لعرض محتوى الصفحة.
getConfigPageByUrl()الحصول على إعدادات الصفحة حسب URL.تُستخدم صفحات الإعدادات لتخزين إعدادات الصفحة.
getPageById()الحصول على صفحة واحدة.تُستخدم الصفحات لعرض الصفحة.
getPageByUrl()الحصول على صفحة واحدة حسب URL.تُستخدم الصفحات لعرض الصفحة.
searchPage()بحث سريع عن الصفحات مع مخرجات محدودة.البحث عن الصفحات حسب العنوان، الوصف، العلامات، إلخ.

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

ما الفرق بين URL و Marker؟

  • URL (pageUrl) - عنوان الويب الذي يراه المستخدمون (مثل، /about-us, /contact)

    • يُستخدم للتوجيه
    • سهل الاستخدام
  • Marker - معرف تقني في الكود (مثل، homepage, contact_page)

    • يُستخدم في المراجع البرمجية
    • تقني، وليس موجهًا للمستخدم

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

عناوين URL للصفحات والتوجيه

أفضل ممارسة للتوجيه:

✅ جيد: مسار شامل ديناميكي مثال Next.js: pages/[...slug].js


التخزين المؤقت للأداء

تقليل استدعاءات API باستخدام التخزين المؤقت.


معاينة المسودات

عرض صفحات المسودات للمسؤولين فقط.


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

  • تخزين الصفحات مؤقتًا لتقليل استدعاءات API
  • التعامل مع أخطاء 404 بشكل سلس
  • تصفية حسب statusId: 1 و isVisible: true للإنتاج
  • إضافة حالات تحميل في واجهة المستخدم
  • تنفيذ استراتيجية تخزين مؤقت للصفحات

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


تعريف موديل الصفحات


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


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