Verstecke Themen von ignorierten Nutzern

:information_source: Zusammenfassung Diese Komponente ermöglicht es Ihnen, Themen von Benutzern auszublenden, die Sie ignoriert haben
:hammer_and_wrench: Repository GitHub - Lhcfl/discourse-hide-ignored-user-topics
:question: Installationsanleitung So installieren Sie ein Thema oder eine Themenkomponente
:open_book: Neu bei Discourse-Themen? Anfängerleitfaden zur Verwendung von Discourse-Themen

Installieren Sie diese Themenkomponente

Lassen Sie sich von diesem Beitrag inspirieren:

Diese Komponente ermöglicht es Ihnen, Themen von Benutzern auszublenden, die Sie ignoriert haben.

Sie tut genau das, was der Name sagt, und ihr Hauptprinzip ist sehr einfach, daher werde ich den Hauptcode unten einfügen:

import { apiInitializer } from "discourse/lib/api";
export default apiInitializer("1.8.0", (api) => {
  const user = api.getCurrentUser();
  if (user == null) return;
  api.registerValueTransformer(
    "topic-list-item-class",
    ({ value, context }) => {
      if (user.ignored_users.includes(context.topic.creator.username)) {
        value.push("hidden");
      }
      return value;
    }
  );
});
12 „Gefällt mir“

@Lhc_fl ,

Im Grunde, wenn die Funktion dieser Theme-Komponente erweitert werden könnte, um einen zusätzlichen Ausblendungs-Schalter hinzuzufügen.

Standardmäßig werden die Beiträge des Benutzers ausgeblendet.

Könnte eine Option zu dieser Komponente hinzugefügt werden, um Antworten auf einen ignorierten Benutzer auszublenden. Da sich einige überempfindliche Leute beschweren, dass sie immer noch sehen können, wie andere auf den ignorierten Benutzer antworten.

1 „Gefällt mir“

Es ist nicht schwierig, aber ich weiß nicht, ob es notwendig ist…
Ein ignorierter Benutzer hat gepostet. Sie wollen es nicht sehen. Dann hat jemand auf diesen Benutzer geantwortet. Sie wollen es auch nicht sehen. Dann hat jemand anderes auf diese Antwort geantwortet, und dann noch eine Antwort auf die Antwort auf die Antwort… Sollte das nicht gesehen werden?

  • Es führt zum Zusammenbruch von Diskussionen. Gut, du mute jemanden, also siehst du die Beiträge dieser Person “nie”. Aber dann zitiert ein anderer Benutzer, den du magst, den gemuteten Benutzer in seinem Beitrag, oder bezieht sich auf seinen @Namen, oder antwortet auf seinen Beitrag. Unterdrückst du dann nur den zitierten Abschnitt? Unterdrückst du den @Namen? Unterdrückst du auch alle Antworten auf seine Beiträge? Das hinterlässt große Lücken in der Konversation und stellt viele haarige technische Herausforderungen dar. Bei genügend persönlichen Mutes, Blocks und Ignorierungen wird jede Konversation zu einem seltsamen Flickenteppich von teilweise sichtbaren Aussagen.
3 „Gefällt mir“

@Lhc_fl
Das ist notwendig…
Wenn A B ignorieren möchte, bedeutet das, dass alle Themen/Beiträge idealerweise ignoriert werden.

  1. Themen von B werden komplett ignoriert, das ist gut/erledigt.

  2. In den Themen anderer hat B geantwortet.
    2.1 B’s Beiträge sollten ausgeblendet werden, erledigt.
    2.2 B’s Avatar sollte von der Beitragslisten-Seite (die Teilnehmer) entfernt werden, das scheint nicht schwer zu machen zu sein?
    2.3 Wenn B’s Beitrag zitiert wird, bin ich mir nicht sicher, ob dieser Teil einfach zu entfernen/auszublenden ist?

Vielen Dank für diese großartigen Bemühungen, das ist wirklich nützlich. Ich hoffe, Sie könnten 2.2 und 2.3 in Betracht ziehen, wenn dies möglich ist…

2 „Gefällt mir“

Nun, wie ich sagte oder in einem meiner Beiträge hatte. In gewisser Weise scheint es übertrieben. Als Mitglied sollte man Antworten überspringen können. Leider scheinen manche Leute diese Fähigkeit nicht zu besitzen.

Persönlich denke ich, vielleicht nur direkte Antworten. Für diese überempfindlichen Benutzer könnte der Ursprung bis zum Endpunkt jedoch von Wert sein.

Sogar als ergänzende separate Komponente. Nur etwas, das nicht nur für den überempfindlichen Benutzer von Wert sein kann. Aber auch für das Moderationsteam(s) ein potenzielles Kopfzerbrechen weniger. Könnte vielleicht ein Benutzerfeld verwendet werden, um dem Benutzer das Ein-/Ausschalten zu ermöglichen?

Dan

In meinem speziellen Fall verlor die Community ein wertvolles Mitglied, weil er Antworten, die seiner Meinung nach Leute gaslighteten, nicht übergehen konnte. So verlangte er in seiner Verärgerung, dass ich den Benutzer, mit dem er ein Problem hatte, sperre.

Um es klarzustellen, dieser Benutzer (der überempfindliche) war in 2 oder 3 Jahren als Mitglied nie ein Problem und ein starker Mitwirkender.

Dieses Konzept könnte auch für Foren von Vorteil sein, die sich der Hilfe für Menschen mit psychischen Problemen widmen.

Es gibt viele Herausforderungen dabei, und die Dinge können auseinanderfallen, wenn unterschiedliche Meinungen darüber bestehen, was die primären oder sekundären Probleme sind.

Menschen als überempfindlich oder als psychisch krank einzustufen, kann als Beleidigung für sie angesehen werden. Es kann tragisch sein, wie schnell ein Gespräch in einen Streit übergeht und dann jemand als Troll oder Problemträger identifiziert wird.

Es kann von großem Wert sein, einen Raum zu haben, in dem Menschen frei argumentieren können, ohne Angst vor Zensur oder Bearbeitung haben zu müssen, aber das erfordert möglicherweise eine bestimmte Art von Forum oder Ort, um anderen keine unnötigen Probleme zu bereiten.

2 „Gefällt mir“

Ich hoffe, es ist kein alltäglicher Bedarf, aber ich habe persönlich das Bedürfnis verspürt und die Werkzeuge nicht gehabt, um nicht an die Existenz und die Meinungen einer Person erinnert zu werden, die mich sehr beunruhigt hat. Man könnte sagen, ich wurde getriggert, man könnte sagen, ich wurde getrollt oder wurde provoziert. Aber ich hatte eine sehr reale und unerwünschte physiologische Reaktion, und wenn ich weiterhin ein aktives Mitglied des Forums sein wollte, wäre es mir lieber gewesen, nichts von dieser Person zu wissen. Zumindest für eine Weile.

Manchmal sind wir ausschließlich in der Gesellschaft robuster Menschen, manchmal sind wir in einer Subkultur, die alle Formen des persönlichen Ausdrucks hoch schätzt, aber manchmal sind wir verletzliche Individuen, die immer noch teilnehmen müssen oder ein Gefühl der Zugehörigkeit brauchen.

Bearbeiten: Das ist mir auch im wirklichen Leben passiert, bei der Arbeit, eine Person, mit der ich immer im Streit lag, mein Herzschlag würde steigen und ich würde eine Kampf-oder-Flucht-Reaktion erleben, wenn er auch nur den Raum betrat. Er war nicht einmal aggressiv oder anstößig – es war meine Reaktion, die mich beeinträchtigte.

7 „Gefällt mir“

Ich finde, dass das Blockieren (zumindest nicht die Möglichkeit, direkte Antworten von dem blockierten Benutzer zu lesen/ständige Vorschläge dazu zu erhalten) ein guter Schritt ist.

Ehrlich gesagt, in gewisser Weise sollte man alle Inhalte von einem blockierten Benutzer blockieren können. Ich sehe nicht, wie das in manchen Fällen nicht gerechtfertigt ist (übermäßiges Trolling und dergleichen).

3 „Gefällt mir“

Verbirgt diese die Benachrichtigung über neue Themen von ignorierten Benutzern? Aus dem Code schließe ich, dass die Antwort nein ist?

1 „Gefällt mir“

Dies gilt nur für neue Themen, nicht für Beiträge.

2 „Gefällt mir“

Ja, die Standardeinstellung blendet Beiträge und Antworten aus. Dies fügt neue Themen hinzu.

1 „Gefällt mir“

Danke für das Plugin.
Leider scheint es Themen in der Kategorieansicht nicht zu verbergen, wenn es so konfiguriert ist, dass die neuesten Themen in jeder Kategorie angezeigt werden.
Könnte dies behoben werden?

2 „Gefällt mir“

Diese Komponente muss für Tests-bestanden aktualisiert werden

3 „Gefällt mir“

Das funktioniert, aber nur auf der Themenseite. Irgendeine Idee, wie man sie in der ‘Themenliste’ auf der Startseite ausblenden kann?

<script type="text/discourse-plugin" version="1.6.0">

const { alias } = require("@ember/object/computed");

api.modifyClass("component:topic-list-columns", {
    pluginId: "remove-ignored-users-topic",
    attributeBindings: ["data-topic-id", "role", "ariaLevel:aria-level", "data-creator-name"],
    "data-creator-name": alias("topic.creator.username"),
});

if (api.registerValueTransformer()) {
const s = document.createElement("style");

for (const u of api.registerValueTransformer()?.ignored_users) {
    s.innerHTML += `tr.topic-list-columns[data-creator-name="${u}"] { display: none; }`;
}

document.body.appendChild(s);
}

</script>
1 „Gefällt mir“

Aktualisiert, jetzt ist es mit der neuen Discourse-Themenliste kompatibel

4 „Gefällt mir“

Vielen Dank @Lhc_fl für das Update, ich kann bestätigen, dass es wie beschrieben funktioniert.

Nebenbei bemerkt, sollte diese Funktionalität wirklich Teil von Discourse Core sein, zumindest als Option oder vielleicht sogar als Standardverhalten, wenn ein Benutzer ignoriert wird. Es ist einfach das, was ein Benutzer von einer „Ignorieren“-Funktion vernünftigerweise erwarten würde.

2 „Gefällt mir“

Es scheint, dass es einen kleinen Fehler oder eine Einschränkung gibt. Ich bin mir nicht sicher, ob er neu ist, seit diese Komponente nach Glimmer portiert wurde, da ich zuvor eine andere Komponente für diese Funktionalität verwendet habe.

Das Problem ist, dass, wenn ein ignorierter Benutzer in einem beobachteten/verfolgten Thema postet, immer noch (1) für neue Beiträge neben dessen Titel in der Themenliste angezeigt wird. Und da der Beitrag für den Benutzer verborgen ist, wird selbst nach dem Klicken auf das Thema und dem Scrollen bis zum Ende immer noch die Benachrichtigung über neue Beiträge in der Themenliste angezeigt. Ich nehme an, es liegt daran, dass der neue Beitrag unsichtbar ist und daher nicht als gelesen markiert wird.

Nur zur Info: Dies hat mir eine Admin-Warnung im Frontend angezeigt.

Hallo Jagster, bist du sicher, dass es nicht diese ähnliche Komponente ist?

Absolut sicher.