A resposta curta é que você - como administrador - tem uma lista de categorias diferente. Como administrador, você tem acesso a categorias privadas. Digo administrador aqui para simplificar, mas isso também se aplica a usuários regulares que têm acesso a categorias privadas. Portanto, o número total de categorias em sua lista é maior. Observe que estou falando apenas de categorias, não de subcategorias. Você pode ignorar as subcategorias por enquanto.
Então, como isso se relaciona com o fato de o Discourse mostrar a você 2 / semana ou 17 / mês ou 4,4k?
Ele foi projetado para ser uma indicação de atividade e, para torná-lo mais relevante, leva em consideração o número total de categorias às quais você tem acesso.
Então, como toda essa mágica funciona? Vamos começar com algumas informações básicas que o Discourse armazena para cada categoria. Cada categoria tem essas quatro propriedades:
topics_day: 12
topics_month: 95
topics_week: 53
topics_year: 874
topics_all_time: 13982
Cada uma representa o número de novos tópicos criados na categoria ou em uma de suas subcategorias dentro desse período. Vamos ignorar os períodos de dia e ano, pois são irrelevantes aqui.
Vamos dar uma olhada em algum código:
e vamos focar especificamente nesta parte
O que está acontecendo aqui? Bem, começamos com all como período padrão. Então vemos minCategories
minCategories aqui é o fator decisivo para o que descrevi acima. É um número mágico, por assim dizer. Em inglês, tudo o que ele faz é pegar o número de categorias de nível superior disponíveis para você e multiplicá-lo por 0.66
Então, digamos que você tenha 5 categorias. Multiplicamos isso por 0.66 e obtemos 7.92
Em seguida, o Discourse percorre cada categoria e verifica a propriedade topics_week. Se ela tiver novos tópicos esta semana, é considerada ativa para a semana e conta como 1. O Discourse, em seguida, totaliza o número de categorias consideradas ativas. Esse número é então comparado a 7.92 que obtivemos acima.
Você pode ver isso aqui
if (filteredCategories.length >= minCategories) {
statPeriod = period;
return true;
}
Se o número for maior que 7.92 (8 ou mais categorias ativas esta semana), o Discourse exibirá 11 / semana ao lado de cada categoria, se aplicável.
Bem, e se o número de categorias ativas semanalmente for menor que 7.92? O Discourse verificará o mesmo, mas com atividade mensal.
Se o número for maior que 7.92 (8 ou mais categorias ativas este mês), o Discourse exibirá 22 / mês ao lado de cada uma dessas categorias, se aplicável.
Se nem o número semanal nem o mensal de categorias ativas for maior que 7.92, o Discourse voltará ao período padrão de all e exibirá o número topics_all_time ou 4.4k como na sua captura de tela.
Observação: Além dos períodos de tempo semana/mês, se aplicável, o total ou all é sempre mostrado no celular.
Então, vamos tentar descobrir o problema em sua postagem. Um novo usuário vê 22 / mês e você, como administrador, vê 4.4k, o que aconteceu?
Bem, lembra disso?
A resposta curta é que você - como administrador - tem uma lista de categorias diferente. Como administrador, você tem acesso a categorias privadas.
Então, vamos fazer algumas contas…
Seu site tem 7 categorias de nível superior visíveis para nosso novo usuário de exemplo. Então o número mágico é
7 * 0.66 = 4.62
Em outras palavras, você precisa ter 5 categorias com novos tópicos esta semana para que o Discourse exiba 11 / semana. Isso não é o caso em seu site, pois você tem apenas 4 que correspondem aos critérios - lembre-se, são novos tópicos, não respostas.
Portanto, o Discourse verifica a atividade mensal e, no seu caso, você tem 6 categorias que tiveram novos tópicos este mês. 6 é maior que 4.62, então nosso usuário de exemplo vê 4 / mês como em sua captura de tela.
Agora, vamos fazer algumas contas para você, como administrador. Não sei quantas categorias privadas você tem, mas vamos supor que você tenha 4 categorias privadas. Nesse caso, o número total seria 11 categorias, e o número mágico seria
11 * 0.66 = 7.26
Portanto, para você ver 11 / semana, você precisaria de pelo menos 8 categorias com novos tópicos esta semana. Se não, ele voltará para a atividade mensal, e você precisaria de pelo menos 8 categorias com novos tópicos este mês para ver 4 / mês. Se nenhum desses se aplicar, você receberá 4.4k como em sua captura de tela de administrador.
Dito isso, o número mágico no Discourse - 0.66 - parece um pouco alto e pode se beneficiar de uma redução para acomodar sites com um grande número de categorias moderadamente ativas. 40% das categorias do site estarem ativas ainda é muito bom. Você também pode tentar a sorte e pedir uma configuração de site para controlar isso em um tópico de Feature.
Fora isso, você pode ignorar tudo isso em um componente de tema. Algo como isto na guia de cabeçalho comum do seu tema.
<script type="text/discourse-plugin" version="0.8">
const { on } = require("discourse-common/utils/decorators");
const { number } = require("discourse/lib/formatter");
const I18n = require("I18n").default;
// a categoria é considerada ativa se teve pelo menos este número de tópicos esta semana
const WEEK_THROSHOLD = 2;
api.modifyClass("component:parent-category-row", {
pluginId: "category-activity-indicator",
@on("didReceiveAttrs")
setCategoryActivityStats() {
const category = this.category;
if (category.topics_week < WEEK_THROSHOLD) {
return;
}
const statPeriod = "week";
const stat = category[`topics_${statPeriod}`];
const unit = I18n.t(`categories.topic_stat_unit.${statPeriod}`);
category.setProperties({
pickAll: false,
stat: I18n.t("categories.topic_stat", {
count: stat,
number: `<span class="value">${number(stat)}</span>`,
unit: `<span class="unit">${unit}</span>`,
}),
statTitle: I18n.t(`categories.topic_stat_sentence_${statPeriod}`, {
count: stat,
}),
});
},
});
</script>
A única coisa que você precisa mudar é WEEK_THROSHOLD para o número de novos tópicos criados esta semana em uma categoria na qual ela é considerada ativa. O resto deve funcionar.
