У нас существует сообщество уже 10 лет, и данные, которые мы собираем через раздел «Настройка/Пользовательские поля», нуждаются в обновлении. Нам нужно добавить новые поля и убрать некоторые — это не составит труда для новых пользователей, однако нам требуется, чтобы существующие пользователи также обновили свои данные.
При следующем входе в систему я хотел бы иметь возможность обязать (не люблю это слово) пользователя обновить поля, прежде чем он сможет продолжить. Или, как минимум, уведомить пользователей о том, что это необходимо сделать к определенной дате, а затем принудительно потребовать обновления.
Каково, по вашему мнению, лучшее решение этой задачи?
Сделать поле «Обязательным для всех пользователей»
В настройках пользовательских полей есть параметры «Показывать на профиле пользователя» и «Требование к полю». Если вы установите для пользовательского поля значение «Обязательно для всех пользователей» (в последних версиях Discourse появилась эта опция), пользователи, пытающиеся сохранить свой профиль или обновить настройки, будут получать запрос на заполнение обязательных полей. Однако это не прерывает обычное просматривание и срабатывает только при входе в настройки пользователя.
Ограничение доступа на основе заполнения пользовательских полей
Создайте группу для пользователей с «заполненным профилем».
Ограничьте категорию только для пользователей с заполненными профилями.
Используйте компонент темы «Заблокированные темы в категории» (Gated Topics in Category), чтобы отображать дружественное сообщение: «Вы не можете получить доступ к этому разделу, пока ваш профиль не будет заполнен. Обновите свой профиль здесь.».
Используйте плагин автоматизации Discourse для отправки сообщений или напоминаний пользователям
Определите пользователей, не заполнивших поля, и отправляйте им напоминания через личные сообщения.
Вы можете легко обновить любой текст интерфейса — просто перейдите в раздел Администрирование → Настройка → Текст сайта в Discourse. Полное руководство см. в официальной документации по настройке текста сайта.