هل تكون ردود الموضوع غير مرئية حتى يقرر صاحب الموضوع إظهارها؟

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

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

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

نعم - مذهل! (لهذا السبب أحبها).

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

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

هل يتم تمرير كل ما يتعلق بموضوع ما عبر TopicView؟ هل يمكنني الاستفادة من username_filters؟ أم بناء شيء مشابه لذلك؟ أم أن استخدام guardian هو الطريقة الأفضل؟

أخبروني برأيكم!

18 إعجابًا

يعتمد الأمر بشكل كبير على ضمانات الأمان المطلوبة هنا، ولكن بما أنني أفترض أن الطلاب أذكياء إلى حد ما، فإن الحل المكون من CSS فقط لن ينجح.

الآن، إذا لم ينجح حل CSS، فمن المرجح أن يكون هؤلاء الأطفال مغامرين وسيجدون كل ثغرة للتغلب على النظام.

قد تحدث ثغرات خلفية في توسعات [quote]، وجميع أنواع الحيل الأخرى. قد لا يكون التصحيح البسيط “الذي يسمح برؤية المنشور” كافيًا.

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

18 إعجابًا

هل الحلول هي ملفات مُحمَّلة أم نصوص من مُكوِّن؟

في حال كانت ملفات مُحمَّلة، قد يكون استخدام ميزة رفع الوسائط الآمنة الجديدة، بالإضافة إلى إضافة لتغيير طريقة إنشاء رابط التحميل المؤقت للمستخدمين بحيث تُنتَج روابط «جيدة» فقط للموظفين، حلاً فعالاً مع الحد الأدنى من التغييرات. بعد حل الموضوع أو وضع علامة عليه أو إغلاقه، يعود الرابط المؤقت إلى حالته العادية بحيث يتمكن الجميع من رؤية كل شيء.

من الرائع أيضًا أن تتمكن من رؤية الأشخاص الذين يقدّمون الحلول دون الاطلاع على محتوى التقديم.

8 إعجابات

شكرًا لكما على التعليقات والأفكار!

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

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

فكرة رائعة حقًا. لكن معظم المحتوى هو نصوص في المحرر، وهي لا ترغب في إجبار الجميع على استخدام التحميلات فقط.

إعجابَين (2)

سأقوم بتعديل العنوان لأن هذا هو الطلب.

شعوري البديهي هو أن هذا يشبه أكثر إضافة “spoiler” (إخفاء المحتوى) من أي شيء آخر. حيث يمكن كشف الـ spoilers فقط من قبل صاحب الموضوع.

4 إعجابات

سيكون وضع علامة ‘مُحجَّز’ أمرًا معقدًا بعض الشيء، لأنك ستحتاج حينها إلى حماية مسارات /raw أيضًا.

ربما يكون الحل كالتالي:

  • ينشر المعلم سؤالًا مثل: “لماذا اندلعت الحرب في الهند الصينية؟”

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

  • يمكن للمعلم بعد ذلك تقديم “ملاحظات مباشرة” عبر الرسالة الخاصة.

  • بمجرد الانتهاء من التصحيح، يضغط المعلم على زر “نشر”، مما ينسخ المحتوى الخام للرسالة الخاصة ويستبدل رابط المحادثة في موضوع الواجب بهذا المحتوى.

7 إعجابات

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

6 إعجابات

حسناً، هذا الأمر معقد بعض الشيء. لقد قمت ببعض التعديلات على TopicView و PostGuardian، وهذا يوصلني إلى نسبة 80% دون جهد كبير، بما في ذلك /raw وحيل تتعلق بتحرير أرقام المنشورات المقتبسة. في الوقت الحالي، لا يزال بإمكاني رؤية منشورات لا ينبغي لي رؤيتها عبر:

  • البحث
  • نشاط المستخدم
  • رسائل البريد الإلكتروني الملخصة

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

4 إعجابات

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

لا بأس في وضع إخفاء محسّن، فأعتقد أن ذلك منطقي.

4 إعجابات

ماذا لو تم تنفيذ ذلك كـ “مستخدمين عاديين ينشرون منشورات سرية”؟

إعجابَين (2)

همسات لمن؟ لمالك الموضوع؟ إذن يجب نقلهم من قائمة الهمسات.

4 إعجابات

لا يزال علي إنهاء بعض التفاصيل الصغيرة، لكن لدي الآن ملحق يعمل على GitHub - communiteq/discourse-private-replies · GitHub

بعد تثبيت الملحق وتفعيله، سيحصل صاحب الموضوع (والطاقم) على زر إضافي في أسفل كل موضوع يُسمى ردود خاصة.

يمكن استخدام هذا الزر للتبديل بين وضع “الردود الخاصة” للموضوع.

عند تفعيل وضع الردود الخاصة:

  • يستطيع صاحب الموضوع رؤية جميع المنشورات.
  • يستطيع جميع المستخدمين الآخرين رؤية المنشورات التي أنشأها صاحب الموضوع، أو الطاقم، أو هم أنفسهم فقط.

يمكن التعرف على مثل هذا الموضوع من خلال لافتة تظهر في أعلى الموضوع:

image

عندما يقرر صاحب الموضوع جعل المنشورات عامة، يمكنه استخدام نفس الزر في أسفل الموضوع (الذي سيصبح اسمه الآن “ردود عامة”) لتعطيل وضع الردود الخاصة. وستختفي اللافتة، وستصبح جميع المنشورات مرئية للجميع (مع مراعاة أمان التصنيف بالطبع).

يقوم الملحق بتعطيل الطرق التالية لاسترجاع محتوى المنشورات:

  • عرض الموضوع (أي الطريقة العادية لعرض المنشورات)
  • ملف المستخدم - النشاط
  • البحث
  • النص الخام (/raw/topic_id/post_id)

إخلاء مسؤولية 1:

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

إخلاء مسؤولية 2:

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

سأقوم بنشر موضوع في فئة الإضافات وإعداد ملف README.md جيد خلال هذا الأسبوع. وفي الوقت نفسه، يسعدني تلقي ملاحظاتكم!

9 إعجابات

ما هي تداعيات الأداء لهذا؟ فالكثير من الإضافات التابعة لجهات خارجية تضيف استعلامات من نوع N+1، وN²، وN³، وN^N.. نأمل أن يمكن تجنب ذلك هنا.

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

7 إعجابات

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

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

9 إعجابات