المقدمة
استرجع قوالب العرض التي تتحكم في كيفية عرض الصفحات، الكتل، المنتجات، والصور عبر تطبيقك.
مزيد من المعلومات حول القوالب في لوحة إدارة OneEntry: https://doc.oneentry.cloud/docs/category/templates
🎯 ماذا يفعل هذا الموديل؟
يتيح لك موديل Templates تغيير هيكل ومظهر مشروعك دون تعديل كوده المصدر. تقوم بإنشاء قوالب في لوحة إدارة OneEntry (الإعدادات > القوالب)، وتوسم مكوناتك بها، ويقوم هذا الموديل باسترجاع تلك التكوينات حتى يتمكن تطبيقك من عرض المحتوى بتصميم متسق.
تتيح لك هذه الفصل بين الهيكل والكود التبديل بين تنفيذات القوالب للتأثير على كيفية عرض الكيانات، كل ذلك دون إعادة نشر. SDK هو للقراءة فقط: لا يمكنك إنشاء قوالب من خلاله.
🚀 البداية السريعة
قم بتهيئة الموديل من defineOneEntry:
const { Templates } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
استرجع القوالب واقرأ تكوينها:
// Fetch all templates of a given BlockType.
const productTemplates = await Templates.getTemplateByType("product", "en_US");
productTemplates.forEach((tpl) => {
console.log(tpl.identifier, tpl.title, tpl.generalTypeName);
});
// Or fetch a single template by its marker.
const card = await Templates.getTemplateByMarker("product_thumbnail", "en_US");
console.log(card.attributeValues);
✨ المفاهيم الأساسية
ما هي القالب؟
القالب (ITemplateEntity) هو تكوين عرض يحدد كيف يجب أن يظهر المحتوى:
- النوع العام (
generalTypeName) - فئة الكيان التي ينطبق عليها القالب، مثلBlockTypeمثلproduct،common_page،common_block،form، أوorder - العنوان (
title) - اسم القالب المعروض في لوحة الإدارة (غير فريد) - المؤشر (
identifier) - معرف فريد للإشارة إلى الكود (استخدم هذا، وليس المعرف) - قيم السمات (
attributeValues) - خريطة لقيم السمات مفاتيحها هي المؤشر - مجموعة السمات (
attributeSetIdentifier) - مجموعة السمات المرتبطة (اختياري)
هيكل القالب (ITemplateEntity):
interface ITemplateEntity {
id: number; // Unique identifier
title: string; // Template name (non-unique)
identifier: string; // Template marker (unique)
generalTypeId: number; // Type ID reference
version: number; // Version number
generalTypeName: BlockType; // General type name
attributeSetIdentifier: string | null; // Associated attribute set
attributeValues: IAttributeValues; // Map of attribute values keyed by marker
position: number; // Sort position
}
أنواع القوالب (BlockType)
نوع القالب هو generalTypeName، قيمة BlockType. تقبل getTemplateByType(type) نفس BlockType. القيم الشائعة:
| النوع | فئة الكيان | حالات الاستخدام المثال |
|---|---|---|
product | المنتجات | تفاصيل المنتج، عرض المنتج |
catalog_page | صفحات الكتالوج | قائمة الفئات، نتائج البحث |
common_page | الصفحات العادية | منشور مدونة، صفحة هبوط، صفحة حول |
error_page | صفحات الأخطاء | صفحة 404، صفحة 500، تخطيطات أخطاء مخصصة |
common_block | كتل المحتوى | بطاقات المحتوى، لافتات، أقسام، أدوات |
form | النماذج | نموذج الاتصال، نموذج التسجيل، استبيان |
order | الطلبات | تأكيد الطلب، تاريخ الطلب |
service | كيانات الخدمة | محتوى متعلق بالخدمة |
📋 ما تحتاج إلى معرفته
يتم إنشاء القوالب في لوحة الإدارة
لا يمكنك إنشاء قوالب عبر SDK - يتم إنشاؤها في لوحة إدارة OneEntry (الإعدادات > القوالب). يحتاج كل قالب إلى اسم (غير فريد)، مؤشر فريد، ونوع (فئة الكيان التي ينطبق عليها). SDK مخصص لـ استرجاع تكوينات القوالب، وليس لإنشائها.
استخدم المؤشرات، وليس المعرفات
قم دائمًا بالإشارة إلى القوالب بواسطة المؤشر (identifier) في كودك - المؤشرات مستقرة عبر البيئات، بينما المعرفات ليست كذلك. استخدم getTemplateByMarker(marker) لقالب واحد، وgetTemplateByType(type) لجميع القوالب من نوع BlockType واحد، وgetAllTemplates() لاسترجاع كل قالب مجمع حسب النوع.
القوالب المفقودة
ترجع الطرق كائن خطأ (IError) عندما لا يتم العثور على قالب. تحقق دائمًا من وجود المؤشرات وتعامل مع القوالب المفقودة بشكل لطيف.
التخزين المؤقت
تتغير القوالب نادرًا - قم بتخزينها مؤقتًا (localStorage/sessionStorage على الواجهة الأمامية، Redis/ذاكرة على الواجهة الخلفية؛ ~1 ساعة TTL هو نقطة انطلاق معقولة).
📊 جدول المرجع السريع
| الطريقة | الوصف | حالة الاستخدام |
|---|---|---|
| getAllTemplates() | الحصول على جميع القوالب مجمعة حسب النوع | قائمة بجميع القوالب المتاحة |
| getTemplateByType() | الحصول على القوالب حسب نوع الكيان | استرجاع القوالب لنوع كيان محدد |
| getTemplateByMarker() | الحصول على قالب بواسطة المؤشر | استرجاع تكوين قالب محدد |
❓ الأسئلة الشائعة (FAQ)
ما الفرق بين القوالب وTemplatePreviews؟
تقوم القوالب بتكوين عرض المحتوى العام (الصفحات، الكتل، المنتجات)، بينما تتعامل TemplatePreviews بشكل خاص مع صور سمات المنتجات (عينة الألوان، معاينات المواد). استخدم القوالب للمحتوى الرئيسي، وTemplatePreviews لصور السمات.
كيف يمكنني استرجاع قالب محدد؟
استخدم getTemplateByMarker(marker) لقالب واحد بواسطة مؤشّره، أو getTemplateByType(type) لاسترجاع جميع القوالب من نوع BlockType معين (مثل product، common_page). استخدم getAllTemplates() لاسترجاع كل قالب مجمع حسب النوع.
ماذا يحدث إذا قمت بالإشارة إلى قالب غير موجود؟
ترجع الطرق كائن خطأ (IError). تحقق دائمًا من وجود مؤشرات القوالب وتعامل مع القوالب المفقودة بشكل لطيف.
أي أنواع القوالب يجب أن أستخدم لمحتواي؟
اختر بناءً على نوع الكيان: common_page للصفحات العادية، catalog_page لقوائم المنتجات، common_block لكتل المحتوى، product لتفاصيل المنتجات. قم بمطابقة نوع القالب مع فئة المحتوى الخاصة بك.
🎓 أفضل الممارسات
- استخدم المؤشرات، وليس المعرفات - المؤشرات مستقرة عبر البيئات.
- أنشئ مؤشرات دلالية -
product_card، وليسtpl_1. - قم بتخزين القوالب مؤقتًا - قلل من استدعاءات API للبيانات التي نادرًا ما تتغير.
- تعامل مع القوالب المفقودة - تحقق من شكل إرجاع
IError.
🔗 الوثائق ذات الصلة
- لوحة إدارة OneEntry - قوالب المحتوى - الوثائق الرسمية للوحة الإدارة
- موديل TemplatePreviews - معاينة القوالب لصور السمات
- موديل المنتجات - تستخدم المنتجات قوالب المنتجات
- موديل الصفحات - تستخدم الصفحات قوالب الصفحات
- موديل الكتل - تستخدم الكتل قوالب الكتل
- موديل النماذج - تستخدم النماذج قوالب النماذج