| Краткое описание | Создание пользовательских боковых меню для выбранных групп | |
| Предпросмотр | Присоединитесь к группе создателей тем, а затем просмотрите здесь | |
| Репозиторий | https://github.com/Lillinator/discourse-group-sidebar-menus | |
| Руководство по установке | Как установить тему или компонент темы |
Установить этот компонент темы
Обзор
Этот компонент темы Discourse предоставляет администраторам форумов возможность создавать пользовательские боковые меню, доступные только членам выбранных групп.
Ключевые особенности:
- Отображение меню на основе групп — разделы меню отображаются в боковой панели только для авторизованных пользователей
- Конфигурация на основе объектов — удобный интерфейс настроек для создания меню
- Несколько разделов — создание неограниченного количества разделов меню для разных групп (в разумных пределах)
- Быстрая ссылка для редактирования администратором — иконка карандаша в заголовках меню ведет администраторов напрямую к настройкам компонента
Примеры использования
- Ресурсы и быстрые ссылки только для сотрудников
- Ярлыки для модераторов категорий
- Пользовательские порталы групп (проектные команды, учебные группы, книжные клубы, VIP-участники)
- Ссылки на ресурсы родительского или партнерского веб-сайта
Настройки
Разделы меню (menu_sections)
Открывает редактор настроек объектов для конфигурации пользовательских разделов меню групп.
Свойства раздела
| Свойство | Описание |
|---|---|
| Заголовок меню | Заголовок, отображаемый как заголовок раздела боковой панели |
| Разрешенные группы | Группы, которым разрешено просматривать этот раздел меню (максимум: 20 групп на раздел) |
| Ссылки меню | Коллекция ссылок для отображения в этом разделе (максимум: 20 ссылок на раздел) |
Свойства ссылки
| Свойство | Описание |
|---|---|
| Иконка | Название иконки FontAwesome (например, circle-info, star, user-group). Возможно, потребуется добавить её в Admin > Все настройки сайта > подмножество svg-иконки |
| Текст | Отображаемая метка для ссылки |
| URL | Адрес назначения ссылки — поддерживает как относительные пути (/faq, /my/preferences), так и абсолютные URL-адреса (https://example.com) |
Установка и конфигурация
- Установите компонент темы согласно инструкции: Installing a theme or theme component.
- Перейдите в
Редактор настроек объектов. - Нажмите кнопку
+ new_menu_section, чтобы настроить первый пользовательский раздел меню. - Задайте новый раздел меню заголовок в поле
Menu title, а затем выберите группы, которым должен быть предоставлен доступ к нему. - Нажмите
+ new_menu_section, чтобы добавить еще один раздел, или сохраните изменения.
Скриншоты конфигурации администратора с примером настройки
Свежая установка — перейдите в Редактор настроек объектов.
Пример сценария с двумя пользовательскими меню и тремя пользователями, один из которых администратор:
@Catraлюбит кошек и является членом группыpink, которая будет иметь доступ к меню «Кошки»@HelloKittyлюбит собак и является членом группыpurple, которая будет иметь доступ к меню «Собаки»@Lillyявляется членом группыpurple, потому что у неё есть собака, а собаки лучше. Однако она также является администратором форума, и администраторы будут иметь доступ к меню «Кошки», потому что кошкам нужен больший надзор![]()
Создайте новое пользовательское меню — для нашего примера создайте «Меню кошек» и добавьте группы, которым разрешен доступ к нему — pink и admins. Затем нажмите кнопку + menu_link, чтобы настроить ссылки для нового меню.
Добавьте ссылки меню — 1. Название иконки Fontawesome, 2. текст для отображения ссылки и 3. URL, относительный или абсолютный. Нажмите кнопку + menu_link, чтобы добавить еще одну ссылку в это меню.
Создайте еще один пользовательский раздел меню под названием «Меню собак», предоставьте доступ только группе purple и настройте ссылки:
Скриншоты доступа к боковому меню в результате
Пользователь @Catra видит меню «Кошки»! ![]()
Пользователь @HelloKitty видит меню «Собаки»! ![]()
Администратор @Lilly видит оба меню и может их редактировать! ![]()
Пример конфигурации
Заголовок меню: "Кошачьи дела"
Разрешенные группы: team-cat
Ссылки:
- Иконка: link
Текст: Видео и фото с кошками
URL: /t/cat-videos-and-photos/123
- Иконка: magnifying-glass
Текст: Википедия о кошках
URL: https://en.wikipedia.org/wiki/Cat
Важные замечания
Доступ администратора
Администраторы должны добавлять себя в группы, чтобы видеть меню, настроенные для этих групп. Сам статус администратора не предоставляет доступа ко всем пользовательским меню. Это сделано намеренно! Кроме того, администраторы, состоящие в разрешенных группах меню, увидят иконку карандаша в заголовке раздела, ведущую к настройкам компонента.
Конфигурация групп
- Группа
everyoneне поддерживается — используйте встроенный интерфейс нижнего колонтитула боковой панели для создания глобальных пользовательских меню для всех пользователей, включая анонимных посетителей. - Максимум 20 групп на раздел меню. Если вам нужно больше, создайте дублирующие разделы с разными назначениями групп.
- Пользователи, состоящие в нескольких группах, увидят все разделы меню, к которым у них есть доступ.
Тестирование и организация
Используйте тестовые учетные записи для проверки правильного доступа для различных комбинаций групп. Ведите учет конфигураций вашего меню, чтобы избежать путаницы по мере роста сложности; для крупных форумов с множеством групп рекомендуется использовать матрицу доступа или аналогичную документацию.
Вопросы безопасности
Этот компонент обеспечивает контроль доступа только на уровне интерфейса. Он управляет видимостью меню, а не доступом к ресурсам — этот компонент контролирует только то, что отображается в боковой панели, а не то, кто может получить доступ к фактическим ресурсам.
Всегда полагайтесь на встроенную систему разрешений Discourse для защиты реальных ресурсов:
- Правильно настройте разрешения категорий
- Установите ограничения видимости тем
- Используйте контроль доступа на основе групп для контента
- Убедитесь, что для доступа к приватным ресурсам требуется аутентификация
Рекомендуемая практика для администраторов:
Настройте разрешения безопасности связанных категорий и членство в группах отдельно — например, ссылка меню на приватную категорию должна иметь правильно настроенные разрешения этой категории. Администраторы отвечают за обеспечение того, чтобы ссылки на внешние ресурсы были надлежащим образом авторизованы для выбранных групп.
Это был совместный проект с @Moin — её вклад, вдохновение и отзывы были неоценимы.
Посмотрите мои другие материалы по Discourse







