Alle Kategorien auf der Startseite anzeigen (auch stummgeschaltete), aber deren Themen nicht in den neuesten Beiträgen anzeigen

Unsere Startseite zeigt also zwei Spalten an: Links die Kategorien und rechts die neuesten Themen.

Themen in einer Kategorie werden automatisch aktualisiert, daher möchte ich sie in der rechten Spalte (Neuestes) ausblenden.

Ich möchte diese Kategorie jedoch nicht für alle Benutzer stummschalten – es sieht wirklich schlecht aus, wenn sie in der Startseite unter „Stummgeschaltet" bzw. Spoiler versteckt ist.

Gibt es eine Möglichkeit, dieses Problem zu umgehen?

1 „Gefällt mir“

Zuletzt vor ca. 2 Jahren aktualisiert. Ich mache mir Sorgen über mögliche Kompatibilitätsprobleme.

Der ideale Fall wäre, mein Ziel mit Standardmitteln zu erreichen.

Wie wäre es, eine Unterkategorie zu erstellen und die übergeordnete Kategorie so einzustellen, dass sie Themen aus der Unterkategorie nicht in der Standardlistenfilterung berücksichtigt?

Beeinflusst das die Liste „Neueste", die auf der Startseite Kategorie + Neueste angezeigt wird?

Ein weiteres Problem ist: Wenn jemand eine Kategorie stummschaltet, hat das keine Auswirkungen darauf, was anonymen Benutzern angezeigt wird, oder?

In meinem Fall möchte ich Konsistenz erreichen. Ich benötige eine vollwertige Kategorie, die sich wie eine normale verhält, mit der Ausnahme, dass ihre neuen Themen und Updates nicht auf der Startseite unter „Neueste" angezeigt werden.

Um ehrlich zu sein, bin ich mir ohne eine Spiegelung deiner Einrichtung nicht sicher. :slightly_smiling_face: Du kannst jedoch auch als Option festlegen, dass Unterthemen standardmäßig stummgeschaltet werden (oder die Sichtbarkeit in den Sicherheitseinstellungen ändern). Möglicherweise musst du einige Kombinationen ausprobieren und schauen, ob du damit nahe an das gewünschte Ergebnis kommst.

Wenn ein Benutzer etwas stummschaltet (ein Thema, eine Kategorie, ein Tag oder einen anderen Benutzer), gilt dies nur für ihn selbst und hat keine Auswirkung auf andere.

Um eine globale Stummschaltung zu erreichen, müsstest du die Standard-Stummschaltungsoptionen in den Admin-Einstellungen verwenden. Selbst dann könnte ein Benutzer diese jedoch überschreiben.

Ja, genau. Deshalb bin ich hier – ich konnte das Problem nicht lösen, obwohl ich einige der mir eingefallenen Varianten ausprobiert habe.

Eine reguläre übergeordnete Kategorie und eine standardmäßig stummgeschaltete Unterkategorie scheint dir das Ziel schon ziemlich nahe zu bringen?

Oder vielleicht doch eher ein stummgeschalteter Tag?

Diese Ansicht zeigt standardmäßig 20 Themen an. Solange also in dieser spezifischen Kategorie nicht viele Themen nach oben gesetzt werden – sei es neue Themen oder Antworten – finde ich es in Ordnung, diese Themen einfach auszublenden.

Du hast zwei Möglichkeiten.

  1. Mit JavaScript im Reiter „Header“ deines Themes
<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>

Dadurch wird verhindert, dass die Markups für die Themen überhaupt gerendert werden. Ändere ignoreCategoryId in die ID der Kategorie, die du ausblenden möchtest. Diese findest du, indem du die Kategorie aufrufst und die URL in deinem Browser prüfst.

https://meta.discourse.org/c/support/6 <---- die letzte Ziffer ist die Kategorie-ID
  1. Mit CSS … falls es sich um eine Hauptkategorie handelt
.latest-topic-list-item.category-SLUG {
  display: none;
}

Falls es sich um eine Unterkategorie handelt:

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

Alles darüber hinaus erfordert meiner Kenntnis nach ein Plugin oder eine Änderung im Kernsystem.

2 „Gefällt mir“