عرض جميع الفئات في الصفحة الرئيسية (بما في ذلك الفئات المكتومة)، ولكن لا تعرض مواضيعها في آخر المشاركات

إذًا، تعرض صفحتنا الرئيسية عمودين: التصنيفات على اليسار وأحدث المواضيع على اليمين.

تُحدَّث المواضيع في أحد التصنيفات تلقائيًا، لذا أود إخفاؤها من العمود الأيمن (الأحدث).

ومع ذلك، لا أريد كتم ذلك التصنيف لجميع المستخدمين؛ فمن السيئ جدًا أن يكون مخفيًا ضمن “المكتم” (أي الملخص) في الصفحة الرئيسية.

هل توجد أي طرق للتغلب على هذه المشكلة؟

آخر تحديث قبل حوالي عامين. أنا قلق بشأن مشاكل التوافق المحتملة.

الحالة المثالية هي تحقيق هدفي باستخدام الوسائل القياسية.

ماذا عن إنشاء فئة فرعية، وتحديد الفئة الرئيسية بحيث لا تتضمن المواضيع من الفئة الفرعية في فلتر القائمة الافتراضي؟

هل سيؤثر ذلك على قائمة “الأحدث” المعروضة في صفحة الرئيسية “الفئة + أحدث”؟

مشكلة أخرى هي: إذا قام شخص ما بكتم فئة معينة، فلن يؤثر ذلك على ما يُعرض للمستخدمين المجهولين، أليس كذلك؟

في حالتي، أريد تحقيق الاتساق. أحتاج إلى فئة متكاملة تتصرف مثل الفئات العادية، باستثناء أن مواضيعها الجديدة وتحديثاتها لن تُعرض في قسم “الأحدث” في الصفحة الرئيسية.

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

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

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

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

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

أم ربما وسم معطل بدلاً من ذلك؟

تعرض هذه العرض افتراضيًا 20 موضوعًا. لذا، ما لم يتم رفع عدد كبير من المواضيع في تلك الفئة المحددة — سواء كانت مواضيع جديدة أو ردودًا — فأعتقد أنه من المقبول ببساطة إخفاء تلك المواضيع.

لديك خياران.

  1. باستخدام JavaScript في تبويب رأس القالب الخاص بك
<script type="text/discourse-plugin" version="0.8">
  const { on } = require("discourse-common/utils/decorators");
  const ignoreCategoryId = 6;

  api.modifyClass("component:categories-topic-list", {
    @on("didReceiveAttrs")
    removeCategoryTopics() {
      const filtered = this.topics.filter(
        ({ category_id }) => category_id !== ignoreCategoryId
      );

      this.topics = filtered;
    },
  });
</script>

هذا يمنع عرض تنسيق المواضيع من الظهور من الأساس. غيّر ignoreCategoryId إلى معرف الفئة التي تريد استهدافها. يمكنك العثور على ذلك بزيارة الفئة وفحص الرابط في متصفحك.

https://meta.discourse.org/c/support/6 <---- الرقم الأخير هو معرف الفئة
  1. باستخدام CSS… إذا كانت فئة من المستوى العلوي
.latest-topic-list-item.category-SLUG {
  display: none;
}

إذا كانت فئة فرعية

.latest-topic-list-item.category-PARENT_SLUG-CATEGORY_SLUG {
  display: none;
}

أي شيء يتجاوز ذلك سيتطلب إضافة ملحق أو تغييرًا في النواة حسب علمي.