الغوص العميق في وحدة نموذج الويب لدروبال 8/9
نشرت: 2021-10-12تعد وحدة Webform النمطية هي أداة إنشاء النماذج ومدير الإرسال الأقوى والأكثر مرونة لدروبال. يمنح بناة الموقع القدرة على إنشاء أشكال معقدة بسهولة على الفور. يأتي بمستوى معين من الإعدادات الافتراضية ، مما يتيح لك أيضًا تخصيصه وفقًا لمتطلباتك.
قم بإلقاء نظرة على هذه المدونة الرائعة - Drupal 8 Webform Module - برنامج تعليمي موجز لمساعدتك على بدء استخدام وحدة Webform في موقع Drupal 8/9 الخاص بك. سيساعدك هذا على فهم الأساسيات بسهولة.
تأتي وحدة Webform مع الكثير من الميزات المثيرة للاهتمام وأود أن أذكر بعضها هنا.

ميزات Webform
1. تعديل الشكل والعناصر
يمكن تغيير أي شكل وعنصر والإعدادات المرتبطة به باستخدام الخطافات الخاصة بكل منهما. فيما يلي بعض الروابط المتاحة للاستخدام ويمكنك العثور على المزيد في ملف webform.api.php :
- خطافات الشكل
◦ hook_webform_submission_form_alter ()
◦ إجراء التعديلات قبل تقديم نموذج الويب.
- خطاف العنصر
◦ hook_webform_element_alter ()
◦ تعديل عناصر الويب.
- خطاف الخيار
◦ hook_webform_options_alter ()
◦ تعديل خيارات نموذج الويب.
- خطاف معالج
◦ hook_webform_handler_invoke_alter ()
◦ العمل على معالج نموذج ويب عند استدعاء أسلوب.
- المزيد من الخطافات ...
◦ hook_webform_access_rules_alter () إلخ ..
◦ تعديل قائمة قواعد الوصول التي يجب إدارتها على مستوى نموذج الويب.
2. مصدر YAML
بدأت وحدة Webform كوحدة نمطية YAML ، والتي سمحت للأشخاص ببناء النماذج عن طريق كتابة ترميز YAML. في مرحلة ما ، بدأت وحدة YAML Form في الحصول على واجهة مستخدم وأصبحت وحدة Webform لدروبال 8.
- يوفر YAML لغة ترميزية بسيطة وسهلة التعلم لبناء عناصر نموذج ويب وتحريرها بشكل مجمّع.
- تسمح صفحة المصدر (عرض) للمطورين بتحرير مصفوفة عرض نموذج ويب باستخدام ترميز YAML. يمكن للمطورين استخدام (عرض) صفحة المصدر لترميز نماذج الويب يدويًا لتغيير تسميات نموذج الويب بسرعة ، ولصق عناصر متعددة ولصقها ، وإعادة ترتيب العناصر ، بالإضافة إلى إضافة خصائص مخصصة وترميز إلى العناصر.
- في ما يلي مثال على نموذج جهة اتصال ورمز مصدر YAML المقابل له:

نموذج جهة اتصال مع واجهة مستخدم السحب والإفلات

رمز مصدر YAML الخاص بنموذج الاتصال
3. الحقول الشرطية
يتيح لك Webform إضافة منطق شرطي إلى عناصرك داخل النموذج. دعونا نفكر في مثال صغير ، حيث نحتاج إلى التعامل المشروط مع رؤية العناصر بناءً على قيمة عنصر آخر داخل النموذج.
فيما يلي مثال على نموذج يحتوي على حقلين من خطوتين ، الخطوة 1 (عنصر الراديو) مع الخيارين "البريد الإلكتروني" و "رقم الهاتف المحمول". الخطوة 2 (مجموعة الحقول) مع عنصرين ، "البريد الإلكتروني" و "رقم الهاتف المحمول".

صفحة بناء النموذج

صفحة عرض النموذج
في المثال أعلاه ، أود إظهار حقل "البريد الإلكتروني" إذا تم اختيار خيار "البريد الإلكتروني" في الخطوة 1 ، وإلا قم بإظهار حقل "رقم الهاتف المحمول" إذا تم اختيار خيار "رقم الهاتف المحمول" في الخطوة 1.
لتحقيق ذلك ، قم بتحرير حقل "البريد الإلكتروني" الخاص بك ، وانقر فوق علامة التبويب "الشروط" ، واختر "الحالة" على أنها "مرئية" وقم بتعيين "المشغل / القيمة" على أنها "قيمة الخطوة 1 [الراديو] هي البريد الإلكتروني". وبالمثل ، اتبع نفس الخطوات لإضافة منطق شرطي إلى حقل "رقم الهاتف المحمول" وتعيين "عامل التشغيل / القيمة" على أنه "قيمة الخطوة 1 [الراديو] هي mobile_number". إليك الشكل النهائي لنموذج الويب:

إعداد المنطق الشرطي

استمارة عند اختيار "البريد الإلكتروني" في الخطوة 1

استمارة عند اختيار "رقم الهاتف المتحرك" في الخطوة 1
4. خصائص الخيارات المخصصة
يتيح لك Webform إضافة خصائص خيارات مخصصة إلى العناصر الخاصة بك.
تخيل سيناريو تريد فيه التعامل الشرطي مع خيارات عنصر الراديو بناءً على قيمة عنصر مختلف داخل النموذج. كيف يمكنك أن تفعل ذلك؟
حسنًا ، لم أجد أي طريقة للتعامل معها من خلال إعدادات المنطق الشرطي من واجهة المستخدم. ولكن هناك شرط لتعيين "خصائص الخيارات المخصصة" للعنصر الخاص بك ، حيث تكتب المنطق الشرطي المطلوب الذي يستهدف خياراتك داخل العنصر باستخدام كود YAML.
فيما يلي مثال ، حيث يمكننا رؤية عنصري راديو وبناءً على الخيار الذي أحدده في العنصر الأول ، يجب تغيير رؤية الخيارات داخل العنصر الثاني.

صفحة بناء النموذج

صفحة عرض النموذج قبل إضافة أي خصائص خيارات مخصصة:
- إذا تم اختيار "النوع أ" ، فيجب أن يكون "الخيار 1" و "الخيار 2" مرئيين من العنصر الثاني. وبالمثل ، إذا تم اختيار "النوع ب" ، فيجب أن يكون "الخيار 3" و "الخيار 4" مرئيين. لتحقيق هذا التعديل في العنصر الثاني ، انتقل إلى علامة التبويب "خيارات متقدمة" ، وانتقل لأسفل إلى أقسام خصائص "الخيارات (المخصصة)" واكتب المنطق الضروري في YAML.


إعداد خصائص الخيارات


النموذج عند اختيار "النوع أ"

النموذج عند اختيار "النوع ب"
5. معالجات البريد الإلكتروني لإرسال نموذج ويب
معالجات البريد الإلكتروني
يرسل معالجات البريد الإلكتروني إرسال نموذج ويب عبر البريد الإلكتروني. لإضافة معالجات البريد الإلكتروني إلى نموذج الويب الخاص بك ، انتقل إلى "الإعدادات" ثم علامة التبويب "رسائل البريد الإلكتروني / المعالجات". بعد ذلك ، انقر فوق الزر "إضافة بريد إلكتروني / إضافة معالج".

إضافة معالج البريد الإلكتروني
- كما هو موضح في الصورة أدناه ، في علامة التبويب "عام" ، أضف "العنوان" وقم بتعيين تفاصيل "إرسال إلى" و "إرسال من". أضف الرسالة "الموضوع" و "النص الأساسي" بالشكل المطلوب واحفظ نموذج التكوين.





وهذا كل ما في الأمر. يتم طرد معالجك كلما تم إرسال النموذج.
- يمكنك أيضًا تعيين معالجات البريد الإلكتروني الشرطية لنموذج الويب الخاص بك ، أي تشغيل معالجات بريد إلكتروني مختلفة بناءً على قيمة عناصر معينة داخل النموذج.
- على سبيل المثال ، دعنا نفكر في عنصر "تحديد" بقيمتي "النوع 1" و "النوع 2". إذا أرسل المستخدم "النوع 1" ، فقم بتشغيل معالج "البريد الإلكتروني - النوع 1" الذي قام بتعيين عنوان "إلى" على " [البريد الإلكتروني المحمي] ". إذا أرسل المستخدم "النوع 2" ، فقم بتشغيل معالج "البريد الإلكتروني - النوع 2" الذي قام بتعيين عنوان "إلى" على " [البريد الإلكتروني المحمي] ".
- لإضافة منطق شرطي إلى معالج البريد الإلكتروني الخاص بك ، قم بإنشاء معالج واحد وقم بتسميته "البريد الإلكتروني - النوع 1". عيّن عنوان "إلى" على " [البريد الإلكتروني المحمي] " ، وانتقل إلى علامة التبويب "الشروط" ، واختر "الحالة" على أنها "مرئية" وقم بتعيين "المشغل / القيمة" على أنها "تحديد نوع [تحديد] القيمة هي type_1".
- وبالمثل ، قم بإنشاء المعالج الثاني وقم بتسميته "Email - Type 2". عيّن العنوان "إلى" على " [البريد الإلكتروني المحمي] " ، وانتقل إلى علامة التبويب "الشروط" ، واختر "الحالة" على أنها "مرئية" وقم بتعيين "المشغل / القيمة" على أنها "تحديد نوع [تحديد] القيمة هي type_2".

معالجات البريد الإلكتروني المجدولة
- إنه يوسع معالج البريد الإلكتروني لوحدة Webform للسماح بجدولة رسائل البريد الإلكتروني. لاستخدام هذه الميزة ، قم بتمكين الوحدة الفرعية "Webform Scheduled Email Handler".
- لجدولة إرسال بريد إلكتروني خاص بعمليات إرسال النموذج ، انقر فوق الزر "إضافة معالج". حدد معالج "البريد الإلكتروني المجدول" هنا.

لا يوجد سوى إعداد تكوين إضافي واحد في معالج "البريد الإلكتروني المجدول" مقارنةً بـ "معالج البريد الإلكتروني" العادي. وذلك لإضافة تاريخ جدولة البريد الإلكتروني ضمن علامة تبويب الإعدادات العامة.

معالج البريد الإلكتروني المجدول
قم بتعيين التاريخ لتشغيل المعالج الخاص بك وعندما يتم تشغيل cron التالي ، سيتم إرسال بريدك الإلكتروني!
البحث عن المساعدة
هناك طرق مختلفة يمكنك من خلالها طلب المساعدة في وحدة نموذج الويب. فيما يلي قائمة ببعض المصادر:
- التوثيق وكتاب الطبخ والتسجيلات الرقمية للشاشة
- https://www.drupal.org/docs/8/modules/webform
- قائمة انتظار إصدار Webform
- https://www.drupal.org/project/issues/webform
- إجابات دروبال
- http://drupal.stackexchange.com
- قناة سلاك
- يمكنك دائمًا نشر استفساراتك بخصوص وحدة Webform على قناة #webform داخل مساحة عمل Drupal Slack. أي شخص من المجتمع ، حتى مشرف الوحدة نفسه ، دائمًا ما يكون موجودًا ولطيفًا بما يكفي لإرشادك في مشاكلك.
صيحة ضخمة لجاكوب روكويتز لدعمه الذي لا هوادة فيه تجاه وحدة دروبال 8/9 Webform. لم يكن Webform كما هو عليه الآن بدونه.
