Discourse Gruppen-Seitenleistenmenüs

:information_source: Zusammenfassung Erstellen Sie benutzerdefinierte Seitenleistenmenüs, deren Zugriff auf ausgewählte Gruppen beschränkt ist
:eyeglasses: Vorschau Treten Sie dieser Theme Creator Gruppe bei und sehen Sie sich dann hier eine Vorschau an
:hammer_and_wrench: Repository \u003chttps://github.com/Lillinator/discourse-group-sidebar-menus\u003e
:question: Installationsanleitung So installieren Sie ein Theme oder eine Theme-Komponente
:open_book: Neu bei Discourse Themes? Anfängerleitfaden zur Verwendung von Discourse Themes

Diese Theme-Komponente installieren

:woman_technologist:t2: Übersicht

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

Hauptmerkmale:

  • Gruppenbasierte Zugriffskontrolle - Menüabschnitte werden nur für autorisierte Benutzer gerendert
  • Admin-UI-Konfiguration - Alle Einstellungen zum Erstellen von Gruppenmenüabschnitten befinden sich in der Admin-UI der Theme-Komponente
  • Mehrere Abschnitte - Erstellen Sie unbegrenzt viele Menüabschnitte für verschiedene Gruppen (in vernünftigem Rahmen)
  • Clientseitige Sicherheit - Nicht autorisierte Benutzer können Menüabschnitte weder im DOM, noch im Web-Inspektor oder im abgesicherten Modus sehen
  • Keine globale Verschmutzung - Erfordert nicht das Erstellen globaler Seitenleistenabschnitte
  • Admin-Schnellbearbeitungslink - Das Stiftsymbol in den Menüüberschriften verlinkt Admins direkt zu den Komponenteneinstellungen

:briefcase: Anwendungsfälle

  • Ressourcen und Schnelllinks nur für Mitarbeiter
  • Verknüpfungen für Kategorie-Moderatoren
  • Benutzerdefinierte Gruppenportale (Projektteams, Lerngruppen, Buchclubs, VIP-Mitglieder)
  • Links zu Ressourcen auf übergeordneten oder Partner-Websites

:gear: Einstellungen

Menüabschnitte (menu_sections)

Öffnet den Objekt-Einstellungseditor zur Konfiguration benutzerdefinierter Gruppenmenüabschnitte.

Abschnittseigenschaften

Eigenschaft Beschreibung
Menütitel Titel, der als Kopfzeile des Seitenleistenabschnitts angezeigt wird
Zugelassene Gruppen Gruppen, denen die Anzeige dieses Menüabschnitts gestattet ist (max.: 20 Gruppen pro Abschnitt)
Menülinks Sammlung von Links, die in diesem Abschnitt angezeigt werden sollen (max.: 20 Links pro Abschnitt)

Linkeigenschaften

Eigenschaft Beschreibung
Icon Name des FontAwesome-Symbols (z. B. circle-info, star, user-group). Muss möglicherweise zu Admin \u003e Alle Website-Einstellungen \u003e svg icon subset hinzugefügt werden
Text Anzeigelabel 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. Installieren Sie die Theme-Komponente gemäß Installing a theme or theme component.
  2. Gehen Sie zum Objects setting editor (Objekteinstellungseditor)
  3. Klicken Sie auf die Schaltfläche + new_menu_section, um den ersten benutzerdefinierten Menüabschnitt einzurichten
  4. Geben Sie dem neuen Menü einen Titel im Feld Menu title und wählen Sie dann die Gruppen aus, die darauf zugreifen sollen.
  5. Klicken Sie auf + new_menu_section, um einen weiteren Abschnitt hinzuzufügen, oder speichern Sie die Änderungen.
Screenshots der Admin-Konfiguration mit Beispiel-Setup

Frische Installation – gehen Sie zu Objects setting editor.

Beispiel-Szenario mit 2 benutzerdefinierten Menüs und 3 Benutzern, von denen einer ein Admin ist:

  • @Catra liebt Katzen und ist Mitglied der Gruppe pink, die Zugriff auf das Cat Menu :grinning_cat: hat
  • @HelloKitty mag Hunde und ist Mitglied der Gruppe purple, die Zugriff auf das Dog Menu :dog_face: hat
  • @Lilly ist Mitglied von purple, weil sie einen Hund besitzt und Hunde besser sind. Sie ist jedoch auch eine Forum-Administratorin, und Admins erhalten Zugriff auf das Cat Menu, da Katzen mehr Aufsicht benötigen :dog_face: :cat_with_wry_smile:

Erstellen Sie ein neues benutzerdefiniertes Menü – erstellen Sie für unser Beispiel das Cat menu und fügen Sie die Gruppen hinzu, denen der Zugriff darauf gestattet ist – pink und admins. Klicken Sie dann auf die Schaltfläche + menu_link, um die Links für das neue Menü einzurichten.

Fügen Sie die Menülinks hinzu – 1. Fontawesome-Symbolname, 2. anzuzeigender Text für den Link und 3. die URL, relativ oder absolut. Klicken Sie auf die Schaltfläche + menu_link, um einen weiteren Link zu diesem Menü hinzuzufügen.

Erstellen Sie einen weiteren benutzerdefinierten Menüabschnitt namens Dog menu, gewähren Sie nur der Gruppe purple Zugriff und konfigurieren Sie die Links:

Screenshots des resultierenden Seitenleistenmenü-Zugriffs

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: "Mitarbeiterressourcen"
Zugelassene Gruppen: staff
Links:
  - Icon: wrench
    Text: Moderationsleitfaden
    URL: /t/moderations-guide/123
  - Icon: chart-line
    Text: Analyse-Dashboard
    URL: /admin/dashboard

:light_bulb: Wichtige Hinweise

Admin-Zugriff

  • Admins müssen sich selbst zu Gruppen hinzufügen, um Menüs anzuzeigen, die für diese Gruppen konfiguriert sind. Der Admin-Status allein gewährt keinen Zugriff auf alle benutzerdefinierten Menüs. Dies ist beabsichtigt!
  • Admins, die zu den zugelassenen Gruppen eines Menüs gehören, sehen ein Stiftsymbol im Abschnittskopf, das zu den Komponenteneinstellungen verlinkt.

Gruppenkonfiguration

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

Testen & Organisation

  • Verwenden Sie Testkonten, um den korrekten Zugriff für verschiedene Gruppenkombinationen zu überprüfen.
  • Behalten Sie den Überblick über Ihre Menükonfigurationen, um Verwirrung bei wachsender Komplexität zu vermeiden; bei größeren Foren mit vielen Gruppen wird eine Zugriffsmatrix oder eine ähnliche Dokumentation empfohlen.

Sicherheitsaspekte

Diese Komponente bietet Zugriffskontrolle auf UI-Ebene. Sie steuert den Menüzugriff, nicht den Ressourcen-Zugriff – sie ist kein Ersatz für Berechtigungen zur Kategoriesicherheit.

Was diese Komponente schützt:

  • :white_check_mark: Menüabschnitte können von nicht autorisierten Benutzergruppen nicht aufgerufen werden
  • :white_check_mark: Links sind über Inspektor/Konsole/Safe Mode nicht auffindbar
  • :white_check_mark: Saubere UX ohne Menü-Unordnung

Best Practices für Administratoren:

  • Konfigurieren Sie die Sicherheitsberechtigungen jeder verlinkten Kategorie und die entsprechende Gruppenmitgliedschaft separat, bevor Sie diese Komponente einrichten – planen Sie Ihre Konfiguration.
  • Administratoren sind dafür verantwortlich, sicherzustellen, dass Links zu externen Ressourcen für die ausgewählten Gruppen angemessen autorisiert sind.

Weitere Hinweise :pen:

  • Diese Komponente ist kompatibel mit Discourse Sidebar Menu Reorder, die verwendet wurde, um die beiden Beispielmenüabschnitte in den Screenshots oben in der Seitenleiste zu platzieren. Verwenden Sie einfach den Titel des benutzerdefinierten Menüabschnitts im Slug-Format, z. B. cat-menu.
  • Dies war ein gemeinsames Projekt mit @Moin – ihre Hilfe, ihr Input und ihr Feedback waren von unschätzbarem Wert.
7 „Gefällt mir“

Ich scheine eine 404 beim Repository zu bekommen.

EDIT: Alles gut jetzt!

1 „Gefällt mir“

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

4 „Gefällt mir“