إخفاء الفئات الفرعية دون إخفاء مواضيعها في قائمة المواضيع؟

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

ما يمكنك فعله هو التراجع خطوة وتعديل البيانات التي يتم تمريرها إلى القالب بدلاً من ذلك.

topic-list-item هو مكون Ember، لذا يمكنك استخدام api.modifyClass لإجراء التغييرات التي تريدها.

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

<script type="text/discourse-plugin" version="0.8">
  const { on } = require("discourse-common/utils/decorators");

  // معرفات الفئات الرئيسية
  const targetCategoryIds = [9, 15, 50];

  const useParentCategory = function () {
    const parentCategory = this.attrs.topic.category.parentCategory;
    const switchToParent = parentCategory && targetCategoryIds.includes(parentCategory.id)

    if (switchToParent) {
      this.attrs.topic.set("category", parentCategory);
    }
  };

  api.modifyClass("component:topic-list-item", {
    @on("didReceiveAttrs")
    setCategory() {
      useParentCategory.call(this);
    }
  });

  api.modifyClass("component:latest-topic-list-item", {
    @on("didReceiveAttrs")
    setCategory() {
      useParentCategory.call(this);
    }
  });
</script>