Организатор категорий боковой панели

Я создал органайзер боковой панели. Некоторое время назад по этому поводу было много обсуждений, и некоторые считали, что он не нужен, но я всегда считал, что мои пользователи не очень технически подкованы или недостаточно хорошо разбираются в работе форума в начале, поэтому я сделал этот выпадающий органайзер для помощи.

Установить этот компонент темы

Вверху есть небольшой переключатель, чтобы пользователи могли переключаться между стандартным видом и этим, выбирая тот, который им больше нравится. Я добавил его, потому что считаю, что многие опытные пользователи захотят настроить свою навигационную боковую панель, но большинство новых пользователей — нет.

Органайзер категорий боковой панели

Компонент темы Discourse, который организует категории боковой панели в настраиваемые сворачиваемые цветные секции с расширенными функциями.

Возможности

  • 10 сворачиваемых секций: Группируйте категории до 10 пользовательских секций
  • Настраиваемые цвета: Устанавливайте цвета фона и текста для заголовков каждой секции
  • Градиентные фоны: Опциональный эффект градиентного затухания, как на фото
  • Значки категорий: Стандартные цветные значки Discourse рядом с категориями можно включать и выключать
  • Поддержка подкатегорий: Переключатель для каждой секции для показа/скрытия подкатегорий (отступы)
  • Скрытие категорий: Скрытие определенных категорий из всех представлений
  • Двунаправленный переключатель: Переключение между пользовательскими секциями и стандартным видом Discourse (кнопка переключения отображается в обоих видах)
  • Сохранение состояния: Запоминает, какие секции открыты/закрыты, и предпочтение пользователя
  • Учет прав доступа: Отображает только те категории, к которым у пользователя есть доступ
  • Несгруппированные категории: Автоматически отображает любые категории без назначения в отдельной секции
  • Адаптивность для мобильных устройств: Работает на всех размерах устройств

Установка

  1. Перейдите в Администрирование → Настройка → Темы в вашем экземпляре Discourse
  2. Нажмите УстановитьИз репозитория Git
  3. Введите: https://github.com/focallocal/sidebar-categories-organizer
  4. Нажмите Установить
  5. Добавьте компонент в вашу активную тему

Настройка

Глобальные настройки

  • Включить органайзер боковой панели: Включение/выключение пользовательского вида
  • Показать кнопку переключения: Отображение иконки :open_file_folder: для переключения между видами (появляется в заголовках как пользовательского, так и стандартного вида)
  • Показывать значки категорий: Отображение цветных квадратов рядом с названиями категорий
  • Использовать градиентное затухание: Включение эффекта градиентного фона на заголовках секций (50% сплошной цвет, 50% затухание до прозрачности)
  • Категории для скрытия: Список слогов категорий через запятую для скрытия из всех представлений (например, staff,private)
  • Вид по умолчанию: Выбор вида, который загружается по умолчанию (пользовательский или стандартный)

Настройки секций (1-10)

Каждая секция имеет:

  • Включено: Переключение секции вкл/выкл
  • Заголовок: Текст заголовка секции
  • Цвет фона: Выбор цвета фона заголовка секции
  • Цвет текста: Выбор цвета текста заголовка
  • Категории: Список слогов категорий через запятую (например, general,support,feedback)
  • Показывать подкатегории: Переключение для показа/скрытия подкатегорий в этой секции
  • По умолчанию открыто: Начинается ли секция развернутой или свернутой

Поиск слогов категорий

Слоги категорий находятся в URL:

  • yoursite.com/c/general/5 → слог: general
  • yoursite.com/c/feature-requests/12 → слог: feature-requests

Использование

После установки и настройки:

  1. Пользовательский вид: Категории сгруппированы в настроенные секции с цветными заголовками
  2. Развернуть/Свернуть: Нажмите на заголовок секции, чтобы переключить видимость содержимого
  3. Переключение видов: Нажмите на иконку :open_file_folder: в заголовке для переключения между пользовательским и стандартным видами
    • В пользовательском виде: кнопка переключения появляется в заголовке пользовательского вида
    • В стандартном виде: кнопка переключения появляется в стандартном заголовке «Категории»
  4. Подкатегории: При включении для секции подкатегории отображаются с отступом ниже родительских категорий
  5. Значки категорий: Маленькие цветные квадраты (если включены) показывают цвет каждой категории
  6. Несгруппированные категории: Любые категории, не назначенные секциям, отображаются в разделе «Другие категории»
  7. Настройки: Ваш выбор вида и состояние открытости/закрытости сохраняются для каждого браузера

Расширенные функции

Градиентные фоны

При включении заголовки секций используют плавный градиент:

  • 50% сплошной цвет (ваш выбранный цвет фона)
  • 50% затухание до прозрачности
  • Создает современный и стильный вид

Скрытие категорий

Укажите слоги категорий для полного скрытия из боковой панели:

  • Полезно для категорий только для сотрудников или устаревших категорий
  • Применяется как к пользовательскому, так и к стандартному виду
  • Список через запятую (например, staff,private,archived)

Подкатегории

  • Переключение для каждой секции (не глобально)
  • Отображение с отступом и шрифтом немного меньшего размера
  • Уменьшенная непрозрачность для визуальной иерархии
  • Сохраняет цвета значков категорий

Версия

  • Текущая: 1.0.1
  • Минимальная версия Discourse: 3.3.0
  • Автор: Andy@Focallocal

Лицензия

Лицензия MIT — см. файл LICENSE

Поддержка

Сообщить об ошибках: Issues · focallocal/sidebar-categories-organizer · GitHub

9 лайков

Отличная работа :clap:

Совет по настройкам категорий

Вместо того чтобы заставлять администраторов вводить слоганы категорий, вы можете использовать это в вашем файле settings.yml, например:

categories_to_hide:
  type: list
  list_type: category
  default: ""
  description:
    en: "Categories to hide from sidebar completely."

Это создаст настройку, похожую на эту:

Вы также можете сделать то же самое с группами, если захотите создать выпадающий список групп:

groups_this_setting_applies_to:
  type: list
  list_type: group
  default: ""
  description:
    en: "Groups this setting will apply to."

Это создаст что-то вроде этого:

7 лайков

Мне это очень нравится, и это действительно то, о чём я уже думал, так что спасибо!

Вопрос: если у пользователя нет доступа ни к одной категории в определённом разделе, отображается ли сам раздел пользователю?

2 лайка

Да, так и есть:

@Drew-ART Не должно ли условие там выглядеть как !currentUser || cat.read_restricted?

3 лайка

Нет, категория/подкатегория скрыта, если у пользователя нет к ним доступа. Вы также можете вручную скрыть любые из них через настройки.

1 лайк

Спасибо, Лилли. Я обновлю это и свои другие недавние компоненты, чтобы сделать их лучше.

2 лайка

Компонент обновлён: теперь в нём есть прекрасные выпадающие селекторы категорий.

3 лайка

Понятно, эту часть я уяснил — но речь идёт о самом разделе, а не просто о категории.

Например, если у меня такая структура:

Животные

  • Коты
  • Собаки

Облака

  • Нимбус
  • Кумулюс

Дни недели

  • Суббота
  • Воскресенье

Допустим, у пользователя нет доступа ни к категории «Нимбус», ни к категории «Кумулюс». Будет ли раздел «Облака» всё ещё отображаться у пользователя, но без категорий, вот так:

Животные

  • Коты
  • Собаки

Облака

Дни недели

  • Суббота
  • Воскресенье

Или раздел «Облака» вообще не будет отображаться, вот так:

Животные

  • Коты
  • Собаки

Дни недели

  • Суббота
  • Воскресенье
2 лайка

Если у пользователя нет прав на просмотр каких-либо категорий в разделе, весь раздел (вкладка) будет скрыт.

3 лайка

Это довольно круто!

Заставляет меня переосмысливать идеи, ха-ха.

Я рассматриваю возможность использования плагина Doc Categories для создания пользовательских разделов с тематическими меню. Но нужно немного доработать его, чтобы добавить возможность выбора цветов и иконок.

В Markdown есть способ добавить компонент «Установить» в Op.

Что-то изменилось в Meta? На Android здесь не получается выделить текст для цитирования. - О, кажется, проблема решена.

1 лайк

Привет, Лили, не могла бы ты прислать Markdown для «Установка компонента»?

Вот один для этого компонента:

Установить этот компонент темы

Формат Markdown (замените repoName и repoUrl):

[wrap=theme-install-button repoName="Название компонента" repoUrl="Ссылка на репозиторий GitHub"]
Установить этот компонент темы
[/wrap]
2 лайка

Спасибо, Нейт. Пытался поискать, но, возможно, использовал слишком общие термины. :joy:

1 лайк

О, я не уверен, что это где-то упоминается. Я убрал это из шаблона темы #theme-component :wink:.

1 лайк

Это, безусловно, круто. Meta, возможно, стоит рассмотреть и другие TC zOp, так как они позволяют автоматически вставлять шаблон при создании темы. :wink: