Discourse-Gruppenseitenleiste-Menüs

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

Dieses Theme-Komponente installieren

:woman_technologist:t2: Überblick

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

Hauptmerkmale:

  • Gruppenbasierte Menüsichtbarkeit – Menüabschnitte werden nur in der Seitenleiste für autorisierte Benutzer gerendert
  • Objektbasierte Konfiguration – Einfach zu bedienende Einstellungs-UI zum Erstellen von Menüs
  • Mehrere Abschnitte – Erstelle unbegrenzt viele Menüabschnitte für verschiedene Gruppen (innerhalb vernünftiger Grenzen)
  • Admin-Schnellbearbeitungslink – Das Stiftsymbol in Menüüberschriften verlinkt Administratoren direkt zu den Komponenteneinstellungen

:briefcase: Einige Anwendungsfälle

  • Ressourcen und Schnelllinks nur für Mitarbeiter
  • Abkürzungen für Kategorien-Moderatoren
  • Benutzerdefinierte Gruppenportale (Projektteams, Lerngruppen, Buchclubs, VIP-Mitglieder)
  • Links zu Ressourcen von Partner- oder Mutterwebsites

:gear: Einstellungen

Menüabschnitte (menu_sections)

Öffnet den Objekt-Einstellungseditor, um benutzerdefinierte Gruppenmenüabschnitte zu konfigurieren.

Abschnittseigenschaften

Eigenschaft Beschreibung
Menütitel Titel, der als Kopfzeile des Seitenleistenabschnitts angezeigt wird
Erlaubte Gruppen Gruppen, die diesen Menüabschnitt sehen dürfen (max. 20 Gruppen pro Abschnitt)
Menülinks Sammlung von Links, die in diesem Abschnitt angezeigt werden (max. 20 Links pro Abschnitt)

Link-Eigenschaften

Eigenschaft Beschreibung
Symbol FontAwesome-Symbolname (z. B. circle-info, star, user-group). Muss möglicherweise unter Admin > Alle Site-Einstellungen > SVG-Symbol-Subset hinzugefügt werden
Text Anzeigetext für den Link
URL Linkziel – 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-Einstellungseditor.
  3. Klicke auf die Schaltfläche + new_menu_section, um den ersten benutzerdefinierten Menüabschnitt einzurichten.
  4. Gib dem neuen Menü im Feld Menu title einen Titel und wähle dann die Gruppen aus, die Zugang dazu haben sollen.
  5. Klicke auf + new_menu_section, um einen weiteren Abschnitt hinzuzufügen, oder speichere die Änderungen.
Admin-Konfigurations-Screenshots mit Beispielkonfiguration

Frische Installation – gehe zum Objekt-Einstellungseditor.

Beispielszenario mit 2 benutzerdefinierten Menüs und 3 Benutzern, wobei einer Administrator ist:

  • @Catra liebt Katzen und ist Mitglied der Gruppe pink, die Zugang zum Cat Menu :grinning_cat: hat.
  • @HelloKitty mag Hunde und ist Mitglied der Gruppe purple, die Zugang zum Dog Menu :dog_face: hat.
  • @Lilly ist Mitglied der Gruppe purple, weil sie einen Hund besitzt und Hunde besser sind. Sie ist jedoch auch Forum-Administratorin, und Administratoren haben Zugang zum Cat Menu, weil Katzen mehr Aufsicht brauchen :dog_face: :cat_with_wry_smile:.

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

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

Erstelle einen weiteren benutzerdefinierten Menüabschnitt namens Dog menu, gib nur der Gruppe purple Zugang und konfiguriere die Links:

Screenshots der resultierenden Seitenleistenmenüzugriffe

Benutzer @Catra hat das Cat-Menü! :grinning_cat:

Benutzer @HelloKitty hat das Dog-Menü! :dog_face:

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

Konfigurationsbeispiel

Menu Title: "Cat Stuff"
Allowed Groups: team-cat
Links:
  - Icon: link
    Text: Cat videos & photos
    URL: /t/cat-videos-and-photos/123
  - Icon: magnifying-glass
    Text: Cat wiki
    URL: https://en.wikipedia.org/wiki/Cat

:light_bulb: Wichtige Hinweise

Admin-Zugang

Administratoren 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 Zugang zu allen benutzerdefinierten Menüs. Dies ist beabsichtigt! Außerdem sehen Administratoren, die zu den erlaubten Gruppen eines Menüs gehören, ein Stiftsymbol in der Abschnittsüberschrift, das zu den Komponenteneinstellungen führt.

Gruppenkonfiguration

  • Die Gruppe everyone wird nicht unterstützt – Verwende die native Seitenleisten-Fußzeile-UI, um globale benutzerdefinierte Menüs für alle Benutzer, einschließlich anonymer Besucher, zu erstellen.
  • Maximal 20 Gruppen pro Menüabschnitt. Wenn du mehr benötigst, erstelle duplizierte Abschnitte mit unterschiedlichen Gruppenzuweisungen.
  • Benutzer in mehreren Gruppen sehen alle Menüabschnitte, auf die sie Zugang haben.

Testen & Organisation

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

Sicherheitsüberlegungen

Diese Komponente bietet nur eine UI-Ebene für Zugriffskontrolle. Sie steuert die Menüsichtbarkeit, nicht den Ressourcenzugriff – diese Komponente steuert nur, was in der Seitenleiste gerendert wird, nicht wer auf die eigentlichen Ressourcen zugreifen kann.

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

  • Konfiguriere Kategorienberechtigungen ordnungsgemäß
  • Setze Sichtbarkeitsbeschränkungen für Themen
  • Verwende gruppenbasierte Zugriffskontrollen für Inhalte
  • Stelle sicher, dass private Ressourcen eine Authentifizierung erfordern

Beste Praxis für Administratoren:
Konfiguriere verknüpfte Kategorienberechtigungen und Gruppenmitgliedschaften separat – zum Beispiel: Ein Menülink zu einer privaten Kategorie muss so konfiguriert sein, dass die Berechtigungen dieser Kategorie ordnungsgemäß eingestellt sind. Administratoren sind dafür verantwortlich, sicherzustellen, dass Links zu externen Ressourcen für die ausgewählten Gruppen angemessen autorisiert sind.


Dies war ein Gemeinschaftsprojekt mit @Moin – ihr Input, ihre Inspiration und ihr Feedback waren von unschätzbarem Wert.


Schau dir mein anderes Discourse-Material an
13 „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!

1 „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?

1 „Gefällt mir“

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

3 „Gefällt mir“

Vielen Dank! Das war sehr einfach einzurichten.

3 „Gefällt mir“