Menus de la barre latérale du groupe Discourse

:information_source: Résumé Créer des menus de barre latérale personnalisés pour des groupes sélectionnés
:eyeglasses: Aperçu Rejoignez ce groupe de créateurs de thèmes, puis prévisualisez ici
:hammer_and_wrench: Dépôt https://github.com/Lillinator/discourse-group-sidebar-menus
:question: Guide d’installation Comment installer un thème ou un composant de thème

Installer ce composant de thème

:woman_technologist:t2: Aperçu

Ce composant de thème Discourse permet aux administrateurs de forum de créer des menus de barre latérale personnalisés accessibles uniquement aux membres de groupes sélectionnés.

Fonctionnalités principales :

  • Visibilité des menus basée sur les groupes - Les sections de menu ne sont affichées dans la barre latérale que pour les utilisateurs autorisés
  • Configuration basée sur les objets - Interface de paramètres facile à utiliser pour créer des menus
  • Sections multiples - Créez un nombre illimité de sections de menu pour différents groupes (dans la mesure du raisonnable)
  • Lien d’édition rapide pour les administrateurs - L’icône de crayon dans les en-têtes de menu redirige les administrateurs directement vers les paramètres du composant

:briefcase: Quelques cas d’utilisation

  • Ressources et liens rapides réservés au personnel
  • Raccourcis pour les modérateurs de catégories
  • Portails personnalisés pour groupes (équipes de projet, groupes d’étude, clubs de lecture, membres VIP)
  • Liens vers des ressources de sites web parents ou partenaires

:gear: Paramètres

Sections de menu (menu_sections)

Ouvre l’éditeur de paramètres d’objet pour configurer des sections de menu de groupe personnalisées.

Propriétés de la section

Propriété Description
Titre du menu Titre affiché en tant qu’en-tête de section dans la barre latérale
Groupes autorisés Groupes autorisés à voir cette section de menu (maximum : 20 groupes par section)
Liens du menu Collection de liens à afficher dans cette section (maximum : 20 liens par section)

Propriétés du lien

Propriété Description
Icône Nom de l’icône FontAwesome (par exemple, circle-info, star, user-group). Peut nécessiter d’être ajouté dans Admin > Tous les paramètres du site > sous-ensemble d'icônes svg
Texte Libellé d’affichage pour le lien
URL Destination du lien - prend en charge à la fois les chemins relatifs (/faq, /my/preferences) et les URL absolues (https://example.com)

:wrench: Installation et configuration

  1. Installez le composant de thème conformément à Installing a theme or theme component.
  2. Accédez à l’éditeur de paramètres d'objet.
  3. Cliquez sur le bouton + new_menu_section pour configurer la première section de menu personnalisée.
  4. Donnez un titre au nouveau menu dans le champ Titre du menu, puis sélectionnez les groupes que vous souhaitez autoriser à y accéder.
  5. Cliquez sur + new_menu_section pour ajouter une autre section, ou enregistrez les modifications.
Captures d'écran de la configuration administrateur avec exemple de mise en place

Installation fraîche - accédez à l’éditeur de paramètres d'objet.

Scénario exemple avec 2 menus personnalisés et 3 utilisateurs, dont un administrateur :

  • @Catra adore les chats et fait partie du groupe pink, qui aura accès au Menu Chat :grinning_cat:
  • @HelloKitty aime les chiens et fait partie du groupe purple, qui aura accès au Menu Chien :dog_face:
  • @Lilly fait partie du groupe purple car elle possède un chien et les chiens sont meilleurs. Cependant, elle est aussi administratrice du forum, et les administrateurs auront accès au Menu Chat car les chats ont besoin de plus de surveillance :dog_face: :cat_with_wry_smile:

Créez un nouveau menu personnalisé - pour notre exemple, créez Menu Chat et ajoutez les groupes autorisés à y accéder : pink et admins. Ensuite, cliquez sur le bouton + menu_link pour configurer les liens du nouveau menu.

Ajoutez les liens du menu - 1. Nom de l’icône FontAwesome, 2. texte à afficher pour le lien, et 3. l’URL, relative ou absolue. Cliquez sur le bouton + menu_link pour ajouter un autre lien à ce menu.

Créez une autre section de menu personnalisée appelée Menu Chien, accordez uniquement au groupe purple l’accès et configurez les liens :

Captures d'écran de l'accès résultant au menu de barre latérale

L’utilisateur @Catra a le Menu Chat ! :grinning_cat:

L’utilisateur @HelloKitty a le Menu Chien ! :dog_face:

L’utilisateur administrateur @Lilly a les deux menus et peut les modifier ! :smiling_cat_with_heart_eyes:

Exemple de configuration

Titre du menu : « Choses de chat »
Groupes autorisés : team-cat
Liens :
  - Icône : link
    Texte : Vidéos et photos de chats
    URL : /t/cat-videos-and-photos/123
  - Icône : magnifying-glass
    Texte : Wiki sur les chats
    URL : https://en.wikipedia.org/wiki/Cat

:light_bulb: Notes importantes

Accès administrateur

Les administrateurs doivent s’ajouter eux-mêmes aux groupes pour voir les menus configurés pour ces groupes. Le statut d’administrateur seul ne donne pas accès à tous les menus personnalisés. C’est intentionnel ! De plus, les administrateurs appartenant aux groupes autorisés d’un menu verront une icône de crayon dans l’en-tête de section qui redirige vers les paramètres du composant.

Configuration des groupes

  • Le groupe everyone n’est pas pris en charge - Utilisez l’interface utilisateur native du pied de page de la barre latérale pour créer des menus personnalisés globaux pour tous les utilisateurs, y compris les visiteurs anonymes.
  • Maximum de 20 groupes par section de menu. Si vous en avez besoin de plus, créez des sections dupliquées avec des affectations de groupes différentes.
  • Les utilisateurs appartenant à plusieurs groupes verront toutes les sections de menu auxquelles ils ont accès.

Tests et organisation

Utilisez des comptes de test pour vérifier l’accès correct pour différentes combinaisons de groupes. Gardez une trace de vos configurations de menu pour éviter la confusion à mesure que la complexité augmente ; une matrice d’accès ou une documentation similaire est recommandée pour les forums plus grands avec de nombreux groupes.

Considérations de sécurité

Ce composant fournit uniquement un contrôle d’accès au niveau de l’interface utilisateur. Il contrôle la visibilité du menu, pas l’accès aux ressources - ce composant contrôle uniquement ce qui est rendu dans la barre latérale, pas qui peut accéder aux ressources réelles.

Toujours s’appuyer sur le système de permissions intégré de Discourse pour sécuriser les ressources réelles :

  • Configurez correctement les permissions des catégories
  • Définissez des restrictions de visibilité des sujets
  • Utilisez des contrôles d’accès basés sur les groupes pour le contenu
  • Assurez-vous que les ressources privées nécessitent une authentification

Meilleure pratique pour les administrateurs :
Configurez séparément les permissions de sécurité des catégories liées et l’appartenance aux groupes - par exemple : un lien de menu vers une catégorie privée doit avoir les permissions de cette catégorie correctement configurées. Les administrateurs sont responsables de s’assurer que les liens vers des ressources externes sont autorisés de manière appropriée pour les groupes sélectionnés.


Ceci était un projet collaboratif avec @Moin - ses contributions, son inspiration et ses retours ont été inestimables.


Découvrez mes autres créations Discourse
13 « J'aime »

J’obtiens un 404 sur le dépôt.

EDIT : Tout est rentré dans l’ordre maintenant !

2 « J'aime »

haha, réessayez. J’ai oublié de le rendre public ! :laughing:

6 « J'aime »

Fabuleux ! Je le voulais depuis un certain temps. J’ai créé une belle collection de menus latéraux personnalisés utiles pour moi – des liens pour la modération, pour les tâches d’administration et de référence, pour la documentation de Discourse, pour le contenu externe auquel nous faisons fréquemment référence sur le forum, etc. Un menu contient des liens pour les diverses réunions périodiques qui utilise simplement le lien tag, par exemple /tag/comm-mgt-monthly, ce qui m’aide à accéder rapidement aux ordres du jour et aux procès-verbaux actuels et précédents.

J’ai souvent souhaité un moyen d’exporter mes configurations de menus latéraux personnalisés afin que d’autres membres de mon équipe puissent les importer – c’est une configuration bien supérieure !

Et les icônes ! Hourra ! Pour autant que je sache, la seule façon de le faire était d’ajouter du CSS personnalisé. Cette nouvelle solution est élégante.

Et durable ! Tous les administrateurs pourront modifier les fichiers de configuration, donc ils ne dépendront pas uniquement de moi. Merci @Lilly et @Moin !

1 « J'aime »

Bonjour @Lilly et @Moin,

Merci d’avoir créé ce composant.

J’utilisais Group sidebar menu sections - deprecated sur mon site auto-hébergé et lors de ma dernière mise à jour, j’ai été averti que l’ancien composant de thème avait été déprécié et qu’il fallait installer celui-ci à la place.

J’ai installé le composant et créé mon menu de groupe personnalisé, mais je ne vois pas comment déplacer le menu de groupe. (Je dois passer à côté de quelque chose d’évident. :see_no_evil_monkey:) Dans vos captures d’écran, votre Cat Menu et Dog Menu se trouvent dans la navigation de la barre latérale au-dessus de la section Topics, mais mon menu de groupe personnalisé apparaît tout en bas de ma navigation de barre latérale. Comment puis-je le déplacer au-dessus de Topics ?

1 « J'aime »

Ce n’est pas évident. Lilly a utilisé Discourse Sidebar Menu Reorder pour placer cat-menu en haut

3 « J'aime »

Merci beaucoup ! C’était très facile à configurer.

3 « J'aime »