Kategorien basierend auf Benutzergruppenmitgliedschaft ausblenden

Fortsetzung der Diskussion aus Wie man das Forum in zwei Hauptteile (Allgemein/Gruppen) aufteilt und nur Unterkategorien anzeigt, in denen man neue Beiträge erstellen kann:

Hallo zusammen,

Hier ist eine Theme-Komponente, die etwas umsetzt, das ich schon lange machen wollte. Ich würde mich jedoch über eure Kommentare zum Code freuen, um ihn zu verbessern, oder über eure Vorschläge.

Ich bin nicht überzeugt, dass der Code wirklich gut ist, daher möchte ich ihn nicht empfehlen, bevor er von jemand anderem geprüft wurde.

Was es tut

Versteckt mit CSS alle Themen, für die der Benutzer in den ausgewählten Seiten eine Kategorieneinschränkung hat.

Repository

Link zum Repository
framagit.org/oca/discourse-theme-shroud-subcategories

Motivation

Ich habe eine Community mit vielen Gruppen und möchte, dass die Leute den Inhalt anderer Gruppen friedlich ignorieren. Ich möchte keinen Zugriff auf den Inhalt einschränken, ich möchte nur, dass er nicht auf der Hauptseite angezeigt wird. Sie sollten in der Lage sein, darauf zuzugreifen, indem sie gezielt diese Kategorie aufrufen (zum Beispiel, um zu wissen, was dort diskutiert wird). Offensichtlich wäre das passende Werkzeug die Funktion „Beobachten/Ignorieren“, aber da die Benutzeroberfläche mehr als zwei Klicks erfordert, um sie einzurichten, nutzt sie niemand in der Community. Einige Verbesserungen auf der Kategorienseite könnten helfen, liegen aber außerhalb meiner Fähigkeiten.

Deshalb nutze ich die Benutzeroberfläche, die für sie einfach genug ist: die Gruppenübersicht. Auf derselben Seite werden alle Gruppen angezeigt, auf die sie zugreifen können – frei oder nicht – sowie deren Beschreibung. Das ist perfekt; sie müssen sie nur anklicken und auswählen. Die Gruppenübersicht ist für sie zu gut versteckt (im Hamburger-Menü), daher könnte ich einen großen Button-Link auf der Hauptseite platzieren.

Jetzt muss ich die Gruppenmitgliedschaft mit der Anzeige der Kategoriennachrichten verknüpfen.

Funktionsweise

Der Trick, den ich angewendet habe, bestand darin, die Kategorieneinstellungen wie folgt zu konfigurieren:

  • Alle: Lesen, Schreiben
  • Diese Gruppe: Nachricht starten, Lesen, Schreiben

Dann wird für jedes Thema in der Liste geprüft, ob eine Kategorieneinschränkung besteht. Falls ja, wird dem Themen-Element die Klasse not-in-group hinzugefügt.

Anschließend fügt das CSS entsprechend display:none hinzu.

Benutzeroberfläche

Der Administrator kann die Seiten auswählen, auf denen dieses Verhalten wirksam ist. Dies sollte nicht auf der Kategorienseite erfolgen, da dies definitionsgemäß der Ort ist, an dem wir auf den Inhalt zugreifen wollen. Auf meiner Website sind all diese Gruppen Unterkategorien, die auf der Seite latest ausgeblendet sind; wir greifen über die Seite /c/groups/ darauf zu, daher wird diese Seite verwendet.

Verbesserungen

  • Möglichkeit, übergeordnete Kategorien der gefilterten Kategorien auszuwählen (so dass jede Kategorie, die kein Kind dieser Kategorie ist, sicher vor dem Überspringen ist)
  • Tags hinzufügen, sodass ein Thema mit diesem Tag nicht entfernt wird.
10 „Gefällt mir“

Das ergibt für mich keinen Sinn. Warum nutzt du nicht Gruppenberechtigungen, um festzulegen, was die Gruppen sehen dürfen?

4 „Gefällt mir“

Denn ich möchte, dass sie diese Kategorien sehen können, aber nur, wenn sie sich die Mühe machen, dorthin zu gelangen. Zum Beispiel, um zu sehen, was in diesem bestimmten Projekt diskutiert wird, bevor sie sich registrieren.

Auf der Hauptseite möchte ich jedoch nicht, dass sie mit Themen bombardiert werden, die sie nicht interessieren. Der beste Weg wäre, sie dies mit der Funktion „Beobachten/Ignorieren

2 „Gefällt mir“

Diese Verbesserungen wurden umgesetzt.

4 „Gefällt mir“

Das finde ich sehr interessant. Könnte ich ein Beispiel sehen oder einem Forum beitreten, in dem diese Komponente installiert ist?

1 „Gefällt mir“

Führt die Filterung mit dieser Komponente auch dazu, dass die Beiträge nicht per Zusammenfassungs-E-Mail versendet werden? Das wäre nämlich GENIAL.

1 „Gefällt mir“

Nein, das tut es nicht.
Es entfernt nicht den Zugriff auf den Beitrag, sondern blendet ihn lediglich per CSS aus.
Themen werden weiterhin an den Benutzer gesendet, mit der Anweisung, sie nicht anzuzeigen.
Der Anwendungsfall besteht nicht darin, den Zugriff zu entfernen, sondern sie lediglich von der Startseite (oder einer anderen ausgewählten Seite) auszublenden.

Entschuldigung, ich habe es nicht auf einem Forum ohne Anmeldung installiert, aber du kannst gerne hier oder per PN Fragen stellen.

2 „Gefällt mir“

Danke!

Was bedeutet dieser Teil?

1 „Gefällt mir“

Wenn du den Quellcode der Seite ansiehst, werden die Themeninformationen gesendet. Die Theme-Komponente weist jedoch an, diese zu ignorieren.

1 „Gefällt mir“

Es funktioniert „nur

2 „Gefällt mir“

Ich werde mir das genauer ansehen. Nochmals vielen Dank!

1 „Gefällt mir“

Hallo, ich habe diese Theme-Komponente installiert und habe nun Probleme bei der Einrichtung. Wenn ich versuche, Tags und gefilterte Kategorien auszuwählen, werden meine nicht angezeigt. Als Beispiel: Wir haben definitiv ein FAQ-Tag, aber leider kann ich es nicht auswählen. Ich habe auch versucht, das Tag einfach einzutippen, aber das funktioniert ebenfalls nicht.

2 „Gefällt mir“

Sind Tags im Dashboard aktiviert? Sie finden dies unter Einstellungen/Tags. Das erste Feld oben in der Tag-Liste dient zur Aktivierung. Anschließend sollten alle von Ihnen erstellten Tags funktionieren.

1 „Gefällt mir“

Ja, Tags sind aktiviert.

1 „Gefällt mir“

Der Einstellungsparameter weiß nicht, welche Tags existieren. Du musst hier den Tag-Namen eingeben, auf create: 'faq' klicken, und der Tag-Name wird dann ausgewählt. Du kannst so viele Tags auswählen, wie nötig; einer davon reicht aus, um den Beitrag wieder sichtbar zu machen.

Sei vorsichtig: Wenn dein Konto Administratorrechte hat, verfügt es über vollständige Berechtigungen für jede Kategorie. Das Ausblenden einer Kategorie erfolgt jedoch durch die Prüfung, ob das Konto effektiv einen neuen Beitrag erstellen kann. Das kann dein Konto, daher wird dein Konto jeden Beitrag überall sehen können. Um die Komponente zu testen, empfehle ich dir, ein Testkonto zu erstellen, um zu sehen, was ein Benutzer sieht.

2 „Gefällt mir“

Vielen Dank. Ich glaube, ich habe es zum Laufen gebracht, und ich freue mich sehr darauf, zu sehen, wie es wird. Meine Anerkennung für Ihre Arbeit.

2 „Gefällt mir“

Könnte eine Ausnahme für Personen gemacht werden, die eine Kategorie verfolgen?

1 „Gefällt mir“