نحن نبحث عن أي طريقة لتجاوز هذا القيد، مع بعض الخلفية التاريخية.
مجموعتنا متاحة بنسبة 99.9% فقط لأولئك الذين يحملون دور “الأعضاء”. لدينا بعض المجموعات المفتوحة للجميع للنقاش العام أو للحصول على المساعدة والدعم. كمجموعة أعضاء مدفوعة، سيكون من الرائع جدًا أن نتمكن من التعرف على النشاط داخل هذه المجموعات الخاصة، حيث أن غالبية منشوراتنا التي تتجاوز 1.3 مليون منشور تقع داخل هذه المجموعات.
السبب في ذلك هو أن أي شارات تشير إلى منشورات تقوم بتشغيل استعلاماتها على جدول badge_posts. يحتوي هذا الجدول فقط على المنشورات الموجودة في فئات يمكن لجميع المستخدمين الوصول إليها.
نعم، أستطيع أن أرى كيف يمكن أن يكون ذلك مشكلة. قد يكون الحل البديل هو إعادة كتابة استعلامات الشارات لموقعك لاستخدام جدول posts بدلاً من جدول badge_posts. قد يتسبب ذلك في مشكلة للمستخدمين الذين لا يملكون صلاحية الوصول إلى الفئات المحمية في موقعك إذا حاولوا عرض المنشورات المرتبطة بشارات مستخدميك، لكن يبدو أن هذا لن يؤثر على العديد من المستخدمين في موقعك. ربما توجد طرق أخرى للتعامل مع هذا الأمر.
سيكون تغيير استعلامات الشارات في موقعك لاستخدام جدول posts بدلاً من جدول badge_posts أمرًا مباشرًا نسبيًا. ومع ذلك، قد يتطلب الإصلاح الجذري للمشكلة تغييرًا أكبر. على سبيل المثال، لا ترغب في منح الشارات للمشاركات في فئة الموظفين، أو لأي فئة أخرى حيث يوجد قلق بشأن تسرب عنوان الموضوع.
أتساءل عما إذا كان يمكن إضافة عرض PostgreSQL جديد عبر ملحق للمواقع التي لديها إعداد مشابه لموقعك. يمكن بعد ذلك استبدال ذلك العرض في استعلامات الشارات بـ عرض badge_posts.
إذا كان هذا المسار خيارًا متاحًا، فهل يمكن أن يشمل هذا العرض منشورات من مجموعات عامة بالكامل؟ مثلما لدينا حاليًا بالإضافة إلى أي مجموعة كانت مرئية لمجموعة محددة؟ في حالتنا،
دعنا نرى ما يراه مهندسو Discourse في هذا النهج، أو إذا كان لديهم اقتراحات أخرى. هذه ليست المرة الأولى التي يتم فيها الإبلاغ عن هذه المشكلة. سيكون من الجيد التوصل إلى حل عام للمشكلة، لكن الحل الجيد الذي يعمل لمواقع كثيرة قد يكون أكثر تعقيدًا مما أقترح.
لقد كنت أراجع استعلامات الشارات الموجودة للحصول على فكرة حول الاستعلامات التي تستهدف المنشورات في جدول badge_posts، أو تستخدم طريقة أخرى لاستبعاد المنشورات من الفئات المحمية من أن تُستخدم.
الاستعلامات التالية للشارات تستهدف منشورات محددة ولن تُمنح للنشاط في الفئات الخاصة:
المحرر
أول علم
أول إعجاب
أول رابط
أول اقتباس
أول مشاركة
أول رمز تعبيري
أول ذكر
أول صندوق مضمن
أول رد عبر البريد الإلكتروني
قارئ
محرر ويكي
مشاركة رائعة
مشاركة جيدة
مكتب المساعدة
مشاركة لطيفة
ترحيب
رابط مشهور
رد رائع
موضوع رائع
رد جيد
موضوع جيد
رابط ساخن
رد لطيف
موضوع لطيف
رابط شعبي
الشارات التالية لا تستعلام عن منشورات محددة وستُمنح للنشاط في الفئات الخاصة:
مرخص
كاتب سيرة ذاتية
معتمد
مستخدم جديد للشهر
قراءة الإرشادات
مُعجب به
بطل
متحمس للحب
مخلص
متعاطف
محترف
ذكرى
مروج
يعيد العطاء
حب أعلى
محترم
ممتن
متحمس
خارج الحب
مروج
شكرًا لك
قائد
عادي
أساسي
عضو
طاقم
صورة الملف الشخصي
شيء مشابه لهذا مغطى بالفعل من خلال شارات Appreciated (إعجاب واحد على 20 منشورًا) و Respected (إعجابان على 100 منشور). يمكن إضافة بعض الاختلافات لهذه الاستعلامات. على سبيل المثال، 10 إعجابات على 20 منشورًا. قد تكون فكرة جيدة أيضًا إضافة شارة تُمنح للمواضيع التي تم الإعجاب بها بشدة - حيث ستعمل كمكافئ لشارة Great Topics. على سبيل المثال، يمكن منحها عندما ينشئ المستخدم 10 مواضيع تلقى كل منها 10 إعجابات.
لست متأكدًا مما إذا كان من المنطقي إضافة شارة تُمنح للنشاط على منشور أو موضوع واحد لا يحتوي على رابط للمنشور. على سبيل المثال، يمكن إنشاء شارة بديلة لأول إعجاب مع استعلام SQL التالي:
SELECT pa1.user_id, pa1.created_at granted_at
FROM (
SELECT pa.user_id, min(pa.id) id
FROM post_actions pa
JOIN posts p on p.id = pa.post_id
WHERE post_action_type_id = 2
GROUP BY pa.user_id
) x
JOIN post_actions pa1 on pa1.id = x.id
لكي يعمل الاستعلام، يجب استخدام محفز “تحديث يومي” بدلاً من استعلام “عندما يتصرف المستخدم على منشور”. في صفحة الشارات، سيُعرض المستخدمون الذين مُنحوا الشارة مع الوقت الذي مُنحت فيه الشارة. لن يكون هناك رابط للمنشور الذي مُنحت الشارة من أجله:
هل يبدو هذا النهج منطقيًا للمواقع التي تحتوي في الغالب على فئات محمية؟ إذا كان الأمر كذلك، فيمكن استخدامه لتكرار بعض الاستعلامات التي تستهدف حاليًا جدول badge_posts.
بدأنا منتدانا بمتطلب تسجيل الدخول، وأضفنا مؤخرًا بعض الأقسام العامة، مع تقييد الوصول إلى الأقسام الموجودة إلى مستوى الثقة 0.
لذلك، بالنسبة للمستخدمين الحاليين، لم يتغير شيء في طريقة وصولهم إلى المنتدى، لكن جميع الشارات المذكورة أعلاه تم إلغاؤها. منتدانا ليس كبيرًا، لكن من ردود المستخدمين التي تلقيناها، يتضح أن نظام الشارات يبدو وكأنه معطّل تمامًا. مع هذا الإعداد، أصبح علي عمليًا تعطيله.
أعتقد أنه يجب توضيح ذلك بشكل أكثر وضوحًا في مكان ما ضمن الإعدادات، بأن الشارات الحالية ستُلغى عند اختيار تقييد الأقسام. بالنسبة لنا، جاء هذا الأمر فجأة دون سابق إنذار.
بشكل عام، لا أفهم الأولويات. فكل من صلاحيات الأقسام ونظام الشارات يُوصفان كميزات مركزية في Discourse. لكن يصعب استخدامهما معًا كما هو الحال الآن. يبدو أن ميزة وجود شارات فقط على المنشورات المتاحة للجميع هي أن المستخدمين الآخرين يمكنهم رؤية المنشور الذي مُنحت له الشارة؟ بالنسبة لي، لا يبدو أن هذه ميزة مهمة جدًا بالمقارنة. لماذا لا يتم بدلاً من ذلك إزالة هذه الروابط الظاهرة وإظهار المنشورات ذات الصلة لكل مستخدم فقط في شاراته الخاصة؟
يبدو أن هذا يتعلق بما ظهر في موضوع آخر حول تسهيل توجيه أعضاء المجتمع بين المساحات المفتوحة (العامة) والمغلقة (درجات متفاوتة من “الخاصة”)، بما في ذلك الرسائل الشخصية.
التعامل مع الطبيعة شبه العامة للويب والجماهير المتداخلة جزئيًا هو تحدٍ كبير في عالم التواصل الاجتماعي عبر الإنترنت. إنه ليس بديهيًا. ستكافح معظم المجتمعات حول كيفية التأكد من فهم الناس لمدى عمومية/خصوصية الأجزاء المختلفة منه. قد يكون من المنطقي أن يفترض Discourse أن هذا المزيج من العام والخاص (أو الخاصات) سيكون هو الافتراضي لمعظم المجتمعات ويرى كيف يمكنه تسهيل التنقل فيه لأعضاء المجتمع؟
أنا جديد في هذه المحادثة، على الرغم من أنني أعتقد أن مفتاح تبديل (toggle) تحت إعدادات الشارات (Badge Settings) سيكون الأسهل. اتركه مغلقاً بشكل افتراضي، وقم بتحديده لتفعيل الاستعلام عن جميع اللوحات (بما في ذلك الخاصة) لشارات التفاعل.
إذا تُرك مفتوحاً لخطاف (hook) يمكن لمكون إضافي/مكوّن استخدامه، يمكن للبعض أن يأتي لاحقاً لإعطاء إذن لكل فئة (per-category permission) لحساب الشارات هناك.
أعتقد أن المشكلة في الشارات التي تُمنح حاليًا للفئات العامة فقط هي أنها تشير إلى المنشور الذي مُنحت الشارة بسببه، ولن ترغب في أن يكون هذا المنشور عامًا إذا كان الموضوع خاصًا.