Я работаю над прототипом компонента темы с индикатором прогресса.
Первоначальная цель заключалась в создании индикатора прогресса для пожертвований, который пользователи могли бы видеть на моём форуме, поскольку серверные расходы оплачиваются нашими пользователями через мой аккаунт на ko-fi.com.
Каждый раз, когда происходит пожертвование через Ko-fi, сервис отправляет запрос к написанному мной PHP-скрипту, который, в свою очередь, отправляет запрос в Discourse для обновления текущего значения настройки.
Часть с PHP-скриптом не имеет прямого отношения к самому компоненту, и я хотел бы создать компонент, который можно было бы использовать для множества других целей.
У меня нет достаточных знаний для создания сложного компонента, но я думаю, что это может заинтересовать некоторых других участников здесь. Поэтому, если вы придумаете интересные функции или знаете код лучше меня и считаете, что его можно улучшить и сделать более эффективным, не стесняйтесь участвовать
Добавлять HTML-код над или под индикатором прогресса.
Изменять ширину компонента и высоту индикатора прогресса.
И индикатор прогресса, и числа настраиваются через CSS.
Числа используют CSS-свойство content, потому что я не знал, как обновлять их в реальном времени другим способом.
Что я хотел бы добавить:
Автоматически отключать или скрывать компонент при достижении целевой суммы.
Описания для каждой настройки.
Мне кажется, что код не соответствует «стилю программирования Discourse». В нём не используется ничего из Discourse. Я не имею в виду, что это обязательно, но, возможно, существует более чистый способ реализации, который также позволит использовать существующие методы Discourse для текущих или будущих функций.
Если вам интересен такой компонент, пожалуйста, не стесняйтесь делиться своим мнением
Это отличная идея и функция, которая могла бы отлично работать во множестве приложений.
У меня есть вопросы:
Можно ли размещать индикатор прогресса в постах и в других местах?
Можно ли размещать несколько индикаторов прогресса одновременно для нескольких кампаний по сбору средств?
По сути, то, что вы, похоже, потенциально создаете здесь, — это встроенная возможность сбора средств, аналогичная GoFundMe, для любой установки Discourse.
В теории это могло бы быть доступно и другим пользователям. Например, если экземпляр Discourse захочет создать категорию типа «поддержите меня/мой проект».
Я, вероятно, не буду много работать над этим компонентом темы, возможно, только постараюсь поддерживать его работоспособность каждый год, когда включаю сбор пожертвований. Именно поэтому я не создал тему #theme-component по этому поводу.
Кроме того, я думаю, что обновление полосы прогресса в реальном времени больше не работает. Я не проверял, но:
Если достаточно много (или компетентных) людей найдут полосу прогресса полезной, я рекомендую им создать форк или совершенно новый компонент с новыми функциями.
Спасибо за быстрый ответ. У меня есть несколько сценариев использования этого, если бы оно было ближе к готовности для продакшена. Это была бы крутая фича.