Hallo @BeBe, welche Umgehungslösung hast du gefunden?
Ich habe einen Benutzer, für den es in Ordnung ist, seine Beiträge in den Themen anderer zu sehen, aber ich möchte seine erstellten Themen ausblenden.
Seine Themen drehen sich immer um dieselben (langweiligen) Themen. ![]()
Es gibt eine CSS-Möglichkeit, Benutzerbeiträge in Themen auszublenden:
Aber leider enthalten Themenlisten keine Benutzer-ID des Erstellers, daher gibt es keine Möglichkeit, vom Benutzer erstellte Themen auszublenden.
Nehmen wir den Benutzernamen abc mit der ID 123.
Ich habe mir den Quellcode angesehen, um zu sehen, ob es eine Möglichkeit gibt, dies mit Benutzer-CSS zu tun.
Das Thema-Tag sieht derzeit so aus:
<tr data-topic-id="123" id="ember123" class="topic-list-item … ember-view">
Darin könnte ich sicher die Poster-Zelle abfragen, aber es würde JavaScript erfordern, da ich das übergeordnete Element ausblenden möchte:
tr > td.posters > a:first-child[data-user-card='abc']
Wenn wir nun das zusätzliche Attribut data-op-user-id="123" direkt im Thema tr hätten:
<tr data-topic-id="123" id="ember123" data-op-user-id="123" class="topic-list-item … ember-view">
Könnten wir einfaches Benutzer-CSS verwenden, um eine großartige Filterung nach Benutzer-ID durchzuführen, von der wir lieber nicht möchten, dass ihre Themen angezeigt werden:
tr.topic-list-item[data-op-user-id='123']
Wäre es möglich, ein solches neues data-op-user-id-Attribut für die Themen-Eintrags-tr.topic-list-item-Tags zu haben?
Funktioniert nur im Desktop-Modus, siehe unten.
Für alle, die es interessiert, ich habe ein kleines Userscript für community.metabrainz.org geschrieben.
Ich habe es zuerst mit MutationObserver versucht, wie empfohlen, aber es wurde übermäßig komplex, also benutze ich nur ein einfaches setInterval.
Ich habe es nicht dynamisch und mit Benutzereinstellungen usw. gemacht.
Jedes Update löscht deine Blacklist und dein @include (siehe später).
Da ich hoffe, dass ein neues data-op-user-id-Attribut in echtem Discourse zu Themen hinzugefügt wird, werde ich dieses Userscript nicht mehr benötigen.
Du kannst es an jedes andere Discourse-Forum anpassen, indem du sein @include auf deine URL änderst (die einzige spezifische Zeile).
Funktioniert nicht in der mobilen Ansicht, da (leider) von Design her Discourse den OP-Avatar in der mobilen Ansicht nicht anzeigt.
Daher wäre es spam-mäßig immer noch sehr praktisch, das vorgeschlagene tr.topic-list-item[data-op-user-id='123'].
Jetzt setzen Updates meine Blacklist nicht mehr zurück. Ich habe einen grundlegenden Blacklist-Editor hinzugefügt und die Liste wird lokal gespeichert.
Aber ich würde mir wirklich sehr wünschen, dass Discourse eine OP-Benutzer-ID in jeder Themen-<tr>-Zeile (<TR data-op-user-id="123">) einfügt, damit eine super einfache Benutzer-Stylesheet ausreicht, um ignorierte Benutzerthemen auszublenden:
tr.topic-list-item[data-op-user-id='123'] { display: none; }
Oder ich würde mir noch mehr wünschen, dass Discourse ignorierte Benutzerthemen einfach selbst ausblendet.
Ich verstehe den Zweck von ignorierten Benutzern nicht, wenn ihre Themen meine Browsing-Erfahrung verschmutzen.