متابعة النقاش من كيف نقسم المنتدى إلى جزأين رئيسيين (عام/مجموعات) وكيف نعرض فقط الفئات الفرعية التي يمكنني إنشاء منشور جديد فيها؟:
مرحبًا بالجميع،
إليك مكون موضوع يقوم بشيء كنت أرغب في فعله منذ فترة طويلة، لكنني أود تعليقاتكم على الكود لتحسينه، أو اقتراحاتكم.
لا أعتقد أن الكود جيدًا جدًا، لذا لا أريد التوصية به قبل أن يتحقق منه شخص آخر.
ما الذي يفعله
إخفاء جميع المواضيع التي يواجه فيها المستخدم قيدًا في أذونات الفئة في الصفحات المختارة باستخدام CSS.
المستودع
رابط المستودع
framagit.org/oca/discourse-theme-shroud-subcategories
الدافع
لدي مجتمع يحتوي على العديد من المجموعات، وأريد أن يتجاهل الناس بسلام ما هو خارج مجموعاتهم. لا أريد تقييد الوصول إلى المحتوى، بل فقط لا أريد ظهوره في الصفحة الرئيسية. يجب أن يتمكنوا من الوصول إليه عن طريق الذهاب إليه عمدًا، باختيار الدخول إلى هذه الفئة تحديدًا (على سبيل المثال، لمعرفة ما يتم مناقشته هناك). بالطبع، الأداة المناسبة ستكون وظيفة المتابعة/التجاهل، لكن نظرًا لأن واجهة المستخدم تتطلب أكثر من نقرتين للإعداد، لا أحد في المجتمع يستخدمها. بعض التحسينات على صفحة الفئة قد تحقق الهدف، لكنها خارج نطاق مهاراتي.
لذلك، أستخدم ما هو بسيط بما يكفي في واجهة المستخدم: صفحة المجموعة. تُعرض في نفس الصفحة جميع المجموعات التي يمكنهم الوصول إليها، سواء بحرية أم لا، مع وصفها. هذا مثالي، فهم يحتاجون فقط إلى النقر واختيارها. صفحة المجموعة مخفية جدًا بالنسبة لهم (داخل قائمة الهامبرغر)، لذا يمكنني وضع رابط زر كبير في الصفحة الرئيسية.
الآن، أحتاج إلى ربط عضوية المجموعة بظهور منشورات الفئة.
كيف يعمل
الحيلة التي استخدمتها هي إعداد أذونات الفئة كالتالي:
- الجميع: قراءة، كتابة
- تلك المجموعة: بدء رسالة، قراءة، كتابة
ثم، لكل موضوع في القائمة، نتحقق مما إذا كان هناك قيد في الفئة، وإذا كان كذلك، نضيف فئة not-in-group إلى عنصر الموضوع.
بعد ذلك، تضيف CSS display:none وفقًا لذلك.
واجهة المستخدم
يمكن للمسؤول اختيار الصفحات التي يكون فيها هذا السلوك فعالاً. لا ينبغي تطبيقه على صفحة الفئة لأنه، بحكم التعريف، هذه هي الصفحة التي نريد فيها الوصول إلى المحتوى. في موقعي الإلكتروني، جميع هذه المجموعات هي فئات فرعية مخفية من صفحة latest، ونصل إليها عبر صفحة /c/groups/، لذا هذه هي الصفحة المستخدمة.
تحسينات مقترحة
- القدرة على تحديد الفئات الأصلية للفئات المفلترة (بحيث تكون أي فئة ليست فرعية لهذه الفئة آمنة من التجاوز).
- إضافة وسوم، بحيث إذا كان للموضوع هذا الوسم، فلن يتم إخفاؤه.
