هل يجب على المستخدمين إكمال نموذج عند إنشاء موضوع؟

هل من الممكن أن يُطلب من المستخدمين إكمال نموذج عند إنشاء موضوع؟ (أي، عند فتح نافذة إنشاء موضوع، يظهر نموذج داخل الموضوع يجب عليهم تعبئته).

باستخدام قالب الموضوع عند إنشاء فئة، يمكنني إدراج بعض التلميحات حول ما يجب على المستخدمين إدخاله. لكن هذا يختلف عن النموذج. يمكن حذف التلميحات (لذا قد لا يعرف المستخدمون غير المتمرسين ما يجب فعله بها)، وتصبح الصفحة مزدحمة إذا كان هناك عدة تلميحات على نفس الصفحة.

سيكون النموذج تجربة مستخدم أنظف وأبسط في الحالة التي أريد فيها من المستخدمين ملء بعض المعلومات الرئيسية في موضوعهم عند إنشاءه.

هل هذا ممكن؟ لقد وجدت هذا مكون السمة ولكن، بينما لست متأكدًا بعد مما يفعله، لا أعتقد أنه يحقق ما في ذهني. كما أرى هذا الطلب منذ عدة سنوات - يبدو أنه لم يُتخذ أي إجراء.

أيضًا، أعرف أن إضافة “الموجه المخصص” (Custom Wizard) تسمح لك بإنشاء نموذج لإكماله من قبل المستخدمين، لكن في هذه الحالة أحتاج إلى أن يكون النموذج ضمن موضوع في discourse (بحيث يظهر كموضوع مع جميع الوظائف المصاحبة، مثل التصنيفات والردود، إلخ). وأحتاج إلى أن تظل تجربة المستخدم واضحة داخل التطبيق (أعتقد أن إضافة الموجه تنقلهم إلى صفحة منفصلة بقائمة مختلفة، إلخ).

3 إعجابات

هذه الأمور ممكنة تقنيًا بالتأكيد في مكون السمة.

3 إعجابات

موضوع قديم ذو صلة وثيقة لأولئك المهتمين:

إعجاب واحد (1)

شكرًا.

كيف تظن أنه يمكن أن يعمل؟

إليك بعض الأفكار التي لدي، رغم أنها لا تزال تحتاج إلى إجابة بعض الأسئلة:

الأساسيات الموجودة حاليًا: عناصر النّص الوارد (Placeholders). لكن حاليًا الأمر إما كل شيء أو لا شيء

أبسط هيكل يمكنني التفكير فيه لمحاكاة سلوك النماذج هو أن يظهر “النموذج” في محرر النصوص (محرر “d-editor” الذي يظهر عند الضغط على إنشاء موضوع).

في ذلك المحرر، يمكنك توفير “أقسام” مختلفة، مثل:

الاسم


الموقع


المشكلة


سيكون عنوان كل قسم عنصر نص وارد (placeholder)، بحيث عندما يضغط المستخدم عليه، يختفي العنوان (مثل: الاسم).

حتى الآن، إعداد هذا الأمر ممكن باستخدام مكون سمة النص الوارد.

لكن… لن يؤدي ذلك تمامًا إلى الحصول على سلوك شبيه بالنماذج، لأن عناصر النص الوارد الموجودة حاليًا تظهر بشكل “كل شيء أو لا شيء”، كما أصف في ما يلي.


سلوك شبيه بالنماذج مع عناصر النص الوارد. لكن كيف يمكنك الوصول إلى عناصر div في المحرر؟

لجعل هذا الأمر أكثر شبيهًا بالنماذج، يجب أن يتصرف كل قسم بشكل مستقل.

حاليًا، ومع مكون سمة النص الوارد، الأمر إما كل شيء أو لا شيء—إذا ضغط المستخدم على المحرر، تختفي جميع عناوين النص الوارد.

لذلك، للحصول على سلوك نموذجي أساسي، بدلاً من ظهور أو اختفاء جميع العناوين معًا، نحتاج إلى أن يتصرف كل قسم من عناوين النص الوارد بشكل مستقل. إذن، عندما يضغط المستخدم على النص الوارد “الاسم”، يختفي ذلك النص الوارد فقط، بينما تبقى عناصر النص الوارد الأخرى (“الموقع” و"المشكلة").

سيكون ذلك ممكنًا إذا كان كل عنصر نص وارد جزءًا من عنصر div خاص به بمعرف فريد داخل محرر النصوص. ثم، باستخدام مكتبة jQuery، يمكنك إظهار وإخفاء النص الوارد بناءً على ما إذا كان المستخدم قد نقر في المنطقة. هذا يتطلب إضافة عناصر div منفصلة داخل ما هو حاليًا مربع نص (textarea)، وأنا غير متأكد من كيفية القيام بذلك.

سؤال لهذا النهج: كيف يمكنك الوصول إلى عناصر div داخل مربع نص المحرر، حتى تتمكن من اتخاذ إجراء عند نقر المستخدم عليها؟


بديل: استخدام خيار النص القالب الموجود. لكن كيف نجعل النص غير قابل للتعديل؟

ربما يكون البديل هو أن عناوين الأقسام لا “تختفي” عندما يضغط المستخدم. إذن، ستبقى عناوين الأقسام (مثل: الاسم، والموقع، والمشكلة) كنص ثابت على الصفحة. لجعلها أكثر شبيهًا بالنماذج، مقارنة بالافتراضي الحالي لقالب الموضوع البسيط:

  1. لا يمكن للمستخدم تعديل نص عنوان القسم (أي contenteditable="false")
  2. لا يمكن للمستخدم إزالة نقاط الفصل بين الأقسام
  3. سيكون هناك مساحة أسفل عنوان القسم حيث من الواضح للمستخدم أنه يمكنه الكتابة. في القالب الافتراضي الحالي، سيتعين عليهم الانتقال إلى حيث يوجد النص، والضغط على return، لإنشاء مساحة للكتابة.

سؤال لهذا النهج: كيف يمكنك إدخال نص القالب، ولكن (i) جعل هذا النص غير قابل للتعديل من قبل المستخدم و (ii) وجود أماكن واضحة للمستخدم لإدخال المعلومات أسفل كل جزء من النص؟


ربما توجد طريقة أفضل للحصول على سلوك شبيه بالنماذج؟

إعجابَين (2)

من المرجح أنك ستحتاج إلى تمرير القالب قبل تقديم مجموعة أكثر تعقيدًا من حقول الإدخال بدلاً من منطقة نصية واحدة كبيرة.

ثم قم بمعالجته لاحقًا لإدراج النص في الأماكن الصحيحة.

ستحتاج إلى معيار تنسيق لتحديد العناوين ونقاط إدخال النص…

قد يكون هذا حلاً أخف وزنًا لأن كل شيء سيتم الاحتفاظ به في عالم الواجهة الأمامية. (سيظل كل شيء مخزنًا كمنشور نصي واحد).

العيب الرئيسي لهذا النهج هو أنه سيكون من الصعب جدًا البحث عن هذه المعلومات وتجميعها بهذه الطريقة…

يبدو وكأنه مشروع ممتع :slight_smile:

أبحث عن حل يبقى في الواجهة الأمامية في الوقت الحالي. لا يُعد تحليل الأجزاء المختلفة من النموذج والبحث فيها ضروريًا في هذه المرحلة، وأعتقد أن ذلك ينطبق على معظم حالات الاستخدام. الأمر يتعلق بالتأكد من إدخال المستخدمين لردودهم بطريقة متسقة.

لا أفهم ما تقصده بهذه العبارات:

آمل أن أعود إلى هذا الموضوع. أتمنى أن يكون هناك طريقة في الواجهة الأمامية للسماح للمستخدمين بملء ما يبدو (لهم) وكأنه نموذج. على سبيل المثال، عندما يذهبون لإنشاء موضوع، سيرىون شيئًا مثل:

“الاسم”


“الموقع”


“المشكلة”


يمكن أن يبقى كل هذا في الواجهة الأمامية. ليس لدي حاجة (سيكون ذلك جيدًا، لكن لا حاجة لذلك حاليًا) لتحليل الأقسام المختلفة لما يقدمه المستخدمون — يمكن إرساله كما هو الآن. الهدف هو ضمان تقديم أكثر انتظامًا من المستخدمين، ومنحهم واجهة مستخدم نظيفة عندما تكون هناك مطالبات مختلفة.

الفرق بين هذا وما هو متاح حاليًا بإضافة قالب موضوع:
  1. لا يمكن للمستخدم حذف هذه المطالبات (أي، لا يمكن حذف “الاسم”، و"الموقع"، و"المشكلة").

  2. بشكل مثالي، يمكنني إضافة تنسيق يشبه النماذج، لجعل من الواضح للمستخدم أين يجب أن يكتب. لتمكين واجهة مستخدم أنظف لمستخدم ينشئ موضوعًا في حالة وجود عدة مطالبات مختلفة. مع قوالب الموضوع، يجب على المستخدم إنشاء مساحته الخاصة لكتابة ردوده لكل مطالبة. بالإضافة إلى ذلك، تبدو نافذة إنشاء الموضوع مزدحمة جدًا عندما يكون لديك مطالبات مختلفة في حالة استخدام قوالب الموضوع الحالية.

ردّ @sam سابقًا:

يبدو أن هذا ممكن بالفعل. مشكلتي الأكبر: كيف يمكنني في مكون السمة (أو الإضافة) تغيير ما يظهر داخل نافذة إنشاء الموضوع؟ حاليًا، يبدو الأمر وكأنه صندوق أسود من نوع iframe عندما حاولت فعل ذلك.

أعلم أنه قد يكون هناك طريقة للدخول إلى هناك، نظرًا لأن هذا ما تفعله قوالب الموضوع وما تفعله إضافة placeholder. لكنني لم أستطع معرفة كيفية قيامهم بذلك.

هل لديك أي نصائح حول ما يمكنني فعله مع الكود لتغيير ما بداخل نافذة إنشاء موضوع؟

إعجاب واحد (1)

نظروا في دليل المطور لسمات Discourse. هذا هو المكان الذي يجب البدء منه.

إذا كنت تقصد اسم المستخدم والموقع، فهي موجودة في ملف المستخدم، لذا قد لا تكون ضرورية؟

شكرًا لك على ردك. أنا على دراية بكيفية بناء السمات والإضافات. ما أبحث عنه هنا هو إرشادات حول الكود المحدد للدخول إلى إطار الـ I-frame الخاص بنموذج إنشاء الموضوع. لا أحتاج إلى أن يقوم أحد بتفصيل كل شيء، لكن أي توجيه سيكون موضع تقدير. لقد عانيت سابقًا في العثور على طريقة لإجراء أي تغييرات على هذا النموذج.

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

3 إعجابات

أنا مهتم أيضًا بحل مثل نموذج يطالب المستخدمين بالإدخال عند إنشاء موضوع، ويفضل أن يكون لديهم خيار لجعل بعض الحقول إلزامية؛ يمكن أن تكون بعض هذه البيانات حساسة، وأود تخزينها في بعض الحقول المخصصة في الموضوع.

إعجاب واحد (1)

تحقق من Introducing Experimental Form Templates