Seitenleistenmenüs für Diskussionsgruppen

:information_source: Zusammenfassung Erstellen benutzerdefinierter Seitenleistenmenüs für ausgewählte Gruppen
:eyeglasses: Vorschau Tritt dieser Theme Creator-Gruppe bei und schaue dir hier eine Vorschau an
:hammer_and_wrench: Repository https://github.com/Lillinator/discourse-group-sidebar-menus
:question: Installationsanleitung So installierst du ein Theme oder Theme-Komponente

Installiere diese Theme-Komponente

:woman_technologist:t2: Übersicht

Diese Discourse-Theme-Komponente ermöglicht es Forenadministratoren, benutzerdefinierte Seitenleistenmenüs zu erstellen, die nur für Mitglieder ausgewählter Gruppen zugänglich sind.

Hauptmerkmale:

  • Gruppenbasierte Menüsichtbarkeit - Menüabschnitte werden in der Seitenleiste nur für autorisierte Benutzer angezeigt
  • Objektbasierte Konfiguration - Einfach zu bedienende Einstellungensoberfläche zum Erstellen von Menüs
  • Mehrere Abschnitte - Erstelle beliebig viele Menüabschnitte für verschiedene Gruppen (innerhalb vernünftiger Grenzen)
  • Admin-Schnellbearbeitungslink - Das Bleistiftsymbol in den Menüüberschriften verlinkt Admins direkt zu den Komponenteneinstellungen

:briefcase: Einige Anwendungsfälle

  • Nur für Mitarbeiter bestimmte Ressourcen und Schnelllinks
  • Abkürzungen für Kategorie-Moderatoren
  • Benutzerdefinierte Gruppenportale (Projektteams, Lerngruppen, Buchclubs, VIP-Mitglieder)
  • Links zu Ressourcen der übergeordneten oder Partner-Website

:gear: Einstellungen

Menüabschnitte (menu_sections)

Öffnet den Objekteinstellungen-Editor zur Konfiguration benutzerdefinierter Gruppenmenüabschnitte.

Abschnittseigenschaften

Eigenschaft Beschreibung
Menütitel Titel, der als Seitenleistenmenü-Überschrift angezeigt wird
Erlaubte Gruppen Gruppen, die diesen Menüabschnitt anzeigen dürfen (max. 20 Gruppen pro Abschnitt)
Menülinks Sammlung von Links, die in diesem Abschnitt angezeigt werden (max. 20 Links pro Abschnitt)

Linkeigenschaften

Eigenschaft Beschreibung
Symbol FontAwesome-Symbolname (z. B. circle-info, star, user-group). Muss ggf. unter Admin > Alle Site-Einstellungen > svg icon subset hinzugefügt werden
Text Anzeigename für den Link
URL Link-Ziel – unterstützt sowohl relative Pfade (/faq, /my/preferences) als auch absolute URLs (https://example.com)

:wrench: Installation und Konfiguration

  1. Installiere die Theme-Komponente gemäß Installing a theme or theme component.
  2. Gehe zum Objekt-Einstellungen-Editor.
  3. Klicke auf die Schaltfläche + new_menu_section, um den ersten benutzerdefinierten Menüabschnitt einzurichten.
  4. Gib dem neuen Menü einen Titel im Feld Menütitel und wähle dann die Gruppen aus, die darauf zugreifen sollen.
  5. Klicke auf + new_menu_section, um einen weiteren Abschnitt hinzuzufügen, oder speichere die Änderungen.
Admin-Konfigurations-Screenshots mit Beispielskonfiguration

Frische Installation – gehe zum Objekt-Einstellungen-Editor.

Beispielszenario mit 2 benutzerdefinierten Menüs und 3 Benutzern, einer davon ist ein Admin:

  • @Catra liebt Katzen und ist Mitglied der Gruppe pink, die Zugriff auf das Katzenmenü hat :grinning_cat:
  • @HelloKitty mag Hunde und ist Mitglied der Gruppe purple, die Zugriff auf das Hundemenü hat :dog_face:
  • @Lilly ist Mitglied der Gruppe purple, weil sie einen Hund besitzt und Hunde besser sind. Allerdings ist sie auch Forenadmin, und Admins haben Zugriff auf das Katzenmenü, weil Katzen mehr Aufsicht brauchen :dog_face: :cat_with_wry_smile:

Erstelle ein neues benutzerdefiniertes Menü – für unser Beispiel erstelle das Katzenmenü und füge die Gruppen hinzu, die Zugriff darauf haben sollen – pink und admins. Klicke dann auf die Schaltfläche + menu_link, um die Links für das neue Menü einzurichten.

Füge einige Menülinks hinzu – 1. FontAwesome-Symbolname, 2. Anzeigetext für den Link und 3. die URL, relativ oder absolut. Klicke auf die Schaltfläche + menu_link, um diesem Menü einen weiteren Link hinzuzufügen.

Erstelle einen weiteren benutzerdefinierten Menüabschnitt namens Hundemenü, gewähre nur der Gruppe purple Zugriff und konfiguriere die Links:

Screenshots der resultierenden Seitenleistenmenü-Zugriffe

Benutzer @Catra hat das Katzenmenü! :grinning_cat:

Benutzer @HelloKitty hat das Hundemenü! :dog_face:

Admin-Benutzer @Lilly hat beide Menüs und kann sie bearbeiten! :smiling_cat_with_heart_eyes:

Konfigurationsbeispiel

Menütitel: "Katzenkram"
Erlaubte Gruppen: team-cat
Links:
  - Symbol: link
    Text: Katzenvideos & -fotos
    URL: /t/cat-videos-and-photos/123
  - Symbol: magnifying-glass
    Text: Katzen-Wiki
    URL: https://en.wikipedia.org/wiki/Cat

:light_bulb: Wichtige Hinweise

Admin-Zugriff

Admins müssen sich selbst zu Gruppen hinzufügen, um Menüs zu sehen, die für diese Gruppen konfiguriert sind. Der Admin-Status allein gewährt keinen Zugriff auf alle benutzerdefinierten Menüs. Dies ist beabsichtigt! Außerdem sehen Admins, die zu den erlaubten Gruppen eines Menüs gehören, ein Bleistiftsymbol in der Abschnittsüberschrift, das zu den Komponenteneinstellungen führt.

Gruppenkonfiguration

  • Die Gruppe everyone wird nicht unterstützt – Verwende die native Seitenleisten-Fußzeilen-Oberfläche, um globale benutzerdefinierte Menüs für alle Benutzer, einschließlich anonymen Besucher, zu erstellen.
  • Maximum von 20 Gruppen pro Menüabschnitt. Wenn du mehr brauchst, erstelle duplizierte Abschnitte mit unterschiedlichen Gruppenzuordnungen.
  • Benutzer in mehreren Gruppen sehen alle Menüabschnitte, auf die sie Zugriff haben.

Testen & Organisation

Verwende Testkonten, um den korrekten Zugriff für verschiedene Gruppenkombinationen zu überprüfen. Behalte deine Menükonfigurationen im Auge, um Verwirrung zu vermeiden, wenn die Komplexität zunimmt; für größere Foren mit vielen Gruppen wird eine Zugriffsmatrix oder ähnliche Dokumentation empfohlen.

Sicherheitsaspekte

Diese Komponente bietet nur zugriffskontrollen auf UI-Ebene. Sie steuert die Menüsichtbarkeit, nicht den Ressourcenzugriff – diese Komponente steuert nur, was in der Seitenleiste gerendert wird, nicht, wer auf die tatsächlichen Ressourcen zugreifen kann.

Verlasse dich immer auf das integrierte Berechtigungssystem von Discourse, um tatsächliche Ressourcen zu schützen:

  • Konfiguriere Kategorieberechtigungen korrekt
  • Setze Themen-Sichtbarkeitsbeschränkungen
  • Verwende gruppenbasierte Zugriffskontrollen für Inhalte
  • Stelle sicher, dass private Ressourcen eine Authentifizierung erfordern

Best Practices für Administratoren:
Konfiguriere die Sicherheitsberechtigungen verlinkter Kategorien und die Gruppenmitgliedschaft separat – zum Beispiel: Ein Menülink zu einer privaten Kategorie muss die Berechtigungen dieser Kategorie korrekt konfiguriert haben. Administratoren sind dafür verantwortlich, sicherzustellen, dass Links zu externen Ressourcen für die ausgewählten Gruppen angemessen autorisiert sind.


Dies war ein kollaboratives Projekt mit @Moin – ihre Beiträge, Inspiration und ihr Feedback waren unschätzbbar.


Schau dir meine anderen Discourse-Sachen an
14 „Gefällt mir“

Ich scheine eine 404 beim Repository zu bekommen.

EDIT: Alles gut jetzt!

2 „Gefällt mir“

haha versuch es noch einmal. Habe vergessen, es öffentlich zu machen! :laughing:

6 „Gefällt mir“

Fantastisch! Das wollte ich schon seit einiger Zeit. Ich habe eine schöne Sammlung nützlicher benutzerdefinierter Seitenleistenmenüs für mich erstellt – Links für Moderation, für Admin-Aufgaben & Referenzen, für die Discourse-Dokumentation, für externe Inhalte, auf die wir im Forum häufig verweisen, usw. Ein Menü enthält Links für die verschiedenen periodischen Besprechungen, das einfach den tag-Link verwendet, z. B. /tag/comm-mgt-monthly, der mir hilft, schnell zu aktuellen und früheren Tagesordnungen und Protokollen zu springen.

Ich habe mir oft gewünscht, eine Möglichkeit zu haben, meine benutzerdefinierten Seitenleistenmenü-Konfigurationen zu exportieren, damit andere in meinem Team sie importieren können – das ist eine weitaus überlegene Konfiguration!

Und Icons! Juhu! Soweit ich weiß, war der einzige Weg, dies zu tun, das Hinzufügen von benutzerdefiniertem CSS. Diese neue Lösung ist elegant.

Und nachhaltig! Alle Administratoren können die Konfigurationsdateien bearbeiten, sodass sie nicht nur von mir abhängig sind. Danke @Lilly und @Moin!

2 „Gefällt mir“

Hallo @Lilly und @Moin,

Vielen Dank für die Entwicklung dieser Komponente.

Ich habe Group sidebar menu sections - deprecated auf meiner selbst gehosteten Seite verwendet und wurde bei meinem letzten Update darauf hingewiesen, dass die ältere Themenkomponente veraltet sei und stattdessen diese hier installiert werden solle.

Ich habe die Komponente installiert und mein benutzerdefiniertes Gruppenmenü erstellt, sehe aber einfach nicht, wie ich das Gruppenmenü verschieben kann. (Ich muss etwas Offensichtliches übersehen. :see_no_evil_monkey:) Auf Ihren Screenshots befinden sich Ihr Cat Menu und Dog Menu in der Seitenleistennavigation über dem Abschnitt Topics, aber mein benutzerdefiniertes Gruppenmenü wird ganz unten in meiner Seitenleistennavigation angezeigt. Wie verschiebe ich es über Topics?

3 „Gefällt mir“

Es ist nicht offensichtlich. Lilly hat Discourse Sidebar Menu Reorder verwendet, um cat-menu an die Spitze zu setzen.

4 „Gefällt mir“

Vielen Dank! Das war sehr einfach einzurichten.

4 „Gefällt mir“

Bitte aktualisieren Sie diese Komponente, wenn Sie sie verwenden – es gab einige Refactorings basierend auf den Kernänderungen hier: Granular group-based permissions for anonymous and logged in users

1 „Gefällt mir“