На странице тегов отсутствуют подсчёты тегов

Я недавно заметил, что на странице /tags больше не отображаются количества тегов (например, «Java X 10»). Вместо этого мы видим только список тегов без соответствующих им количеств.

Буду очень признателен за любую информацию о том, что могло вызвать такое внезапное исчезновение количеств. Спасибо!

Мой предположение — у вас тема, которая его удаляет. Я не вижу проблемы на Meta или на каких-либо сайтах, которые я регулярно использую.

Если у вас есть набор приватных категорий, возможно, это связано с настройкой администратора «Включать защищённые категории в подсчёт тегов»?

Привет, Джон! Спасибо за твой ответ. К сожалению, я не добавлял никаких новых тем.

Привет, JammyDodger! У меня действительно есть несколько приватных категорий. Я проверю эту настройку. Спасибо!

Настройка администратора «Включать защищённые категории в подсчёт тегов» была отключена. Я её включил, но, к сожалению, подсчёт тегов так и не появился. Странно.

Я попытался отладить проблему. Вот что мне удалось выяснить.

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

Странно то, что счётчик в API ведёт себя некорректно.

Посмотрев на исходный код:

discourse/app/assets/javascripts/discourse/app/templates/components/tag-list.hbs at v3.0.6 · discourse/discourse · GitHub

Я попытался отладить процесс, и оказалось, что count передаётся корректно. Всё в порядке.

Однако мы видим, что pmCount имеет значение undefined. Скорее всего, это и есть проблема, поскольку totalCount теперь содержит значение NaN (Not A Number), из-за чего условие в шаблоне игнорирует его.

Если посмотреть историю изменений в GIT, то эта функция была исправлена в этом PR, где видно, что pmCount проверяется перед сложением двух чисел.
SECURITY: Hide PM count for tags by default (#20061) · discourse/discourse@f31f0b7 · GitHub

Это исправление доступно начиная с версии 3.1.0.
Поиск вашей версии Discourse показывает, что вы используете старую стабильную версию 3.0.6.

image

Краткая версия:

Вы используете Discourse 3.0.6, а исправление было внесено в версии 3.1.0, которое косвенно решило эту проблему. :thinking:
Скорее всего, вы сможете исправить проблему, обновившись до последней стабильной версии, которая сейчас 3.2.0, или, как минимум, до версии 3.1.0.

Отлично! Большое спасибо, Arkshine! Я ценю ваше время, и ваши превосходные навыки отладки очень важны для выявления корневой причины.

Я свяжусь с нашим администратором сервера по поводу обновления.