المقدمة
إدارة صفحات الموقع الإلكتروني وشاشات التطبيق المحمول بمحتوى ديناميكي.
مزيد من المعلومات حول واجهة مستخدم الوحدة 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بدلاً من افتراض الحقول المدمجة.
🔗 الوثائق ذات الصلة
- وحدة Products - إدارة منتجات التجارة الإلكترونية
- وحدة Blocks - كتل محتوى قابلة لإعادة الاستخدام للصفحات
- وحدة AttributesSets - حقول مخصصة للصفحات
- وحدة Menus - إدارة قوائم التنقل
- وحدة GeneralTypes - أنواع الصفحات