Перенаправление при входе и/или компонент баннера страницы группы

Этот компонент позволяет перенаправлять пользователей в любое место после входа в систему, а также добавлять приветственный баннер на страницу групп (/g).

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

Он создан так, что обе части работают независимо: вы можете перенаправлять пользователей куда угодно или использовать его только для отображения баннера на странице групп. По умолчанию новые пользователи перенаправляются на страницу групп, где приветственный баннер предлагает им присоединиться к группам, чтобы помочь им взаимодействовать с вашим сообществом.

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

Перенаправление при первом входе

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

Возможности

  • Умное перенаправление — перенаправляет пользователей без членства в группах на пользовательскую страницу при входе
  • Настраиваемый баннер — красочный приветственный баннер на странице групп
  • Полная настраиваемость — возможность независимо включать/отключать перенаправление и баннер
  • Логика на основе групп — перенаправление прекращается, как только пользователь присоединяется к любой группе
  • Учёт уровня доверия — видимость баннера может быть ограничена уровнем доверия
  • Радужный градиент — привлекающий внимание фон из 6 цветов (с возможностью переключения на сплошной цвет)
  • Адаптивность для мобильных устройств — баннер адаптируется под экраны мобильных устройств

Установка

  1. В консоли администратора Discourse перейдите в Настроить → Темы → Компоненты и нажмите Установить

  2. Выберите Из репозитория Git и вставьте:

    https://github.com/focallocal/first-login-redirect
    
  3. После установки добавьте компонент в вашу активную тему

Как это работает

Логика перенаправления

  • Проверяет, является ли пользователь членом какой-либо группы
  • Определяет момент перехода на главную страницу
  • Перенаправляет пользователя на настроенный URL (по умолчанию: /g)
  • Прекращает перенаправление, как только пользователь присоединится к любой группе
  • Может быть отключено независимо от баннера

Приветственный баннер

  • По умолчанию отображается на индексной странице групп (/g)
  • Видимость контролируется настройками уровня доверия
  • Может быть отключено независимо от перенаправления
  • Автоматически скрывается, когда пользователь достигает уровня доверия 1
  • Размещается в верхней части списка групп с помощью выхода before-groups-index

Настройка

Настройки темы (панель администратора)

Все настройки можно выполнить в панели администратора Discourse без редактирования кода!

  1. Перейдите в Администрирование → Настроить → Темы
  2. Нажмите на вашу тему, включающую этот компонент
  3. Перейдите в Настройки и найдите раздел «Перенаправление при первом входе»

Доступные настройки:

Настройки перенаправления:

  • Включить перенаправление: Включить/выключить функцию перенаправления (по умолчанию: true)
  • Минимальное количество групп: Сколько созданных пользователем групп он должен присоединиться, чтобы перенаправление прекратилось (по умолчанию: 1)
    • Автоматические группы (например, trust_level_0, everyone) не учитываются
  • URL перенаправления: Куда отправлять пользователей без групп (по умолчанию: /g)
    • Примеры: /g (группы), /categories, /about, /latest

Настройки баннера:

  • Показывать баннер: Включить/выключить баннер (по умолчанию: true)
  • Минимальный уровень доверия: Минимальный уровень доверия для отображения баннера (0–4, по умолчанию: 0)
  • Максимальный уровень доверия: Максимальный уровень доверия для отображения баннера (0–4, по умолчанию: 4)
  • Заголовок баннера: Основной крупный текст
  • Подзаголовок баннера: Меньший поясняющий текст

Типографика:

  • Размер шрифта заголовка: Размер основного заголовка (по умолчанию: 2.5em)
  • Размер шрифта подзаголовка: Размер подзаголовка (по умолчанию: 1.25em)
  • Тень текста: Включить/выключить тень текста для читаемости
  • Свечение текста: Включить/выключить эффект внешнего свечения

Цвета:

  • Использовать градиент: Включить/выключить градиент (если выключено, используется сплошной цвет)
  • Цвет градиента 1–6: Настроить каждый цвет в градиенте
    • По умолчанию: Розовый → Оранжевый → Жёлтый → Зелёный → Голубой
    • Установите «Использовать градиент» в положение ВЫКЛ для сплошного цвета, используя Цвет 1

Макет:

  • Отступ баннера: Внутреннее пространство баннера (по умолчанию: 3rem 2rem)
  • Радиус границы: Закругление углов (по умолчанию: 12px, используйте 0 для квадратных углов)


Примеры

Показывать только для TL0 (новые пользователи):
Установите Минимальный уровень доверия = 0, Максимальный уровень доверия = 0

Показывать всем, кроме администраторов:
Установите Минимальный уровень доверия = 0, Максимальный уровень доверия = 3

Баннер сплошного цвета:
Выключите «Использовать градиент» и установите Цвет 1 в желаемый цвет (например, #FF5722 для оранжевого).

Двухцветный градиент:
Включите «Использовать градиент» и установите цвета 1–3 в один цвет, а цвета 4–6 в другой.

Увеличенный текст:
Установите заголовок в 3em, а подзаголовок в 1.5em.

Без эффектов:
Отключите и «Тень текста», и «Свечение текста» для плоского текста.

Отключение перенаправления (только баннер)

Удалите или закомментируйте файл:
javascripts/discourse/api-initializers/first-login-redirect.js

Изменение требования уровня доверия

В обоих файлах инициализаторов измените:

currentUser.trust_level === 0

на:

currentUser.trust_level <= 1  // TL0 и TL1

Технические детали

  • Версия API: 1.8.0 (современный API Discourse)
  • Тип компонента: Компонент Glimmer с тегом шаблона
  • Плагин выхода: before-groups-index
  • Совместимость: Discourse 2.8.0+

Устранение неполадок

В: Перенаправление не работает
О: Очистите sessionStorage вашего браузера и протестируйте с новой учётной записью уровня доверия 0

В: Баннер не отображается при тестировании
О: Убедитесь, что вы находитесь на маршруте /g и вошли как пользователь TL0, или проверьте значения, установленные в админ-панели. Проверьте консоль браузера на наличие ошибок.

В: Цикл перенаправления
О: Проверка sessionStorage должна предотвратить это. Если это происходит, очистите кэш браузера и sessionStorage.

Лицензия

MIT — Public Happiness Movement

1 лайк