إذن، شريكي هو معلم (للغة الإغريقية القديمة واللاتينية الكلاسيكية) ويستخدم منصة Discourse في فصوله منذ عدة سنوات. تستخدمه بشكل رئيسي لتوزيع الواجبات على طلابها ومناقشتها لاحقًا. ومع ذلك، يتم تسليم جميع الواجبات على ورق خلال حصصها.
حتى الآن - ومع إغلاق المدارس بسبب ذعر كورونا، تنتقل إلى التدريس عبر الإنترنت بنسبة 100%، بما في ذلك تسليم الواجبات. لذا، يقوم الطلاب حاليًا بإرسال أعمالهم عبر البريد الإلكتروني إليها. هذا غير مثالي للغاية لأنه يتطلب منها الكثير من الأعمال الإدارية (ويمكنني إخبارك أنها ليست جيدة جدًا في هذا النوع من الأمور ;)).
كنا نناقش بعض الخيارات وقالت: “لماذا لا يمكنني إنشاء موضوع لا يرى فيه الطلاب سوى منشوراتي أنا (أي المنشورات التي ينشئها صاحب الموضوع) ومنشوراتهم هم فقط؟ هذا سيسمح لي بنشر واجب كموضوع، ويطلب من كل طالب نشر إجابته تحته دون القدرة على رؤية إجابات الآخرين. ثم، عندما ينتهي الجميع من إدخال أعمالهم ويحين وقت المناقشة، أريد أن أتمكن من الضغط على زر لإزالة الغطاء وجعل جميع المنشورات في الموضوع مرئية للجميع، حتى يتمكنوا من رؤية أعمال بعضهم البعض ومناقشتها.”
نعم - مذهل! (لهذا السبب أحبها).
سأقوم ببناء إضافة (plugin) لهذا الغرض، ربما مستفيدًا من إضافة “solved” التي تتيح التبديل السحري (جعل كل شيء مرئيًا بمجرد حل الموضوع). ولكن قبل أن أبدأ، أردت استطلاع رأيكم والحصول على ملاحظاتكم، وربما الحصول على بعض الأفكار لجعل هذا الحل أفضل.
أي تلميحات أو إرشادات حول كيفية تنفيذ هذا بكفاءة ستكون موضع ترحيب كبير - حيث توجد العديد من الطرق لاسترجاع موضوع، وإذا تمكن طالب واحد من إيجاد طريقة لتجاوز هذا النظام، فستفقد كل شيء قيمته.
هل يتم تمرير كل ما يتعلق بموضوع ما عبر TopicView؟ هل يمكنني الاستفادة من username_filters؟ أم بناء شيء مشابه لذلك؟ أم أن استخدام guardian هو الطريقة الأفضل؟
يعتمد الأمر بشكل كبير على ضمانات الأمان المطلوبة هنا، ولكن بما أنني أفترض أن الطلاب أذكياء إلى حد ما، فإن الحل المكون من CSS فقط لن ينجح.
الآن، إذا لم ينجح حل CSS، فمن المرجح أن يكون هؤلاء الأطفال مغامرين وسيجدون كل ثغرة للتغلب على النظام.
قد تحدث ثغرات خلفية في توسعات [quote]، وجميع أنواع الحيل الأخرى. قد لا يكون التصحيح البسيط “الذي يسمح برؤية المنشور” كافيًا.
الطريقة الأكثر أمانًا للقيام بذلك هي عبر الرسائل الخاصة (PMs)، حيث يقوم الطلاب بإرسال المحتوى عبر رسالة خاصة، ثم بمجرد الانتهاء… ينقل “نقرة واحدة” جميع الرسائل الخاصة إلى الموضوع. نظيف… بسيط… آمن.
في حال كانت ملفات مُحمَّلة، قد يكون استخدام ميزة رفع الوسائط الآمنة الجديدة، بالإضافة إلى إضافة لتغيير طريقة إنشاء رابط التحميل المؤقت للمستخدمين بحيث تُنتَج روابط «جيدة» فقط للموظفين، حلاً فعالاً مع الحد الأدنى من التغييرات. بعد حل الموضوع أو وضع علامة عليه أو إغلاقه، يعود الرابط المؤقت إلى حالته العادية بحيث يتمكن الجميع من رؤية كل شيء.
من الرائع أيضًا أن تتمكن من رؤية الأشخاص الذين يقدّمون الحلول دون الاطلاع على محتوى التقديم.
المشكلة هي أن لديها ست فصول دراسية مختلفة، كل منها يحتوي على مهمتين أو ثلاث مهام جارية في نفس الوقت، مما يعني أنها تدير حوالي 15 مهمة مختلفة. لذا، لن يكون الأمر سهلًا جدًا كما يبدو.
لا، لن يعمل استخدام CSS فقط، هذا مؤكد. من ناحية أخرى، لن يكون ذلك مشكلة كبيرة إذا تم اختراقه مرة أو مرتين، طالما أنني لا أجد نفسي أصلح مشاكلًا كل يوم.
فكرة رائعة حقًا. لكن معظم المحتوى هو نصوص في المحرر، وهي لا ترغب في إجبار الجميع على استخدام التحميلات فقط.
يسأل الناس عن هذا عدة مرات في السنة، والإجابة دائمًا هي: ‘لا يمكنك الحصول على أذونات خاصة بكل موضوع.’ إذا تمكنت من حل هذه المشكلة، أعتقد أن هناك اهتمامًا كبيرًا.
حسناً، هذا الأمر معقد بعض الشيء. لقد قمت ببعض التعديلات على TopicView و PostGuardian، وهذا يوصلني إلى نسبة 80% دون جهد كبير، بما في ذلك /raw وحيل تتعلق بتحرير أرقام المنشورات المقتبسة. في الوقت الحالي، لا يزال بإمكاني رؤية منشورات لا ينبغي لي رؤيتها عبر:
البحث
نشاط المستخدم
رسائل البريد الإلكتروني الملخصة
لذا، فإن الأمر يحتاج إلى مزيد من التصحيحات. في الوقت الراهن، هذا كل ما يمكنني التفكير فيه. أي اقتراحات لطرق أخرى للوصول إلى المنشور موضع ترحيب.
يمكن استخدام هذا الزر للتبديل بين وضع “الردود الخاصة” للموضوع.
عند تفعيل وضع الردود الخاصة:
يستطيع صاحب الموضوع رؤية جميع المنشورات.
يستطيع جميع المستخدمين الآخرين رؤية المنشورات التي أنشأها صاحب الموضوع، أو الطاقم، أو هم أنفسهم فقط.
يمكن التعرف على مثل هذا الموضوع من خلال لافتة تظهر في أعلى الموضوع:
عندما يقرر صاحب الموضوع جعل المنشورات عامة، يمكنه استخدام نفس الزر في أسفل الموضوع (الذي سيصبح اسمه الآن “ردود عامة”) لتعطيل وضع الردود الخاصة. وستختفي اللافتة، وستصبح جميع المنشورات مرئية للجميع (مع مراعاة أمان التصنيف بالطبع).
يقوم الملحق بتعطيل الطرق التالية لاسترجاع محتوى المنشورات:
عرض الموضوع (أي الطريقة العادية لعرض المنشورات)
ملف المستخدم - النشاط
البحث
النص الخام (/raw/topic_id/post_id)
إخلاء مسؤولية 1:
لا يقوم الملحق بإخفاء هوية من نشر في الموضوع بشكل كامل. تظل صور المستخدمين في قائمة الموضوعات دون تغيير، وتظل الموضوعات مرئية أيضًا في ملف المستخدم - الملخص. ومع ذلك، لا يكشف أي من هذين الأمرين عن محتوى المنشور.
إخلاء مسؤولية 2:
لا أعرف ما إذا كانت هناك طرق لاسترجاع محتوى المنشورات قد تكون قد أغفلتها. (لا يزال علي اختبار ما إذا كانت الملخصات البريدية ستكشف عن شيء ما، على سبيل المثال). سيقوم زوجي باختبار ذلك خلال الأسابيع القادمة، ولا شك عندي أن طلابه سيتمكنون من اكتشاف بعض الثغرات الذكية. سأحاول إغلاق هذه الثغرات بمجرد اكتشافها. التلميحات والنصائح موضع ترحيب!
سأقوم بنشر موضوع في فئة الإضافات وإعداد ملف README.md جيد خلال هذا الأسبوع. وفي الوقت نفسه، يسعدني تلقي ملاحظاتكم!
ما هي تداعيات الأداء لهذا؟ فالكثير من الإضافات التابعة لجهات خارجية تضيف استعلامات من نوع N+1، وN²، وN³، وN^N.. نأمل أن يمكن تجنب ذلك هنا.
كما سيكون من الجيد أيضًا إمكانية التبديل لكل موضوع على حدة، مع عدم وجود أي تأثير على الأداء في أي موضوع آخر باستثناء تلك التي يتم تفعيلها فيها، بدلًا من فرض تكلفة عالمية يجب دفعها دائمًا.
بذلت قصارى جهدي للحفاظ على الكفاءة قدر الإمكان، أي أن أقوم بالتقييم بأقل جهد ممكن وأخرج من أي فلاتر بأسرع وقت ممكن.
هناك بالتأكيد مجال لتحسينات بسيطة مثل تخزين معرفات المستخدمين للموظفين ومعرفات المواضيع المحمية مؤقتًا، لكنني أعتقد أنني قمت بعمل جيد نسبيًا للإصدار الأول. إذا كان هناك من يختلف معي، فلا تتردد في نقد كودي.