نحن نعمل على تحسين تجربة الإعداد الأولي لمجتمعنا. وبطبيعة الحال، نود استخدام المعلومات التي نعرفها عن المستخدم للقيام/إظهار أشياء معينة بناءً على المعلومات التي يقدمونها لنا.
اليوم، يبدأ المستخدمون إنشاء حساباتهم من خلال تكامل OIDC الخاص بنا عن طريق إنشاء حساب مع شركتنا. يقدمون البريد الإلكتروني والاسم واسم المستخدم إلى OIDC قبل أن يعيدهم إلى Discourse.
المشكلة
نود الآن أن نقدم لهم بعض حقول المستخدم الإضافية لملئها - وهذا أمر رائع، لأن Discourse يقدم ذلك! للأسف، لا يمكننا إظهار الحقول بناءً على استجابات الحقول السابقة. على سبيل المثال، نود أن نسأل، “ما هو الدور الذي يصفك بشكل أفضل؟” مع الخيارات، developer (مطور)، administrator (مسؤول)، و analyst (محلل).
إذا اختاروا developer (مطور)، فسوف أسألهم بالطبع عن لغات البرمجة المفضلة لديهم. سأضيفهم أيضًا لاحقًا إلى مجموعة المستخدمين المطورين.
إذا اختاروا analyst (محلل)، فأريد أن أسألهم سلسلة مختلفة من الأسئلة، وأضيفهم إلى مجموعة مستخدمين مختلفة.
الحل المقترح
تقدم العديد من خيارات النماذج عبر الويب اليوم حقول نماذج شرطية (على سبيل المثال، كيف سمعت عنا؟ إذا تم تحديد “أخرى”، يظهر حقل إضافي لتوضيح السبب.). سيكون من الرائع لو بدأتم في مسار مماثل (ولكن أكثر قوة) كما فعلتم مع قوالب نماذج المواضيع الجديدة، ولكن مع متطلب إضافي للقدرة على الاعتماد على معرف حقل آخر، وتحديدًا إدخال هذا الحقل. على سبيل المثال، قد يبدو الأمر كالتالي:
- type: dropdown
id: user-type
choices:
- "Developer"
- "Application Administrator"
- "Analyst"
attributes:
none_label: "Choose your role..."
label: "Which option best describes your job"
validations:
required: true
- type: dropdown
id: developer-type-programming-language
depends: user-type
choices:
- "Developer"
choices:
- "Developer"
- "Application Administrator"
- "Analyst"
attributes:
none_label: "Preferred programming language..."
label: "What is the primary programming language used in your role?"
validations:
required: true
في هذا المثال، سيُطرح السؤال الأول على جميع المستخدمين. إذا اختار المستخدم “Developer” (مطور) من القائمة المنسدلة، فسيظهر سؤال ثانٍ في النموذج يسأل عن لغة البرمجة المفضلة لديه.
يمكن استخدام تحسين الحقل الشرطي هذا في كل من عملية إعداد المستخدم وعملية المواضيع الجديدة الأصلية المقصودة.
هل سيكون من الممكن تطبيق هذه الشروط في ملف تعريف المستخدم بدلاً من صفحة إنشاء الحساب فقط؟ (أنا متأكد من أنني أفهم أنها تعمل فقط في صفحة إنشاء الحساب - لدي شخص يريد أن يعود الأشخاص لإدخال الأشياء وتطبيق هذه القواعد.)
حسنًا، بالنسبة لك ربما! لقد حاولت وضعت بسرعة. بدا الأمر وكأنه يجب أن يكون سهلاً مثل نسخ بعض الأشياء إلى صفحة التفضيلات، ولكن أي الأشياء كان أكثر مما يمكنني فهمه بسرعة.
لدي حالة استخدام مماثلة! سواء عند التسجيل أو لحقول المستخدم القابلة للتعديل بعد التسجيل. (إذا كان لدى الأشخاص قطة مصابة بالسكري، أريد المزيد من المعلومات حول القطة؛ إذا كانوا يجرون اختبارات منزلية، نود أن نعرف كيف؛ إلخ)
(رأيت شخصًا ما يذكر أن جعل ملء حقول مستخدم معينة شرطًا لتغيير مستوى الثقة، سيكون ذلك مثيرًا للاهتمام للغاية أيضًا لعملية الإعداد!)
تبدو تلك الإضافة رائعة جدًا! لم أكن أعلم بوجودها. إذا كان من الممكن تمديدها إلى حقل ملف تعريف المستخدم، فمن المؤكد أنها ستبدو مناسبة لاحتياجات جاي بالإضافة إلى احتياجات الناشر الأصلي (OP).