Теперь в бета-версии: плагин для просмотра прогресса TL3 пользователями TL2

Всем привет! За последние несколько дней я попробовал свои силы в реализации идеи из темы Allow users to see trust level 3 progress on user profile с помощью плагина.

Вот текущая версия плагина:

Для отображения шкал я использую замечательную библиотеку Gauge.js. Раньше это была просто обычная прямоугольная полоса, но мне показалось, что это слишком скучно.

Настройки:

  • Цвет полосы прогресса: цвет самой полосы (по умолчанию зелёный, как на картинке выше)
  • Цвет фона полосы прогресса: цвет фона полосы (по умолчанию светло-серый, как на картинке выше)
  • Иконка кнопки модального окна (по умолчанию circle-info)

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

Есть ли у вас какие-либо отзывы? Нашли баги? Есть идеи по улучшению? Буду рад услышать ваши мнения!

Отличная реализация.

Несколько предложений:

  • Размещайте название каждого элемента прогресса под графикой, а не над ней.
  • Показывайте предполагаемую дату, когда будет достигнут уровень TL3. Для многих пользователей лимитирующим фактором будет требование о 50-дневном участии или необходимость прочитать большое количество сообщений на активном форуме.
  • Для требований, которые могут помешать пользователю получить уровень TL3, включайте четкое объяснение того, как они влияют на соответствие критериям. В противном случае пользователь может выполнить все видимые требования, лишь чтобы обнаружить, что окно соответствия критериям остается закрытым из-за таких факторов, как «Замолчан (за последние 6 месяцев)», применяемых, например, потому что его первое сообщение было отправлено с телефона, и спам-бот его замолчал.

Форумы, которые включают эту функцию, должны быть предупреждены о том, что она может значительно увеличить количество пользователей уровня TL3.

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

То, что изначально кажется привлекательным, может превратиться в кошмар для модераторов, если администраторы форума не осведомлены о возможных последствиях. :grinning_face:

Отличная работа! Это довольно крутая реализация, и мне нравится, как это выглядит.

Мне не очень нравится, насколько большая и навязчивая эта кнопка. Лично я, вероятно, добавил бы небольшой значок :information_source: рядом с частью trust level: member в статистике пользователей.

Отличные предложения! Я рассмотрю каждое и подумаю о реализации.

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

Это возвращает меня к точке, которую я уже поднимал ранее:

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

Это отличная идея. Я сам экспериментировал с подобной концепцией (я обожаю геймификацию и прогресс), но воздерживался от её реализации в основном из-за

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

Тем не менее, мне нравится, когда прогресс виден, так что, возможно, можно найти какой-то компромисс? Показывать, насколько далеко продвинулся пользователь, не указывая при этом явно, что именно нужно сделать?

Интересно, рассматривали ли вы возможность отображения некоторого статуса прямо в профиле, вместо того чтобы прятать всё за кнопкой?

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

Или, если вы всё же хотите дать пользователям возможность «гнаться» за целями, можно даже указать, какое требование ближе всего к выполнению:

Другие замечания:

Это выглядит немного бессмысленно.

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

Хорошая работа, с нетерпением жду финальной версии!

Есть ли в ядре какой-то индикатор прогресса, который можно использовать? Я пытался поискать, но ничего не нашёл.

Что касается скрытия его за кнопкой, я думаю, это возможно:

  • Показывать общий прогресс-бар в профиле (например, 60%)
  • Если включена соответствующая настройка, пользователи смогут нажать, чтобы увидеть более детальную разбивку их прогресса.

Нет, ничего готового из коробки. Ближайший вариант, который приходит на ум, — это то, что мы используем в переработанной админ-панели, но это визуальные элементы в виде полос, а не переиспользуемый компонент (и он не сегментирован).

Исходя из моего личного опыта в одной конкретной ситуации, полезным элементом процесса было сохранение человеческого контроля.

Как обычный пользователь, я мог отслеживать ежемесячные результаты каждого участника. Это помогало выявлять пользователей, которые были постоянно активны и эффективно помогали другим на форуме.

Поскольку у меня также был доступ к статистике уровней доверия, я начинал чаще отслеживать прогресс пользователя, как только он достигал примерно 90% требований для Уровня доверия 3. Если становилось ясно, что пользователь, скорее всего, получит TL3, но ему не хватало одного или нескольких требований, и при этом у него не было количественной информации о том, чего от него ожидают и насколько он близок к цели, я отправлял ему личное сообщение с обновлением.

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


:+1:

Хорошо, я изменил несколько вещей, что вы думаете?

Если вы включите Show verbose TL3 progress:

Думаю, я могу выровнять все полосы, чтобы это выглядело аккуратнее.

Очень хороший прогресс (поняли отсылку? :winking_face_with_tongue:)

Да, это будет выглядеть приятно, особенно если выровнять счёт по правому краю для лучшей читаемости :folded_hands:

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

Некоторые требования используют скользящее окно. Например, «Дней посещений» основывается не на общем количестве посещений за всё время пользователя; оно рассчитывается за предыдущие 100 дней. Пользователь, который часто посещал сайт в начале этого окна, а затем перестал это делать на некоторое время, может снова начать посещать его каждый день, не наблюдая увеличения значения, поскольку более старые дни посещений одновременно выпадают из окна. Такое поведение может вызывать путаницу без объяснений. :man_shrugging:

Статистика также должна отображать настроенные пороговые значения для требований, значения которых могут быть изменены. Судя по <site>/admin/config/trust-levels, теперь это включает большинство количественных требований.

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

Ещё одной полезной функцией был бы редактируемый персоналом раздел со свободным текстом, описывающий любые специфичные для сайта преимущества, связанные с TL3, помимо разрешений, предоставляемых самим Discourse. Многие сайты не предоставляют дополнительных преимуществ, в этом случае достижение TL3 может сводиться в основном к достижению «был там, сделал это». На других сайтах, однако, дополнительные преимущества могут сделать усилия worthwhile.

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