المقدمة
استرجع النماذج الديناميكية مع تقديمات في الوقت الحقيقي وجمع البيانات.
مزيد من المعلومات حول واجهة مستخدم الوحدة https://doc.oneentry.cloud/docs/category/forms
🎯 ماذا تفعل هذه الوحدة؟
تتيح لك وحدة Forms استرجاع النماذج - نماذج الاتصال، الاستطلاعات، التسجيلات، نماذج التعليقات - حتى تتمكن من عرضها في تطبيقك. تقوم بإنشاء النماذج في لوحة تحكم OneEntry؛ يقوم SDK باسترجاع هيكلها (الحقول، المدققون، التسميات المحلية) ديناميكيًا. يتم التعامل مع جمع التقديمات الفعلية بواسطة وحدة FormsData.
🚀 البدء السريع
قم بتهيئة الوحدة من defineOneEntry:
const { Forms } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
استرجع نموذجًا واحدًا بواسطة علامته واقرأ حقوله:
// Fetch the "contact_form" form structure.
const form = await Forms.getFormByMarker("contact_form", "en_US");
console.log(form.identifier, form.localizeInfos.title);
// Render each field from the form's attributes.
form.attributes.forEach((field) => {
console.log(field.marker, field.type, field.localizeInfos.title);
});
لإدراج كل نموذج (مقيد الصفحات) استخدم getAllForms(langCode, offset, limit)، والذي يعيد كائنًا { total, items }.
✨ المفاهيم الأساسية
ما هو النموذج؟
النموذج (form) (IFormsEntity) هو وسيلة منظمة لجمع المعلومات من المستخدمين:
- الحقول (
attributes) - عناصر الإدخال، كل منها سمة معtype(string,text,file,list, …) - المدققون (
validators) - قواعد لكل حقل (مطلوب، طول السلسلة، تنسيق البريد الإلكتروني) - الهيكل - التخطيط والتسميات المحلية المحددة في لوحة تحكم OneEntry
- التقديمات - ردود المستخدمين، المقدمة والمسترجعة عبر وحدة FormsData
أنواع حقول النموذج
كل حقل له type هو AttributeType. القيم الشائعة:
النوع (AttributeType) | الوصف | مثال على الاستخدام |
|---|---|---|
| string | نص قصير في سطر واحد | الاسم، العنوان، المدينة |
| text / textWithHeader | نص متعدد الأسطر | الرسالة، التعليقات، السيرة الذاتية |
| integer / real / float | إدخال رقمي | العمر، الكمية، السعر |
| date / dateTime / time | مختارات التاريخ والوقت | تاريخ الميلاد، تاريخ الحدث |
| list | قائمة منسدلة / اختيار متعدد من الخيارات | الدولة، الفئة |
| radioButton | اختيار واحد من الخيارات | الحجم، الخطة |
| file / image | تحميل ملف / صورة | السيرة الذاتية، الصورة، الوثيقة |
| groupOfImages | صور متعددة | المعرض |
| entity | مرجع إلى كيان آخر | منتج أو صفحة مرتبطة |
ملاحظة: البريد الإلكتروني هو حقل string مع emailInspectionValidator مفعل - لا يوجد نوع حقل منفصل للبريد الإلكتروني.
📋 ما تحتاج إلى معرفته
هيكل النموذج
كل نموذج (IFormsEntity) يحمل id، وidentifier (علامة)، وtype اختياري ('order' | 'sing_in_up' | 'collection' | 'data' | 'rating' | null)، وlocalizeInfos (العنوان، رسالة النجاح، …) ومصفوفة attributes من الحقول. كل حقل له marker، وtype، وlocalizeInfos، وكائن validators:
{
"marker": "email",
"type": "string",
"localizeInfos": { "title": "Email" },
"validators": {
"requiredValidator": { "strict": true },
"emailInspectionValidator": true,
"stringInspectionValidator": { "stringMin": 5, "stringMax": 100, "stringLength": 0 }
}
}
المدققون الشائعون:
requiredValidator—{ strict: boolean }، يجب ملء الحقلstringInspectionValidator—{ stringMin, stringMax, stringLength }، قيود طول النصemailInspectionValidator—boolean، فرض تنسيق البريد الإلكترونيdefaultValueValidator— القيمة الافتراضية بالإضافة إلى نص خطأ مخصص اختياري
مجموعة المدققين قابلة للتوسيع - قد تعيد واجهة برمجة التطبيقات أنواع مدققين إضافية.
يتم إنشاء النماذج في لوحة التحكم
الـ SDK مخصص لـ استرجاع النماذج (وعبر وحدة FormsData، تقديم البيانات) - وليس لإنشاء أو تعديل النماذج. لبناء أو تغيير نموذج، استخدم لوحة تحكم OneEntry: افتح قسم النماذج، أضف الحقول، قم بتكوين قواعد التحقق، وفعّل النموذج.
📊 جدول مرجعي سريع - الطرق
| الطريقة | ماذا تفعل | متى تستخدم |
|---|---|---|
| getAllForms() | الحصول على جميع النماذج (مقيد الصفحات) | قائمة بجميع النماذج المتاحة |
| getFormByMarker() | الحصول على نموذج بواسطة العلامة | استرجاع نموذج محدد في الكود |
كلا الطريقتين عامتان - لا حاجة لتفويض المستخدم.
❓ الأسئلة الشائعة (FAQ)
كيف يمكنني إنشاء أو تعديل النماذج؟
يتم إنشاء النماذج وتعديلها في لوحة تحكم OneEntry (قسم النماذج)، وليس عبر الـ SDK. يقوم الـ SDK فقط باسترجاع هياكل النماذج وتقديم البيانات.
هل يمكنني تحميل الملفات مع النماذج؟
نعم. أضف حقل file / image / groupOfImages إلى نموذجك؛ يتم التعامل مع التقديمات التي تحتوي على ملفات بواسطة FormData.postFormsData()، الذي يقوم بتحميلها عبر وحدة FileUploading تلقائيًا. راجع وحدة FormsData.
هل يمكن أن تحتوي النماذج على حقول شرطية (عرض/إخفاء بناءً على حقول أخرى)؟
ليس مباشرة في الـ SDK - نفذ منطق العرض/الإخفاء في واجهة المستخدم الخاصة بك بناءً على قيم حقول النموذج المسترجعة.
🎓 أفضل الممارسات
- ارجع إلى النماذج بواسطة
identifier(علامة) وليس بواسطة ID رقمي. - قم بعرض الحقول وحالة المتطلبات من
validatorsلكل حقل بحيث تتطابق واجهة المستخدم الخاصة بك مع التحقق من جانب الخادم. - استخدم try/catch حول الاسترجاعات وتعامل مع شكل إرجاع
IError.
🔗 الوثائق ذات الصلة
- وحدة FormsData - تقديم وإدارة تقديمات النماذج
- وحدة Events - إعداد إشعارات تلقائية عند تقديم النموذج
- وحدة FileUploading - التعامل مع تحميل الملفات في النماذج
- وحدة Users - إدارة المستخدمين الذين يقدمون النماذج