المقدمة
أنشئ كتل محتوى قابلة لإعادة الاستخدام يمكن استخدامها عبر صفحات متعددة.
🎯 ماذا يفعل هذا الموديل؟
يتيح لك موديل Blocks استخدام مكونات محتوى قابلة لإعادة الاستخدام (كتل) تحتوي على مجموعات من السمات ويمكن استخدامها عبر صفحات متعددة وصفحات المنتجات - مثل الرؤوس، والتذييلات، واللافتات، والشهادات، أو أي محتوى متكرر.
فكر في الأمر ككتل LEGO لموقعك الإلكتروني - تقوم بإنشاء كتلة مرة واحدة، وتعيد استخدامها في كل مكان تحتاجه. قم بتغيير الكتلة مرة واحدة، وستتحدث تلقائيًا في كل مكان.
📖 شرح بسيط
تخيل أنك تبني موقعًا إلكترونيًا يحتوي على:
- 🔝 رأس - شعار، قائمة تنقل (نفس الشيء في كل صفحة)
- 🔽 تذييل - معلومات الاتصال، روابط التواصل الاجتماعي (نفس الشيء في كل صفحة)
- 📢 لافتة ترويجية - عرض خاص (تظهر في صفحات متعددة)
- ⭐ شهادات - مراجعات العملاء (تُستخدم في أماكن مختلفة)
- 📞 نموذج الاتصال - يظهر في صفحات متعددة
بدلاً من نسخ هذا المحتوى إلى كل صفحة:
- ✅ أنشئ مرة واحدة ككتلة
- ✅ أدخل الكتلة حيثما تحتاجها
- ✅ قم بالتحديث في مكان واحد → التغييرات تحدث في كل مكان تلقائيًا
- ✅ حافظ على محتواك DRY (لا تكرر نفسك)
مثال من العالم الحقيقي:
بدون كتل (نسخ ولصق):
- تحديث التذييل → تحرير 50 صفحة يدويًا ❌
- إضافة رابط اجتماعي → تحديث في كل مكان ❌
- محتوى غير متسق عبر الصفحات ❌
مع الكتل (قابلة لإعادة الاستخدام):
- تحديث كتلة التذييل → تغييرات على جميع الصفحات الـ 50 على الفور ✅
- إضافة رابط اجتماعي → تحديث مرة واحدة ✅
- دائمًا متسق ✅
✨ المفاهيم الأساسية
ما هي الكتلة؟
الكتلة هي مكون محتوى قابل لإعادة الاستخدام يحتوي على:
- المحتوى - نص، صور، روابط، أي بيانات
- السمات - حقول مخصصة تحددها
- المؤشر - معرف فريد للإشارة إليها
- الحالة - نشط، مسودة، مؤ archived
قابلية إعادة استخدام الكتل
يمكن أن تكون الكتل:
- ✅ مستخدمة في صفحات متعددة وإذا تم تحديث الكتل، يتم تحديثها في كل مكان
- ✅ محلية (محتوى مختلف لكل لغة)
📋 ما تحتاج إلى معرفته
أفضل الممارسات: استخدم دائمًا المؤشرات في كودك (فهي لا تتغير أبدًا).
هيكل الكتلة
كل كتلة تحتوي على هذه الحقول الرئيسية:
{
id: 3, // unique ID
localizeInfos: { // block localized data
title: 'Block', // block localized title
},
version: 0, // block version
position: 1, // block position in array of blocks
identifier: 'block', // block identifier
type: 'common_block', // block type
templateIdentifier: null, // template identifier
isVisible: true, // visibility
attributeValues: {}, // block attributes
}
السمات المخصصة
تستخدم الكتل AttributesSets للحقول المخصصة:
أمثلة:
- كتلة التذييل: نص حقوق الطبع والنشر، روابط التواصل الاجتماعي، معلومات الاتصال
- لافتة البطل: عنوان رئيسي، عنوان فرعي، زر CTA، صورة خلفية
- شهادة: اسم المؤلف، صورة، اقتباس، تقييم
- نموذج الاتصال: تكوين الحقول، نص زر الإرسال
تعلم المزيد: انظر AttributesSets Module
📊 جدول مرجعي سريع - الطرق الشائعة
| الطريقة | ماذا تفعل | متى تستخدم |
|---|---|---|
| getBlocks() | الحصول على جميع الكتل (مقيدة، مصفاة) | قائمة بجميع الكتل المتاحة |
| getBlockByMarker() | الحصول على كتلة بواسطة المؤشر | جلب كتلة معينة في الكود |
| searchBlock() | البحث عن الكتل | جلب الكتل |
❓ الأسئلة الشائعة (FAQ)
ما الفرق بين الكتل والصفحات؟
- الصفحات/صفحات المنتجات - صفحات مكتفية ذاتيًا تمامًا مع عناوين URL (مثل
/about) يمكنك إضافة كتل ومكونات صفحة أخرى يمكن إعادة استخدامها عبر صفحات متعددة. - الكتل - مكونات قابلة لإعادة الاستخدام تُدرج في الصفحات (مثل، التذييل)
فكر في الأمر كالتالي:
- الصفحة = وثيقة كاملة
- الكتلة = فقرة تعيد استخدامها في مستندات متعددة
كيف يمكنني تحديث محتوى كتلة؟
قم بتحديثه في OneEntry لوحة الإدارة:
- انتقل إلى قسم الكتل
- ابحث عن كتلتك (مثل "التذييل")
- حرر السمات
- احفظ
جميع الصفحات التي تستخدم تلك الكتلة تتحدث تلقائيًا! ✨
هل يجب أن أنشئ العديد من الكتل الصغيرة أم عدد قليل من الكتل الكبيرة؟
العديد من الكتل الصغيرة هو الأفضل:
✅ جيد (صغير، مركز):
- header_logo
- header_navigation
- footer_copyright
- footer_social_links
❌ تجنب (كبير جدًا):
- entire_page_layout (contains everything)
لماذا؟ الكتل الصغيرة أسهل في إعادة الاستخدام والصيانة.
كيف يمكنني إظهار/إخفاء الكتل بشكل شرطي؟
تحقق من حقل isVisible
هل يمكنني إنشاء كتل ديناميكيًا عبر API؟
SDK للقراءة فقط. لإنشاء كتل، استخدم لوحة إدارة OneEntry.
كيف يمكنني التعامل مع الكتل المفقودة بشكل سلس؟
استخدم دائمًا try/catch
💡 ملاحظات مهمة
أفضل ممارسات مؤشرات الكتل
✅ أسماء مؤشرات جيدة:
- وصفية:
global_footer,homepage_hero - استخدم الشرطات السفلية:
contact_form - أحرف صغيرة:
promo_banner - تشير إلى النطاق:
global_headerمقابلblog_header
❌ أسماء مؤشرات سيئة:
- عامة:
block1,content - مسافات:
my block - حالة مختلطة:
MyBlock,ProMoBanner
تخزين الكتل
تتغير الكتل نادرًا → خزّنها!
🎓 أفضل الممارسات
- أنشئ كتل صغيرة ومركزة (مسؤولية واحدة)
- استخدم مؤشرات وصفية (
footer، وليسblock1) - خزّن الكتل لتقليل استدعاءات API
- تعامل مع الكتل المفقودة بشكل سلس (try/catch)
- وثق ما هي كل كتلة
- حافظ على هيكل الكتلة متسقًا
- اختبر تغييرات الكتلة قبل النشر
- استخدم
statusIdلمعاينة التغييرات
مزيد من المعلومات حول واجهة مستخدم الموديل https://doc.oneentry.cloud/docs/blocks/introduction
تعريف موديل الكتل
const { Blocks } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
🔗 الوثائق ذات الصلة
- Pages Module - إدارة الصفحات التي تستخدم الكتل
- AttributesSets Module - تعريف سمات الكتل
- Products Module - استخدام الكتل في صفحات المنتجات