Alle Themen 'über die x Kategorie' ausblenden

Mir ist bewusst, dass diese für Administratoren standardmäßig immer sichtbar sind. Aber sagen wir, ich möchte sie auf meiner persönlichen Website, die ich auf Discourse baue, nicht sehen, auch nicht als Administrator.

Wie könnte ich all diese Themen in allen Kategorien ausblenden?

Sie können sie aus der Liste entfernen, aber als Administrator sehen Sie sie trotzdem. :thinking: Sie könnten die Themen aber stumm schalten.

Ist das vielleicht mit CSS möglich?

Ich bin mir nicht sicher, ob sie eine spezielle Klasse haben?

Ich denke, ich würde den Ansatz „alle markieren und den Tag stummschalten“ ausprobieren, da dies der geringste Aufwand zu sein scheint. (Aber sie für alle anderen aus der Liste entfernen)

Aus reiner Neugier, warum möchtest du sie vor dir selbst verstecken?

1 „Gefällt mir“

Aus reiner Neugier, warum möchtest du sie vor dir selbst verstecken?

Ehrlich? Ich mag es einfach nicht, sie zu sehen. Wenn ich zu meinem Blog gehe… möchte ich auch nur meinen Blog sehen :slight_smile:

Ich habe eine Lösung gefunden. Das ist offensichtlich keine skalierbare Lösung und vielleicht nicht einmal technisch optimal (ich bin mir nicht sicher, wie das auf größeren Websites mit vielen Seitenaufrufen usw. gehandhabt würde), aber es ist eine, die für mich funktioniert, da ich nur eine Kategorie für meinen Blog habe:

ChatGPT hat mir das gegeben und es hat beim ersten Versuch funktioniert. Es zielt nur auf diese sehr spezifische Themen-ID ab und versteckt sie:

<script>
  document.addEventListener("DOMContentLoaded", function() {
    var element = document.querySelector('[data-topic-id="10"]'); // Ersetze 10 durch deine Themen-ID
    if (element) {
      element.style.display = 'none';
    }
  });
</script>

Voila!

1 „Gefällt mir“

Wenn Sie neugierig auf die Unternehmensperspektive sind (weil ich weiß, dass ich vor vielen Monden darüber gepostet habe/Sie darauf geantwortet haben), ist es einfach eine inkonsistente administrative Erfahrung, ein Discourse-Thema als Kategorieeinstellung zu verwenden, während keine anderen Kategorieeinstellungen als Discourse-Thema dargestellt werden. Es ist sehr unzusammenhängend (wenn auch immer noch sehr clever!). Ich sehe auch, dass diese “Über uns”-Themen umbenannt und als “Erste Schritte”-Anleitungen verwendet werden (das mache ich selbst, wenn auch nur, weil ich gezwungen bin, es beizubehalten).

Ich verstehe, warum und den anfänglichen Wert der Verwendung eines Themas als bestehenden Ort, um die Themenbeschreibung unterzubringen. Ich sehe auch das Potenzial in derselben Fähigkeit, wie der Text der discourse-category-sidebars Theme-Komponente, der von einem Thema untergebracht wird.

Aber aus der Sicht von UX und Administration würde ich erwarten, dass alle meine Kategorieeinstellungen einfach an einem Ort sind. Discourse speichert bereits Text als Einstellung innerhalb der Kategorie, mit Markdown und allem, für die Kategorievorlage. Es wäre großartig, wenn hier Konsistenz in die Kategorie gebracht würde.

Ich hoffe, das gibt etwas mehr Einblick!


EDIT: Wenn ich irgendwo einen Wert übersehe, den ich noch nicht gesehen habe, weisen Sie mich darauf hin! :rocket:

Außerdem, EDIT:
Schade. Es sieht so aus, als ob das Skript, auf das ich oben verlinkt habe, nur beim ersten Laden der Webseite im Browser funktioniert. Wenn Sie sich auf der Website bewegen und zurückkehren, erscheinen diese Elemente wieder. Mit meinem begrenzten (lesen: absolut null) Webentwicklungs-Wissen gehe ich davon aus, dass es daran liegt, dass DOMContentLoaded nicht erneut ausgeführt wird, nachdem die Website geladen wurde.
Die Suche geht weiter…

Ich denke, wenn Sie nur ein Thema ausblenden möchten, können Sie das wahrscheinlich mit CSS tun. Mein CSS ist schlecht, aber ich sehe die data-topic-id dort, also kann sie wahrscheinlich gezielt angesprochen werden?

Ah, da gibt es einen Haken! Wenn Sie es umfunktionieren, erscheint es in einigen Themenlisten nicht oder löst keine Benachrichtigungen aus, wenn Leute antworten usw. Ich denke, das Beste, was man damit machen kann, ist, sie einfach als Kategoriebeschreibungen zu belassen und sie zu schließen (und sie aus der Liste zu entfernen, wenn Sie sie für die meisten Leute nicht sichtbar haben möchten). Abgesehen von Entwickler-Tweaks, offensichtlich, wenn Sie es sich leisten können. :slight_smile:

Das Speichern der Kategoriebeschreibung in Themen ist, ebenso wie die Art und Weise, wie wir AGB und Richtlinien usw. handhaben, intern diskutiert worden. Es gibt zwar keine unmittelbaren Pläne, das Format zu ändern, aber ich denke, es gibt definitiv eine Diskussion darüber, die geführt werden muss.

Es gibt ein Feature Thema über die Änderung der Standardeinstellung

2 „Gefällt mir“

Dies ist ein Update, das perfekt für meinen Anwendungsfall funktioniert.

Wenn Sie ein bestimmtes Thema über CSS ausblenden möchten, beim Laden der Seite und danach, wird dies funktionieren. Fügen Sie einfach Ihre Themen-IDs zur Liste der Themen-IDs hinzu:

<script>
  document.addEventListener("DOMContentLoaded", function() {
    var topicIdsToHide = ["10", "20", "30"]; // Fügen Sie hier Ihre Themen-IDs hinzu

    function hideElementsByDataTopicIds() {
      topicIdsToHide.forEach(function(id) {
        var element = document.querySelector('[data-topic-id="' + id + '"]');
        if (element) {
          element.style.display = 'none';
        }
      });
    }

    // Führen Sie die Funktion initial aus
    hideElementsByDataTopicIds();

    // Erstellen Sie einen Mutationsbeobachter, um DOM-Änderungen zu überwachen
    var observer = new MutationObserver(function(mutations) {
      mutations.forEach(function(mutation) {
        hideElementsByDataTopicIds();
      });
    });

    // Beobachten Sie das gesamte Dokument
    observer.observe(document.body, { childList: true, subtree: true });
  });
</script>