Этот компонент позволяет перенаправлять пользователей в любое место после входа в систему, а также добавлять приветственный баннер на страницу групп (/g).
Установить этот компонент темы
Он создан так, что обе части работают независимо: вы можете перенаправлять пользователей куда угодно или использовать его только для отображения баннера на странице групп. По умолчанию новые пользователи перенаправляются на страницу групп, где приветственный баннер предлагает им присоединиться к группам, чтобы помочь им взаимодействовать с вашим сообществом.
Вы также можете использовать этот компонент для перенаправления пользователей с определённым уровнем доверия на определённую страницу при входе, а также пользователей, которые присоединились к меньшему количеству групп, чем вы указали.
Перенаправление при первом входе
Компонент темы для Discourse, который перенаправляет пользователей без членства в группах на пользовательскую страницу и отображает настраиваемый приветственный баннер.
Возможности
- Умное перенаправление — перенаправляет пользователей без членства в группах на пользовательскую страницу при входе
- Настраиваемый баннер — красочный приветственный баннер на странице групп
- Полная настраиваемость — возможность независимо включать/отключать перенаправление и баннер
- Логика на основе групп — перенаправление прекращается, как только пользователь присоединяется к любой группе
- Учёт уровня доверия — видимость баннера может быть ограничена уровнем доверия
- Радужный градиент — привлекающий внимание фон из 6 цветов (с возможностью переключения на сплошной цвет)
- Адаптивность для мобильных устройств — баннер адаптируется под экраны мобильных устройств
Установка
-
В консоли администратора Discourse перейдите в Настроить → Темы → Компоненты и нажмите Установить
-
Выберите Из репозитория Git и вставьте:
https://github.com/focallocal/first-login-redirect -
После установки добавьте компонент в вашу активную тему
Как это работает
Логика перенаправления
- Проверяет, является ли пользователь членом какой-либо группы
- Определяет момент перехода на главную страницу
- Перенаправляет пользователя на настроенный URL (по умолчанию:
/g) - Прекращает перенаправление, как только пользователь присоединится к любой группе
- Может быть отключено независимо от баннера
Приветственный баннер
- По умолчанию отображается на индексной странице групп (
/g) - Видимость контролируется настройками уровня доверия
- Может быть отключено независимо от перенаправления
- Автоматически скрывается, когда пользователь достигает уровня доверия 1
- Размещается в верхней части списка групп с помощью выхода
before-groups-index
Настройка
Настройки темы (панель администратора)
Все настройки можно выполнить в панели администратора Discourse без редактирования кода!
- Перейдите в Администрирование → Настроить → Темы
- Нажмите на вашу тему, включающую этот компонент
- Перейдите в Настройки и найдите раздел «Перенаправление при первом входе»
Доступные настройки:
Настройки перенаправления:
- Включить перенаправление: Включить/выключить функцию перенаправления (по умолчанию: 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



