نحن نعمل على تحسين تجربة الإعداد الأولي لمجتمعنا. وبطبيعة الحال، نود استخدام المعلومات التي نعرفها عن المستخدم للقيام/إظهار أشياء معينة بناءً على المعلومات التي يقدمونها لنا.
اليوم، يبدأ المستخدمون إنشاء حساباتهم من خلال تكامل 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” (مطور) من القائمة المنسدلة، فسيظهر سؤال ثانٍ في النموذج يسأل عن لغة البرمجة المفضلة لديه.
يمكن استخدام تحسين الحقل الشرطي هذا في كل من عملية إعداد المستخدم وعملية المواضيع الجديدة الأصلية المقصودة.
هل سيكون من الممكن تطبيق هذه الشروط في ملف تعريف المستخدم بدلاً من صفحة إنشاء الحساب فقط؟ (أنا متأكد من أنني أفهم أنها تعمل فقط في صفحة إنشاء الحساب - لدي شخص يريد أن يعود الأشخاص لإدخال الأشياء وتطبيق هذه القواعد.)
حسنًا، بالنسبة لك ربما! لقد حاولت وضعت بسرعة. بدا الأمر وكأنه يجب أن يكون سهلاً مثل نسخ بعض الأشياء إلى صفحة التفضيلات، ولكن أي الأشياء كان أكثر مما يمكنني فهمه بسرعة.