Хорошо, переустановка для обновлений не требуется, но я переустановил, потому что это не работало. Новый репозиторий тоже не работает.
Итак, чтобы прояснить: вы смогли обновить компонент, но это не решило вашу проблему? Затем вы удалили старый компонент и установили новый из репозитория?
У меня он работает без сбоев на двух разных экземплярах Discourse. Убедитесь, что вы:
- Добавили компонент в правильную тему
- Обновили страницу после добавления компонента
- Настроили все параметры в соответствии с вашими потребностями
Да, именно так.
- Я добавил его в свою основную тему
- Обновил страницу
- Настройки выполнены
Результат:
![]()
Я почти уверен, что разобрался.
Я совсем забыл вернуться к этому вопросу
Я только что отправил коммит, который должен решить вашу проблему. Дайте знать, если столкнётесь с другими проблемами.
Оно не отображалось в разделе «Доступные для обновления компоненты», поэтому я удалил его и установил из
GitHub - discourse/discourse-post-badges
Теперь оно работает как задумано.
Спасибо — это было очень быстро!
Осталось никаких проблем. Спасибо.
@tshenry Это перестало работать ![]()
Весь компонент или вы вернулись к исходной проблеме, когда та настройка не работала? Я только что всё проверил (в том числе с неанглийской локалью), и всё выглядит исправно. Мне нужно больше деталей, пожалуйста ![]()
Нет, на этот раз оно полностью перестало работать.
Думаю, я понял, почему оно перестало работать. Названия моих значков на турецком языке. Я сменил язык с турецкого на английский. Теперь я вернул его обратно на турецкий, и всё работает.
Круто. Это ожидаемое поведение, по крайней мере пока. Я не думаю, что есть способ избежать этого при вводе значка в настройках по его имени. Я рассмотрю возможность добавить дополнительную поддержку ввода значка по ID, чтобы сделать систему ещё более независимой от локали, но до этого ещё далеко.
Предупреждение: ниже приведены 10 самых частых запросов за последние несколько часов на сайте, использующем этот компонент темы.
Сайт стал работать очень медленно, что привело к масштабным ограничениям частоты запросов, зависанию браузеров и множеству жалоб.
214163 GET /user-badges
29537 POST /message-bus
14166 GET /assets
13425 GET /user_avatar
10125 GET /stylesheets
8957 GET /theme-javascripts
8131 GET /images
7160 GET /letter_avatar
2992 POST /topics
2845 GET /t
Да, мы в курсе этого и планируем улучшить ситуацию.
Не знаю, связано ли это с этим, но в последнее время при клике на ссылки, ведущие на страницу значков, у меня возникает много ошибок. Я создал сводную страницу для пользовательских значков каждого пользователя (с соответствующим эмодзи), и при последовательном клике на несколько ссылок, таких как [:z133:](/badges/133/-?username=user_name), возникает ошибка:
Лог:
Сообщение
Необработанная ошибка TypeError: невозможно прочитать свойство 'users' у undefined
URL: https://discourse.forum.tld/assets/ember_jquery-57d09ec67e9e407d9b0d42aa1fefd1a470c45310d953b07793a3ca8adc6ec599.js
Строка: 1
Колонка: 267440
Расположение окна: https://discourse.forum.tld/t/topic-slug/id
Трассировка стека
TypeError: невозможно прочитать свойство 'users' у undefined
at https://discourse.forum.tld/assets/plugins/discourse-presence-e4fe1148b25ac06931c3b78b8411907e35aef58f8dd5ac28a262cdd28fb6e51d.js:1:5982
at E (https://discourse.forum.tld/assets/ember_jquery-57d09ec67e9e407d9b0d42aa1fefd1a470c45310d953b07793a3ca8adc6ec599.js:1:547359)
at https://discourse.forum.tld/assets/ember_jquery-57d09ec67e9e407d9b0d42aa1fefd1a470c45310d953b07793a3ca8adc6ec599.js:1:547817
at t.invoke (https://discourse.forum.tld/assets/ember_jquery-57d09ec67e9e407d9b0d42aa1fefd1a470c45310d953b07793a3ca8adc6ec599.js:1:490065)
at e.t.flush (https://discourse.forum.tld/assets/ember_jquery-57d09ec67e9e407d9b0d42aa1fefd1a470c45310d953b07793a3ca8adc6ec599.js:1:489055)
at e.t.flush (https://discourse.forum.tld/assets/ember_jquery-57d09ec67e9e407d9b0d42aa1fefd1a470c45310d953b07793a3ca8adc6ec599.js:1:491070)
at e.t._end (https://discourse.forum.tld/assets/ember_jquery-57d09ec67e9e407d9b0d42aa1fefd1a470c45310d953b07793a3ca8adc6ec599.js:1:496499)
at e.t.end (https://discourse.forum.tld/assets/ember_jquery-57d09ec67e9e407d9b0d42aa1fefd1a470c45310d953b07793a3ca8adc6ec599.js:1:493035)
at e.t._run (https://discourse.forum.tld/assets/ember_jquery-57d09ec67e9e407d9b0d42aa1fefd1a470c45310d953b07793a3ca8adc6ec599.js:1:497037)
Окружение
HTTP HOSTS: discourse.forum.tld
Я использую ссылки во всех описаниях для пользовательских значков следующим образом:
Описание значка, за которым следует ссылка <a href="/t/topic-slug/id#heading--detailed-descrption-topic">➥</a>
которая ведёт на тему с подробным описанием значка. Это отлично работает на странице значков, но пользователи путаются из-за кодов HTML, которые отображаются во всплывающих подсказках значков в постах:
Если бы теги якоря <a href=...>Описание</a> удалялись из всплывающей подсказки, оставляя только описание, это, вероятно, решило бы большинство случаев использования.
Случайно, это уже исправлено в 2.5.X?
@tshenry Я нашел обходной путь, который позволяет избежать множественных запросов для загрузки данных пользователя. Я использовал его в этом компоненте темы: GitHub - jahan-ggn/discourse-trust-level-title-on-posts · GitHub
Что вы думаете?
Этот компонент вызывает ошибки JavaScript при использовании новых сочетаний клавиш для перехода к предыдущей/следующей теме, которые Сэм добавил в ядро (отличная работа). Поведение немного непредсказуемо, но ошибку можно воспроизвести последовательно, используя сочетание клавиш для перехода к следующей теме, пока она не появится. Если удалить этот компонент, ошибка никогда не возникает.
Строка 27516
Как работает это решение на данный момент? Кто-нибудь уже подверг его тщательной проверке? ![]()
Просто для сведения: я отслеживаю все ваши отзывы, но работа над этим компонентом была менее приоритетной, пока мы ждем улучшений, о которых упоминал @sam.
Я пока не пробовал, но кажется, что для отображения значков уровней доверия вполне можно использовать похожий подход. Улучшения, о которых говорил Сэм, потребуются для значков, не связанных с уровнями доверия.
Было бы полезно узнать, как люди используют этот компонент, или хотя бы как они хотели бы его использовать.
- Значки уровней доверия
- Другие значки
- Комбинацию обоих типов
Если интерес к уровням доверия будет достаточным, я могу создать отдельный компонент «Значок поста уровня доверия», который можно будет устареть, как только производительность этого компонента будет улучшена.
Просто заметка: мы создали версию с открытым исходным кодом этого решения в виде плагина, который сериализует бейджи вместе с самим постом, чтобы решить проблему производительности, упомянутую выше.
Что касается выбора, какие бейджи будут отображаться, пользователь делает это самостоятельно в своём профиле, в новом индивидуальном настройке.
У кого-то еще перестал отображаться пользовательский загруженный образ в этом компоненте? По умолчанию отображается иконка Font Awesome, а если иконка FA не выбрана, то показывается «undefined», независимо от того, был ли загружен пользовательский значок или нет.
Спасибо!




