Discourse Gruppen-Seitenleiste-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
:open_book: Neu bei Discourse-Themes? Anfängerleitfaden zur Verwendung von Discourse-Themes

Dieses Theme-Modul 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.

Hauptfunktionen:

  • Gruppenbasierte Menüsichtbarkeit – Menüabschnitte werden nur in der Seitenleiste für autorisierte Benutzer gerendert
  • Objektbasierte Konfiguration – Benutzerfreundliche 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 den Menüköpfen verlinkt Administratoren direkt auf die 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 der Eltern- oder Partnerwebsites

:gear: Einstellungen

Menüabschnitte (menu_sections)

Öffnet den Objekt-Einstellungseditor, um benutzerdefinierte Gruppen-Menü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). Möglicherweise muss es unter Admin > Alle Seiteneinstellungen > SVG-Symbol-Teilmenge hinzugefügt werden
Text Anzeigelabel 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.

Beispiel-Szenario mit 2 benutzerdefinierten Menüs und 3 Benutzern, davon einer Admin:

  • @Catra liebt Katzen und ist Mitglied der Gruppe pink, die Zugang zum Cat Menu hat :grinning_cat:
  • @HelloKitty mag Hunde und ist Mitglied der Gruppe purple, die Zugang zum Dog Menu hat :dog_face:
  • @Lilly ist Mitglied der Gruppe purple, weil sie einen Hund besitzt und Hunde besser sind. Da sie jedoch auch Forum-Admin ist, hat sie Zugang zum Cat Menu, weil Katzen mehr Aufsicht benötigen :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 des resultierenden Seitenleistenmenüzugriffs

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

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

Der Admin-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 im Abschnittskopf, das auf die Komponenteneinstellungen verlinkt.

Gruppenkonfiguration

  • Die Gruppe everyone wird nicht unterstützt – Verwende die native Seitenleisten-Fußzeile, 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 doppelte Abschnitte mit unterschiedlichen Gruppenzuweisungen.
  • 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. Halte deine Menükonfigurationen übersichtlich, um Verwirrung zu vermeiden, sobald die Komplexität zunimmt; für größere Foren mit vielen Gruppen wird eine Zugriffs-Matrix oder eine ähnliche Dokumentation empfohlen.

Sicherheitsüberlegungen

Diese Komponente bietet nur eine UI-Ebene für die 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 echte Ressourcen zu sichern:

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

Best Practices für Administratoren:
Konfiguriere verknüpfte Kategorienberechtigungen und Gruppenmitgliedschaften separat – beispielsweise muss ein Menülink zu einer privaten Kategorie so konfiguriert sein, dass die Berechtigungen dieser Kategorie ordnungsgemäß eingerichtet 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 – ihre Inputs, Inspiration und ihr Feedback waren unschätzbar wertvoll.


Schau dir meine anderen Discourse-Projekte an
12 „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“