رد فعل في ندوة

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

3 إعجابات

ستواصل Pavilion تقديم الدعم لـ Retort.

@Ahmed_Gagan، هل لديك أي آراء حول ما يلي؟

5 إعجابات

لتنفيذ تفاعل رد فوري بأولوية، يمكنك استخدام:

SiteSetting.post_undo_action_window_mins = الحد الأقصى للدقائق المسموح بها


ReactionManager.new(first_retort_reaction_at_priority, by_user, Guardian.new(by_user), post).toggle!

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

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

أجل، يمكنني فعل ذلك. لكن سيكون ذلك نوعًا من الحيلة قليلاً :wink:

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

ما أسعى إليه بشكل مثالي هنا هو تغيير طفيف في واجهة ReactionManager لجعل من الممكن ترحيل الردود (retorts) إلى ردود فعل (reactions) بشكل موثوق. حاليًا، تم إعدادها فقط للتعامل مع الطلبات القادمة من العميل.

إحدى الطرق للقيام بذلك هي:

  • تجريد حارس الحماية في toggle! إلى طريقة ensure_can_toggle
  • جعل طريقة ensure_can_toggle خاضعة لخيار force

هذا هو النهج المتبع عادةً للتعامل مع عمليات الترحيل أو الاستيراد الخلفي في أجزاء أخرى من Discourse (إذا قمت بالبحث في app/ أو lib/ عن force، فستجد بعض الأمثلة).

هل هذا منطقي؟

إعجابَين (2)

أعتقد أننا لا نحتاج إلى استخدام الإعداد هنا، حيث أننا لا نلمس الإعجابات التي تم إنشاؤها بالفعل على المنشور. هذا يعني أننا نقوم بإنشاء تفاعلات جديدة للمنشور. في هذه الحالة، ستكون guardian.can_delete_reaction_user? صحيحة دائمًا. مجرد استخدام ReactionManager.toggle سيكون كافيًا لهذا الغرض برأيي.

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

يقوم Discourse بالعديد من الأشياء المتعلقة بالإعجابات، مثل تحديد عدد الإعجابات حسب مستوى الثقة ومنح الأوسمة للأشخاص بناءً على الإعجابات.

هل يؤدي إضافة رد فعل أيضًا إلى زيادة عدد الإعجابات لكل من المستخدمين والمواضيع؟

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

يمكنك السؤال بشكل منفصل عن كيفية تفاعل هذا مع الإضافة الرسمية الجديدة Discourse Reactions

لكن Retort (التي تسمح بردود فعل متعددة لكل منشور لكل مستخدم، على عكس إضافة Discourse Reactions) لا تتفاعل على الإطلاق مع مستويات الثقة والشارات المتعلقة بالإعجابات.

5 إعجابات

@gdpelican هذا إعادة نشر من https://meta.discourse.org/t/reaction-emoji-seem-to-have-no-verification/189108، حيث يبدو أن الرموز التعبيرية (الإيموجي) ليست جزءًا من نظام Discourse، لذا أعيد نشرها هنا:

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

إليك المشكلة: يمكنك إضافة رموز تعبيرية غير موجودة إلى تفاعلات المنشور. وينتج عن ذلك ظهور تفاعلات بصيغة :whateverYouWant: في المنشورات.

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

شاهد هذه الرسالة/الموضوع في منتدى Manjaro:

شاهد مثالًا في التفاعلات؛ ستلاحظ المشكلة بوضوح مع جميع التفاعلات الصحيحة بجانب التفاعل غير الصالح:

إذًا، يبدو أن المستخدم يمكنه إرسال رموز تعبيرية غير موجودة من خلال عملية عدم التحقق من كود الرمز التعبيري.

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


هل واجه أي شخص آخر هذه المشكلة حيث تظهر ردود الفعل بشكل غير صحيح على الشاشات الصغيرة وعلى الهواتف المحمولة؟

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

لقد قمت بتحديث هذه الإضافة لتعمل مع أحدث كود في ديسكورد.

@th21 لقد قمت أيضًا بتحديث هيكل HTML الخاص بـ Retort لاستيعاب قوائم الردود الطويلة بشكل أفضل، خاصة على الأجهزة المحمولة.

8 إعجابات

شكرًا لك، إنه يعمل!

إعجابَين (2)

ردود الفعل على الهاتف المحمول معطلة لدي في أحدث التحديث

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

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

إعجابَين (2)

هل من الممكن استخدام مستكشف البيانات أو وحدة التحكم للعثور على قائمة الرموز التعبيرية الأكثر استخدامًا؟ :thinking: كنت أبحث في جدول plugin_store_rows ولكن لم أجد شيئًا مفيدًا.

3 إعجابات

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

هذه الإضافة end-of-life. يرجى استخدام إضافة التفاعلات (Reactions Plugin).

5 إعجابات

تعد ردود الفعل في Discourse بديلاً ضعيفًا لسبب رئيسي واحد: فهي تحد من ردود الفعل إلى رد فعل واحد لكل منشور. هذا يمثل انخفاضًا كبيرًا في فائدة ردود الفعل مقارنة بـ Retort الذي يسمح للأشخاص بإعطاء ردود فعل متعددة لنفس المنشور.

أتمنى حقًا أن يتم الاحتفاظ بـ Retort لهذا السبب. سيكون الحل الأفضل هو تحديث ردود الفعل في Discourse للسماح بردود فعل متعددة.

5 إعجابات

العجز الكبير الآخر هو أن Retort يسمح لك بالاختيار من بين جميع الرموز التعبيرية المتاحة بينما يتعين عليك تحديد مجموعة من الرموز التعبيرية لردود الفعل في Discourse. إذا كانت ردود الفعل في Discourse تحتوي على هاتين الميزتين، فسأكون سعيدًا بالتخلي عن Retort، ولكن حتى ذلك الحين، لن يكون مستخدموني سعداء إذا أخبرتهم أنهم يفقدون الوصول إلى 95٪ من ردود فعل الرموز التعبيرية.

إعجابَين (2)

هناك موضوع Feature يبدو واعدًا…

3 إعجابات

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

3 إعجابات