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

المقدمة

قم ببناء التنقل والتصفية المتعددة من شجرة فلتر محتوى محلية واحدة.

مزيد من المعلومات حول واجهة مستخدم الوحدة https://doc.oneentry.cloud/docs/category/filters


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

تتيح لك وحدة Filters استرجاع فلتر محتوى بواسطة علامته. فلتر المحتوى هو شجرة من العناصر المنسقة والمحلية - يمكن أن تخلط بين الصفحات والمنتجات والسمات والخصومات والمكافآت وطرق الدفع والإدخالات المخصصة في هيكل واحد.

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

🚀 البدء السريع

قم بتهيئة الوحدة من defineOneEntry:


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

استرجع فلتر بواسطة العلامة واستعرض شجرة عناصره:

// Fetch the "main" content filter, localized to English.
const filter = await Filters.getFilterByMarker("main", "en_US");

console.log(filter.localizeInfos.title);

filter.items?.forEach((node) => {
console.log(node.type, node.marker ?? node.url, node.children?.length ?? 0);
});

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

العلامة

كل فلتر له علامة فريدة (على سبيل المثال main). تطلب فلترًا بواسطة العلامة، وتكون الاستجابة محلية للغة المطلوبة langCode.

شجرة العناصر

مصفوفة items هي شجرة: تعيش العناصر العادية والمخصصة في نفس المصفوفة، ويمكن أن يحتوي كل عقدة على children متداخلة. استعرض الشجرة لعرض واجهة المستخدم الخاصة بك.

كل عقدة لها type تشير إلى شيء في مشروعك:

  • page - رابط إلى صفحة (يكشف عن url)
  • product - إدخال منتج
  • attribute - سمة للتصفية
  • discount / personal-discount - إدخال خصم
  • bonus - إدخال مكافأة
  • payment-method - طريقة دفع
  • admin - إدخال إداري
  • custom - إدخال مخصص قمت بتعريفه

تحمل كل عقدة معلومات محلية (localizeInfos) وقد تحتوي على children متداخلة، لذا يمكنك عرض فلاتر وقوائم متعددة المستويات مباشرة من الاستجابة.

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

  • مرر langCode للحصول على الفلتر محليًا إلى لغة معينة (الافتراضي هو en_US).

  • تكشف عقد الصفحات (type: "page") عن url؛ تستخدم أنواع العقد الأخرى marker للإشارة إلى كيانها.

  • يحمل حقل value قيمة عقدة موحدة، ويكون null عندما لا تحتوي العقدة على أي شيء (مثل صفحة، على سبيل المثال). يتم تصنيفه كـ string | string[] | null: تعيد سمة النطاق مصفوفة القيم التي تقع ضمن النطاق، بينما تعيد أنواع العقد الأخرى سلسلة واحدة - عنوان تم حله لسمة خانة اختيار قديمة، قيمة الخصم لـ discount / personal-discount / bonus، معرف الكائن لـ product / admin / payment-method.

    const value = node.value;
    const values = Array.isArray(value) ? value : value == null ? [] : [value];

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

الطريقةالوصف
getFilterByMarker()احصل على فلتر محتوى بواسطة علامته

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

من أين تأتي فلاتر المحتوى؟

تتم تكوين فلاتر المحتوى في لوحة إدارة OneEntry. يسترجع SDK هذه الفلاتر للقراءة فقط بواسطة العلامة.


كيف يمكنني عرض فلتر متعدد المستويات؟

استعرض مصفوفة items بشكل متكرر - قد تحتوي كل عقدة على مصفوفة children بنفس شكل العقدة.


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

  • ارجع إلى الفلاتر بواسطة العلامة، وليس بواسطة عنوان العرض.
  • اطلب الفلتر بلغة المستخدم الحالية عبر langCode.
  • قم بتخزين الفلاتر في الذاكرة - فهي تتغير نادرًا.

🔗 الوثائق ذات الصلة