| Resumen | Crear menús de barra lateral personalizados para grupos seleccionados | |
| Vista previa | Únete a este grupo de creadores de temas y luego previsualiza aquí | |
| Repositorio | https://github.com/Lillinator/discourse-group-sidebar-menus | |
| Guía de instalación | Cómo instalar un tema o componente de tema |
Instalar este componente de tema
Descripción general
Este componente de tema para Discourse permite a los administradores del foro crear menús de barra lateral personalizados que solo son accesibles para miembros de grupos seleccionados.
Características principales:
- Visibilidad de menú basada en grupos: Las secciones del menú solo se muestran en la barra lateral para usuarios autorizados.
- Configuración basada en objetos: Interfaz de configuración fácil de usar para crear menús.
- Múltiples secciones: Crea secciones de menú ilimitadas para diferentes grupos (dentro de lo razonable).
- Enlace rápido de edición para administradores: El ícono de lápiz en los encabezados del menú lleva directamente a los ajustes del componente.
Algunos casos de uso
- Recursos y enlaces rápidos solo para personal.
- Atajos para moderadores de categorías.
- Portales personalizados para grupos (equipos de proyecto, grupos de estudio, clubes de lectura, miembros VIP).
- Enlaces a recursos de sitios web de padres o socios.
Configuración
Secciones de menú (menu_sections)
Abre el editor de configuración de objetos para configurar secciones de menú personalizadas por grupo.
Propiedades de la sección
| Propiedad | Descripción |
|---|---|
| Título del menú | Título que se muestra como encabezado de la sección en la barra lateral |
| Grupos permitidos | Grupos autorizados para ver esta sección del menú (máximo: 20 grupos por sección) |
| Enlaces del menú | Colección de enlaces a mostrar en esta sección (máximo: 20 enlaces por sección) |
Propiedades del enlace
| Propiedad | Descripción |
|---|---|
| Ícono | Nombre del ícono de FontAwesome (por ejemplo, circle-info, star, user-group). Es posible que deba agregarse en Admin > Todos los ajustes del sitio > subconjunto de íconos svg |
| Texto | Etiqueta de visualización para el enlace |
| URL | Destino del enlace: admite rutas relativas (/faq, /my/preferences) y URLs absolutas (https://example.com) |
Instalación y configuración
- Instala el componente de tema según las instrucciones de Installing a theme or theme component.
- Ve al
Editor de configuración de objetos. - Haz clic en el botón
+ new_menu_sectionpara configurar la primera sección de menú personalizada. - Asigna un título al nuevo menú en el campo
Título del menúy luego selecciona los grupos que tendrán acceso a él. - Haz clic en
+ new_menu_sectionpara agregar otra sección o guarda los cambios.
Capturas de pantalla de la configuración del administrador con ejemplo
Instalación nueva: ve al Editor de configuración de objetos.
Escenario de ejemplo con 2 menús personalizados y 3 usuarios, uno de los cuales es administrador:
@Catraama a los gatos y es miembro del grupopink, que tendrá acceso alMenú de gatos@HelloKittyle gustan los perros y es miembro del grupopurple, que tendrá acceso alMenú de perros@Lillyes miembro del grupopurpleporque tiene un perro y los perros son mejores. Sin embargo, también es administradora del foro, y los administradores tendrán acceso alMenú de gatosporque los gatos necesitan más supervisión![]()
Crea un nuevo menú personalizado: para nuestro ejemplo, crea Menú de gatos y agrega los grupos autorizados para acceder a él: pink y admins. Luego, haz clic en el botón + menu_link para configurar los enlaces del nuevo menú.
Agrega los enlaces del menú: 1. Nombre del ícono de FontAwesome, 2. texto a mostrar para el enlace y 3. la URL, relativa o absoluta. Haz clic en el botón + menu_link para agregar otro enlace a este menú.
Crea otra sección de menú personalizada llamada Menú de perros, otorga acceso solo al grupo purple y configura los enlaces:
Capturas de pantalla del acceso resultante al menú de la barra lateral
¡El usuario @Catra tiene el menú de gatos! ![]()
¡El usuario @HelloKitty tiene el menú de perros! ![]()
¡El usuario administrador @Lilly tiene ambos menús y puede editarlos! ![]()
Ejemplo de configuración
Título del menú: "Cosas de gatos"
Grupos permitidos: team-cat
Enlaces:
- Ícono: link
Texto: Videos y fotos de gatos
URL: /t/cat-videos-and-photos/123
- Ícono: magnifying-glass
Texto: Wiki de gatos
URL: https://en.wikipedia.org/wiki/Cat
Notas importantes
Acceso de administrador
Los administradores deben agregarse a los grupos para ver los menús configurados para esos grupos. El estatus de administrador por sí solo no otorga acceso a todos los menús personalizados. ¡Esto es intencional! Además, los administradores que pertenecen a los grupos permitidos de un menú verán un ícono de lápiz en el encabezado de la sección que lleva a la configuración del componente.
Configuración de grupos
- El grupo
everyoneno es compatible: Usa la interfaz nativa del pie de página de la barra lateral para crear menús personalizados globales para todos los usuarios, incluidos los visitantes anónimos. - Máximo de 20 grupos por sección de menú. Si necesitas más, crea secciones duplicadas con asignaciones de grupo diferentes.
- Los usuarios en múltiples grupos verán todas las secciones de menú a las que tengan acceso.
Pruebas y organización
Usa cuentas de prueba para verificar el acceso correcto para diferentes combinaciones de grupos. Lleva un registro de tus configuraciones de menú para evitar confusión a medida que aumenta la complejidad; se recomienda una matriz de acceso o documentación similar para foros más grandes con muchos grupos.
Consideraciones de seguridad
Este componente proporciona control de acceso a nivel de interfaz de usuario. Controla la visibilidad del menú, no el acceso a recursos: este componente solo controla lo que se muestra en la barra lateral, no quién puede acceder a los recursos reales.
Confía siempre en el sistema de permisos integrado de Discourse para asegurar los recursos reales:
- Configura correctamente los permisos de categoría.
- Establece restricciones de visibilidad de temas.
- Usa controles de acceso basados en grupos para el contenido.
- Asegúrate de que los recursos privados requieran autenticación.
Mejores prácticas para administradores:
Configura por separado los permisos de seguridad de las categorías vinculadas y la membresía de grupos. Por ejemplo: un enlace del menú a una categoría privada debe tener los permisos de esa categoría configurados correctamente. Los administradores son responsables de asegurarse de que los enlaces a recursos externos estén autorizados adecuadamente para los grupos seleccionados.
Este fue un proyecto colaborativo con @Moin; sus aportes, inspiración y comentarios fueron invaluables.
Consulta mis otros proyectos de Discourse







