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

المقدمة

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

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


🎯 ماذا تفعل هذه الوحدة؟

تتيح لك وحدة Pages استرجاع وإدارة الصفحات (للمواقع الإلكترونية) أو الشاشات (للتطبيقات المحمولة) مع كل محتواها - العنوان، المحتوى HTML/عادي، الرؤية، والسمات المخصصة. يمكنك تأليف الصفحات في لوحة إدارة OneEntry واسترجاعها ديناميكيًا في تطبيقك، لذا فإن تغيير المحتوى في الإدارة يظهر مباشرة دون الحاجة لإعادة النشر.

🚀 البدء السريع

قم بتهيئة الوحدة من defineOneEntry:


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

استرجع صفحة واحدة من خلال عنوان URL الخاص بها (علامة) واقرأ حقولها:

// Fetch the "about" page in English.
const page = await Pages.getPageByUrl("about", "en_US");

console.log(page.id, page.localizeInfos.title);
console.log("Visible:", page.isVisible);

// Custom fields you defined live in attributeValues.
console.log(page.attributeValues);

تتبع معظم طرق القراءة نفس الشكل: معرف (url أو id) بالإضافة إلى langCode. راجع جدول المرجع السريع أدناه للحصول على المجموعة الكاملة.

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

ما هي الصفحة؟

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

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

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

  • المحتوى - العنوان والمحتوى HTML/عادي عبر localizeInfos
  • عنوان URL - pageUrl، علامة الصفحة المستخدمة للتوجيه والبحث
  • الرؤية - علامة isVisible
  • السمات المخصصة - أي حقول إضافية تعرفها في attributeValues (تُصمم بيانات تحسين محركات البحث كسمات مخصصة، وليست حقلًا مدمجًا)
  • التعريب - محتوى متعدد اللغات

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

يدعم OneEntry أنواعًا مختلفة من الصفحات (type)، الأكثر شيوعًا هي:

النوعقيمة typeمثال الاستخدام
صفحة شائعةcommon_pageحول، اتصال، شروط
صفحة كتالوجcatalog_pageفئات الكتالوج
صفحة خارجيةexternal_pageروابط إلى عناوين URL خارجية
صفحة خطأerror_pageصفحة 404 / غير موجودة

القائمة الكاملة للأنواع متاحة من خلال وحدة GeneralTypes.

هيكل الصفحة

تُنظم الصفحات في شجرة من خلال parentId (الصفحات الرئيسية لها parentId: null):

📁 Company
├─ About Us
├─ Team
└─ Careers

📁 Products
├─ Product Category 1
│ ├─ Product A
│ └─ Product B
└─ Product Category 2

يمكنك استرجاع الصفحات الجذرية باستخدام getRootPages() والتنقل لأسفل باستخدام getChildPagesByParentUrl().

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

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

الطريقةمتى تستخدمهاالمثال
حسب URLيزور المستخدم صفحة معينةgetPageByUrl("about")
حسب IDالمراجع الداخليةgetPageById(123)

أفضل ممارسة: pageUrl هو علامة مستقرة - ليس مسار توجيه Next.js. مرر علامة OneEntry (مثل "about")، وليس /en/about.

هيكل الصفحة

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

{
"id": 9,
"parentId": 8,
"pageUrl": "blog1",
"depth": 1,
"localizeInfos": {
"title": "Blog 1",
"menuTitle": "Blog 1",
"htmlContent": "",
"plainContent": ""
},
"isVisible": true,
"blocks": [],
"type": "common_page",
"templateIdentifier": null,
"attributeSetIdentifier": null,
"attributeValues": {},
"isSync": false
}

التعريب

تدعم الصفحات لغات متعددة - اطلب langCode مختلف للحصول على نفس الصفحة بلغة أخرى.

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

أضف أي حقول إلى الصفحات باستخدام AttributesSets - مؤلف/تاريخ/علامات منشور المدونة، صور الأبطال لصفحات الهبوط، بيانات تحسين محركات البحث، وما إلى ذلك. اقرأها من page.attributeValues. تعرف على المزيد: وحدة AttributesSets.

الرؤية

استخدم علامة isVisible للتحكم في الصفحات المعروضة للمستخدمين - قم بتصفية isVisible: true في الإنتاج.


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

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

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

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

  • pageUrl - علامة الصفحة المستخدمة للتوجيه (مثل "about"). موجهة للمستخدم ومستقرة عبر البيئات.
  • id - المعرف الرقمي. يستخدم للمراجع الداخلية.

كيف يمكنني بناء التنقل من الصفحات؟

استخدم getRootPages() للإدخالات على المستوى الأعلى و getChildPagesByParentUrl() للتنقل لأسفل في الشجرة، أو استخدم وحدة Menus لإدارة هياكل التنقل.


كيف يمكنني إضافة بيانات تحسين محركات البحث إلى صفحة؟

تحسين محركات البحث ليس حقلًا مدمجًا - صمم عنوان/وصف/إلخ. كسمات مخصصة في AttributesSet، ثم اقرأها من page.attributeValues.


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

  • استخدم pageUrl (العلامة) للتوجيه - لا تقم بتشفير مسار توجيه إطار العمل كعنوان URL.
  • قم بالتصفية حسب isVisible: true للإنتاج.
  • قم بتخزين الصفحات في الذاكرة لتقليل استدعاءات API؛ تعامل مع 404 (الصفحة غير موجودة) بشكل جيد.
  • اقرأ البيانات المخصصة من attributeValues بدلاً من افتراض الحقول المدمجة.

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