Модальное окно приветствия Discourse

:information_source: Сводка Приветственное модальное окно, помогающее новым или возвращающимся участникам сообщества начать изучение и взаимодействие на форуме с помощью конкретных действий
:eyeglasses: Предпросмотр Theme Creator (Требуется вход в систему)
:hammer_and_wrench: Репозиторий GitHub - noahLovell/discourse-welcome-modal · GitHub
:question: Руководство по установке Как установить тему или компонент темы
:open_book: Новичок в темах Discourse? Руководство для начинающих по использованию тем Discourse

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

:rocket: Зачем это нужно?

Многие сообщества сталкиваются с высоким уровнем регистраций, но испытывают трудности с «оттоком в первый день». Этот компонент снижает когнитивную нагрузку, предоставляя четкие и конкретные пути действий.

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


:camera_flash: Скриншоты

Рабочий стол


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

1. Определения

  • Новые пользователи: Пользователи, зарегистрировавшиеся в дату или после даты feature_enabled_date.
  • Существующие пользователи: Пользователи, зарегистрировавшиеся до даты feature_enabled_date.
  • Активные пользователи: Участники, которые посещают форум регулярно. Пока они не отсутствуют дольше, чем указано в returning_user_inactivity_months, они считаются активными.
  • Возвращающиеся пользователи: Участники, которые ранее были активными, но отсутствовали достаточно долго, чтобы превысить порог returning_user_inactivity_months.

2. Логическая схема

Компонент следует этому списку приоритетов, чтобы не раздражать самых активных участников:

  1. Новая регистрация? Они сразу видят модальное окно (нацелено на card_content, помеченное как new_users или both).
  2. Период льготного периода (для существующих пользователей): Если «существующий пользователь» заходит в течение окна grace_period_months, компонент тихо помечает его как увидевшего. Он не увидит модальное окно, так как логика предполагает, что он сейчас активен и не нуждается в приветствии.
  3. Разрыв неактивности: Как только пользователь помечен как «увидевший» модальное окно (тихо или вручную), компонент отслеживает его посещения локально. Если он заходит ежедневно, он остается активным и больше никогда не увидит окно. Он увидит его снова (как возвращающегося пользователя) только если промежуток между его посещениями превысит настройку returning_user_inactivity_months.

3. Персонализированный контент

Вы можете нацеливать конкретные карточки на определенные группы с помощью настройки displayFor:

  • new_users: Идеально подходит для «Как написать пост» или «Представьтесь».
  • returning_users: Идеально подходит для «Посмотрите, что изменилось, пока вас не было».
  • both: Важные ссылки, такие как правила или FAQ.

:gear: Настройки

Настройка Тип Значение по умолчанию Описание
enabled bool false Глобальный переключатель для компонента.
feature_enabled_date string "2026-02-06" «Линия раздела» между новыми и существующими пользователями (ГГГГ-ММ-ДД).
grace_period_months integer 3 Существующие пользователи, зашедшие в течение этого окна, тихо исключаются.
returning_user_inactivity_months integer 6 «Порог неактивности». Пользователи увидят модальное окно снова только если отсутствовали дольше этого срока.
card_layout enum "grid" Отображать карточки в формате grid (сетка) или list (список).
card_content objects [] Определите карточки и установите displayFor в new_users, returning_users или both.

Тестирование вашей настройки

Используйте эти параметры URL, чтобы обойти логику и просмотреть результат:

  • ?show-welcome-modal=true&user-type=new — Предпросмотр опыта «Нового пользователя».
  • ?show-welcome-modal=true&user-type=returning — Предпросмотр опыта «Возвращающегося пользователя».

Это мой первый настоящий компонент темы :raised_hands: Буду рад получить отзывы о новых функциях сегментации или мысли о том, что еще можно улучшить! :smile:

21 лайк

Привет, @noahl

Как проще всего протестировать это и увидеть плитки, как на ваших демонстрационных изображениях? Существуют ли какие-то конкретные настройки, которые позволили бы администраторам видеть плитки, прежде чем мы сделаем это доступным более широко в среде PORD?

2 лайка

Привет, @marksalter! Ты мой первый «запрос на новую функцию» :raising_hands:

Только что добавил настройку enable, а также параметр запроса для принудительного отображения модального окна — ?show-welcome-modal=true.

Если использовать оба этих элемента вместе, ты сможешь протестировать функционал как администратор, прежде чем включить его для пользователей :slight_smile:

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

6 лайков

Работает как по волшебству! Спасибо, что уделили внимание.

3 лайка

Просто мысль для следующего этапа разработки. Было бы здорово иметь возможность указывать, какие сообщения показывать новым пользователям, а какие — существующим, которые не были активны в течение льготного периода.

Так новые пользователи получали бы приветственные сообщения (перейдите к материалам по началу работы), а существующие — сообщения о новинках (посмотрите на новые функции, категории и прочее..).

4 лайка

Это действительно здорово! Отличная работа :clap:

Что вы думаете насчет удаления подвала? Поскольку там есть призывы к действию и кнопка закрытия, Done кажется немного лишним, но мне интересно ваше мнение.

Отличная идея! Я уже рассматривал это при первом проходе, но решил сохранить первоначальный релиз максимально простым.

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

Как это работает сейчас:

1. Определения

  • Новые пользователи: Зарегистрированы в дату feature_enabled_date или позже.
  • Существующие пользователи: Зарегистрированы до этой даты.
  • Активные пользователи: Участники, посещающие сайт регулярно (в пределах вашего окна неактивности).
  • Вернувшиеся пользователи: Ранее активные участники, которые отсутствовали достаточно долго, чтобы превысить порог неактивности.

2. Логический поток Чтобы не раздражать самых активных участников, компонент следует определенному приоритету:

  • Новая регистрация: Они видят модальное окно сразу (целевая аудитория — карточки с метками new_users или both).
  • Льготный период: Если «существующий пользователь» заходит в течение вашего льготного периода, компонент тихо помечает его как увидевшего сообщение, чтобы не прерывать его.
  • Разрыв неактивности: Как только пользователь помечен как «увидевший», компонент отслеживает посещения локально. Если он заходит ежедневно, он остается активным и больше не видит сообщение. Он увидит его (как вернувшийся пользователь) только если промежуток между его посещениями превысит настройку returning_user_inactivity_months (это новая настройка :slight_smile: )

3. Адаптированный контент Теперь вы можете использовать настройку displayFor для каждой карточки:

  • new_users: Идеально для «Как публиковать» или «Представьтесь».
  • returning_users: Идеально для «Посмотрите, что изменилось, пока вас не было».
  • both: Важные ссылки, такие как Правила или FAQ.

Я также добавил параметры предварительного просмотра, чтобы вы могли легко протестировать эти сценарии: ?show-welcome-modal=true&user-type=new или &user-type=returning.

Спасибо еще раз за напоминание!

3 лайка

@noahl Это здорово!

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

2 лайка