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

المقدمة

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

تتيح لك وحدة 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"
التحقق من صحة البيانات - تحقق مما إذا كان النوع موجودًا قبل إنشاء كيان
إنشاء منطق قائم على النوع - عرض واجهة مستخدم مختلفة بناءً على نوع الصفحة

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

Your blog app fetches all page types:
- "homepage" → Renders featured posts slider
- "blog_post" → Renders article layout with comments
- "about_page" → Renders team member cards
- "contact_page" → Renders contact form

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

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

ينظم 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; // Unique numeric ID (e.g., 1, 2, 3)
type: string; // Type name (e.g., "blog_post", "contact_form")
}

متى تستخدم GeneralTypes

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

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

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

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

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

OneEntry Admin Panel → Settings → Content Types → Add Page Type → "blog_post"

بمجرد إنشائها، يمكنك جلبها

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

تمييز مهم:

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

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

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

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

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

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

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

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

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


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

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

هيكل GeneralTypeEntity:

{
id: number; // Unique numeric ID
type: string; // Type name (e.g., "blog_post")
}

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

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

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

1. Log in to OneEntry Admin Panel
2. Go to Settings → Content Types
3. Click "Add Page Type" (or Form Type, Product Type, etc.)
4. Enter type name: "blog_post"
5. Save

Now fetch it via SDK:
const types = await GeneralTypes.getAllTypes();
// Returns: [{ id: 1, type: "blog_post" }, ...]

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

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


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

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


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

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

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

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


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

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


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

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


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

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


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

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

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

// ❌ Don't hardcode types
const pageTypes = ['homepage', 'blog_post', 'product_page'];

// ✅ Fetch types dynamically
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"
}
);