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

المقدمة

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

تتيح لك وحدة GeneralTypes استرجاع أنواع الكيانات على مستوى النظام - أنواع الصفحات، أنواع النماذج، أنواع كتل المنتجات، والمزيد - التي تحدد هيكل وفئات المحتوى الخاص بك في OneEntry.

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


📖 شرح بسيط

في OneEntry، كل كيان له نوع يحدد غرضه وهيكله:

  • أنواع الصفحات: homepage, blog_post, product_page, landing_page
  • أنواع النماذج: contact_form, survey, registration, feedback
  • أنواع كتل المنتجات: hero_section, image_gallery, text_block, video_embed
  • أنواع المنتجات: physical_product, digital_product, service, subscription

توفر وحدة GeneralTypes القائمة الكاملة لجميع الأنواع المكونة في مشروع OneEntry الخاص بك، بحيث يمكنك:

بناء قوائم منسدلة ديناميكية - دع المسؤولين يختارون نوع الصفحة عند إنشاء المحتوى
تصفية المحتوى - عرض صفحات "blog_post" فقط أو نماذج "contact_form"
التحقق من البيانات - تحقق مما إذا كان النوع موجودًا قبل إنشاء كيان
إنشاء منطق قائم على النوع - عرض واجهة مستخدم مختلفة بناءً على نوع الصفحة

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

تطبيق المدونة الخاص بك يسترجع جميع أنواع الصفحات:
- "homepage" → يعرض شريط التمرير للمنشورات المميزة
- "blog_post" → يعرض تخطيط المقال مع التعليقات
- "about_page" → يعرض بطاقات أعضاء الفريق
- "contact_page" → يعرض نموذج الاتصال

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

هيكل نظام الأنواع

ينظم OneEntry المحتوى باستخدام نظام أنواع حيث ينتمي كل كيان إلى فئة:

الكيانأنواع الأمثلةالغرض
الصفحاتhomepage, blog_post, product_page, landing_pageتحديد تخطيطات الصفحات والوظائف
النماذجcontact_form, survey, registration, feedbackتصنيف أغراض النماذج المختلفة
كتل المنتجاتhero_section, gallery, text_block, video_embedكتل بناء لصفحات المنتجات
المنتجاتphysical_product, digital_product, service, subscriptionتصنيف مخزون المنتجات

هيكل كيان النوع

كل نوع يتم إرجاعه بواسطة GeneralTypes.getAllTypes() له هذا الهيكل:

interface GeneralTypeEntity {
id: number; // معرف رقمي فريد (مثل: 1، 2، 3)
type: string; // اسم النوع (مثل: "blog_post"، "contact_form")
}

متى تستخدم GeneralTypes

حالة الاستخداملماذا GeneralTypes؟
بناء واجهة إدارة CMSملء القوائم المنسدلة بالأنواع المتاحة
إنشاء فلاتر الأنواعدع المستخدمين يقومون بتصفية المحتوى حسب النوع (منشورات المدونة مقابل صفحات الهبوط)
التحقق من إنشاء الكياناتتحقق مما إذا كان النوع موجودًا قبل إنشاء صفحة/نموذج
التوجيه الديناميكيتوجيه أنواع الصفحات المختلفة إلى مكونات مختلفة
أذونات قائمة على النوعالسماح لأدوار مختلفة بالوصول إلى أنواع محتوى مختلفة

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

الأنواع مكونة في لوحة إدارة OneEntry

لا يمكنك إنشاء الأنواع عبر SDK - الأنواع محددة في لوحة إدارة OneEntry الخاصة بك عند تكوين مشروعك. وحدة GeneralTypes تسترجع فقط قائمة الأنواع الموجودة.

كيف يتم إنشاء الأنواع:

لوحة إدارة OneEntry → الإعدادات → أنواع المحتوى → إضافة نوع صفحة → "blog_post"

بمجرد إنشائها، يمكنك استرجاعها

الأنواع مقابل العلامات مقابل المعرفات

تمييز مهم:

المعرفما هومثالالأفضل للاستخدام
النوعفئة/تصنيف الكيان"blog_post"التصفية والتجميع
العلامةمعرف فريد قابل للقراءة البشرية"my_about_page"استرجاع كيانات محددة
المعرفمعرف رقمي في قاعدة البيانات42للاستخدام الداخلي للنظام

getAllTypes() ترجع جميع الأنواع عبر جميع الكيانات

تقوم الطريقة بإرجاع قائمة مجمعة من الأنواع من:

  • الصفحات
  • النماذج
  • كتل المنتجات
  • المنتجات
  • أي كيانات أخرى في مشروع OneEntry الخاص بك

لا يوجد تصفية مدمجة حسب فئة الكيان، لذا ستحتاج إلى التصفية يدويًا:

الأنواع حساسة لحالة الأحرف

استخدم دائمًا مطابقة الحالة الدقيقة عند العمل مع الأنواع

استخدم الأنواع لعرض المحتوى الديناميكي

تمكن الأنواع من المحتوى المتعدد الأشكال - منطق عرض مختلف بناءً على النوع:


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

الطريقةالوصفحالة الاستخدام
getAllTypes()يسترجع جميع الأنواع العامة في النظامملء القوائم المنسدلة، التحقق من الأنواع

هيكل GeneralTypeEntity:

{
id: number; // معرف رقمي فريد
type: string; // اسم النوع (مثل: "blog_post")
}

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

كيف يمكنني إنشاء أنواع جديدة؟

لا يمكنك إنشاء الأنواع عبر SDK. يتم إنشاء الأنواع في لوحة إدارة OneEntry:

1. تسجيل الدخول إلى لوحة إدارة OneEntry
2. الانتقال إلى الإعدادات → أنواع المحتوى
3. النقر على "إضافة نوع صفحة" (أو نوع نموذج، نوع منتج، إلخ)
4. إدخال اسم النوع: "blog_post"
5. حفظ

الآن استرجعها عبر SDK:
const types = await GeneralTypes.getAllTypes();
// ترجع: [{ id: 1, type: "blog_post" }, ...]

كيف يمكنني تصفية الأنواع حسب الكيان (الصفحات، النماذج، المنتجات)؟

ترجع طريقة getAllTypes() جميع الأنواع عبر جميع الكيانات. تحتاج إلى التصفية يدويًا


هل يمكنني تحديث أو حذف الأنواع عبر SDK؟

لا. وحدة GeneralTypes هي للقراءة فقط. تتم جميع إدارة الأنواع في لوحة إدارة OneEntry.


ما الفرق بين معرف النوع واسم النوع؟

متى تستخدم كل منهما:

الحقلللاستخداممثال
idمراجع النظام الداخليعلاقات قاعدة البيانات
typeمنطق الشيفرة الخاصة بك والمقارناتif (page.type === 'blog_post')

أفضل ممارسة: استخدم دائمًا سلسلة type في الشيفرة الخاصة بك، وليس رقم id (يمكن أن تتغير المعرفات بين البيئات).


هل يمكنني تخزين قائمة الأنواع في الذاكرة المؤقتة؟

نعم! الأنواع نادرًا ما تتغير، لذا يُوصى بالتخزين المؤقت


كيف يمكنني التعامل مع الأنواع المفقودة بشكل سلس؟

تحقق دائمًا من وجود نوع قبل استخدامه


هل يمكنني استخدام الأنواع للأذونات/الصلاحيات؟

نعم! يمكنك تنفيذ التحكم في الوصول القائم على النوع


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

⚠️ الأنواع خاصة بالمشروع

الأنواع مكونة في لوحة إدارة OneEntry الخاصة بك وتختلف بين المشاريع. لا توجد أنواع "افتراضية" عالمية - استرجع دائمًا القائمة ديناميكيًا:

// ❌ لا تقم بتشفير الأنواع
const pageTypes = ['homepage', 'blog_post', 'product_page'];

// ✅ استرجع الأنواع ديناميكيًا
const allTypes = await GeneralTypes.getAllTypes();
const pageTypes = allTypes.filter(t => t.type.endsWith('_page'));

🔒 وحدة للقراءة فقط

تقوم وحدة GeneralTypes فقط بقراءة الأنواع. تتم جميع عمليات إنشاء وتعديل وحذف الأنواع في لوحة إدارة OneEntry.


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

  • استرجع الأنواع ديناميكيًا - لا تقم بتشفير قوائم الأنواع
  • قم بتخزين الأنواع في الذاكرة المؤقتة - نادرًا ما تتغير، خزّنها لأداء أفضل
  • استخدم سلاسل الأنواع، وليس المعرفات - أسماء الأنواع مستقرة عبر البيئات
  • تحقق من وجود الأنواع - تحقق مما إذا كان النوع صالحًا قبل الاستخدام
  • استخدم اتفاقيات التسمية - يجعل التصفية أسهل
  • نفذ عرض احتياطي - تعامل مع الأنواع غير المعروفة بشكل سلس
  • وثق أنواعك - احتفظ بقائمة من الأنواع وأغراضها
  • استخدم TypeScript لسلامة النوع - استفد من واجهة GeneralTypeEntity

تعريف وحدة GeneralTypes

تم تصميم وحدة GeneralTypes في منصة OneEntry لإدارة واسترجاع الأنواع العامة المستخدمة داخل النظام. باستخدام دالة defineOneEntry، يمكنك إنشاء كائن GeneralTypes للتفاعل مع هذه الأنواع. الطريقة الرئيسية المتاحة هي getAllTypes، التي تسترجع جميع كائنات النوع GeneralTypeEntity من واجهة برمجة التطبيقات. ترجع هذه الطريقة وعدًا يتم حله إلى مصفوفة من كائنات GeneralTypeEntity، كل منها يحتوي على id و type. تغطي الأنواع أغراضًا متنوعة، مثل تخطيطات الصفحات، النماذج، كتل المنتجات، والمزيد، مما يوفر مرونة لاحتياجات إدارة المحتوى المختلفة.


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