إخفاء الفئات وفقًا لعضوية مجموعة المستخدمين

متابعة النقاش من كيف نقسم المنتدى إلى جزأين رئيسيين (عام/مجموعات) وكيف نعرض فقط الفئات الفرعية التي يمكنني إنشاء منشور جديد فيها؟:

مرحبًا بالجميع،

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

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

ما الذي يفعله

إخفاء جميع المواضيع التي يواجه فيها المستخدم قيدًا في أذونات الفئة في الصفحات المختارة باستخدام CSS.

المستودع

رابط المستودع
framagit.org/oca/discourse-theme-shroud-subcategories

الدافع

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

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

الآن، أحتاج إلى ربط عضوية المجموعة بظهور منشورات الفئة.

كيف يعمل

الحيلة التي استخدمتها هي إعداد أذونات الفئة كالتالي:

  • الجميع: قراءة، كتابة
  • تلك المجموعة: بدء رسالة، قراءة، كتابة

ثم، لكل موضوع في القائمة، نتحقق مما إذا كان هناك قيد في الفئة، وإذا كان كذلك، نضيف فئة not-in-group إلى عنصر الموضوع.

بعد ذلك، تضيف CSS display:none وفقًا لذلك.

واجهة المستخدم

يمكن للمسؤول اختيار الصفحات التي يكون فيها هذا السلوك فعالاً. لا ينبغي تطبيقه على صفحة الفئة لأنه، بحكم التعريف، هذه هي الصفحة التي نريد فيها الوصول إلى المحتوى. في موقعي الإلكتروني، جميع هذه المجموعات هي فئات فرعية مخفية من صفحة latest، ونصل إليها عبر صفحة /c/groups/، لذا هذه هي الصفحة المستخدمة.

تحسينات مقترحة

  • القدرة على تحديد الفئات الأصلية للفئات المفلترة (بحيث تكون أي فئة ليست فرعية لهذه الفئة آمنة من التجاوز).
  • إضافة وسوم، بحيث إذا كان للموضوع هذا الوسم، فلن يتم إخفاؤه.
10 إعجابات

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

4 إعجابات

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

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

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

أتمنى أن يكون الأمر أكثر وضوحاً.

إعجابَين (2)

تم تنفيذ هذه التحسينات.

4 إعجابات

أجد هذا مثيرًا للاهتمام للغاية. هل يمكنني رؤية مثال أو الانضمام إلى منتدى تم تثبيت هذا المكون فيه؟

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

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

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

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

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

إعجابَين (2)

شكرًا لك!

ماذا تعني هذه الجملة؟

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

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

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

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

إعجابَين (2)

سأقوم بمراجعة ذلك عن كثب. شكراً مرة أخرى!

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

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

إعجابَين (2)

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

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

نعم، تم تفعيل الوسوم.

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

معامل الإعداد لا يعرف أي الوسوم موجودة. تحتاج إلى كتابة اسم الوسم هنا، ثم النقر على create: 'faq'، وهكذا سيتم اختيار اسم الوسم. يمكنك اختيار أي عدد من الوسوم حسب الحاجة؛ فأي منها يكفي لإظهار المنشور المخفي.

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

إعجابَين (2)

شكرًا لك. أعتقد أنني نجحت في جعل هذا يعمل، وأنا متحمس جدًا لرؤية كيف ستمضي الأمور. تقديري لعملك.

إعجابَين (2)

هل يمكن استثناء الأشخاص الذين يتتبعون فئة معينة؟

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