إنشاء مواضيع فرعية؟

أود أن أجعل بعض المواضيع مواضيع فرعية لمواضيع أخرى.

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

وهذا يعني، من حيث تجربة المستخدم، ما يلي:

يمكنني أيضًا وضع زر في صفحة الموضوع أ لـ “عرض جميع المواضيع الفرعية للموضوع أ”، وسيؤدي ذلك إلى الانتقال إلى قائمة المواضيع الفرعية للموضوع أ، مثل الموضوع ب وأي مواضيع أخرى تابعة للموضوع أ.

ما هو أفضل طريقة للقيام بذلك؟ (أفترض أنني سأضطر إلى تنفيذ ذلك عبر إضافة، وهو أمر مقبول.)

ملاحظة: أنا أبحث فقط عن مستوى واحد من المواضيع الفرعية، وليس عدة مستويات متعددة.

إليك بعض التفاصيل حول الاحتمالات التي أعتقد أنها قد تنجح:

التصنيفات (على الرغم من أن هذا قد لا يكون أفضل حل)

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

أو

الوسوم

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

يبدو هذا حلًا أنيقًا إلى حد ما، باستثناء أن عدد الوسوم سيكون كبيرًا (تقريبًا وسم واحد لكل موضوع رئيسي، مما قد يؤدي إلى عدد كبير جدًا).

أو

حقول مخصصة للمواضيع

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

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

هل هناك حل آخر فاتني؟

أرى حلاً آخر قد ينجح دون الحاجة إلى جهد برمجي كبير.

باستخدام إضافة السحرة المخصصة، يمكنك تنفيذ إجراءات متعددة في عملية واحدة. لذا، في هذه الحالة، ستطلب من المستخدم كتابة موضوع فرعي عبر سحرة يقوم بـ:

  • إنشاء موضوع جديد للموضوع الفرعي.
  • إنشاء رد في الموضوع الرئيسي يربط الموضوع الفرعي.

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

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

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

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

أمثلة على كيفية استخدامها:

  • إنشاء موضوع لحلقة/منشور/مقالة وجعل الأشخاص ينشئون موضوعات فرعية بناءً على ردود أفعالهم.

  • إنشاء موضوع لسؤال ثم جعل الأشخاص ينشئون موضوعات فرعية بإجاباتهم الخاصة (مكافأة لخيار تحديد موضوع فرعي واحد لكل شخص)

هل أحرزت أي تقدم في إنشاء إضافة أو معرفة كيفية القيام بذلك باستخدام ميزات Discourse الحالية؟

الطريقة الوحيدة التي رأيتها للقيام بذلك كانت باستخدام حقول الموضوع المخصصة. على سبيل المثال، يمكن أن يحتوي الموضوع الفرعي على حقل مخصص يربط مرة أخرى بالموضوع الرئيسي. بعد ذلك، يمكنك إجراء بحث عن جميع الموضوعات التي تحتوي على هذا الموضوع الرئيسي كقيمة للحقل المخصص. ليس لدي حتى الآن مكون إضافي مطبق بالكامل، ولكن تمكنت من جعله يعمل بشكل أساسي في التطوير باستخدام التعليمات البرمجية كما ذكرت هنا: Retrieve Topics based on custom field? - #12 by JQ331

أجل، أتخيل أنه إذا قام المرء بإنشاء حقل مخصص للموضوع باسم “topic-parent” أو شيء من هذا القبيل، فسيكون هناك الكثير من الطرق للاستفادة منه. سألقي نظرة أعمق على الرابط الذي شاركته، وآمل أن أتعلم بعض لغة Ruby على طول الطريق. شكراً لك!