La risposta breve è che tu, in qualità di amministratore, disponi di un elenco di categorie diverso. In qualità di amministratore, hai accesso a categorie private. Dico amministratore per semplificare, ma questo vale anche per gli utenti normali che hanno accesso a categorie private. Pertanto, il numero totale di categorie nel tuo elenco è maggiore. Nota che sto parlando solo di categorie, non di sottocategorie. Puoi ignorare le sottocategorie per ora.
Quindi, come si collega questo al fatto che Discourse ti mostri 2 / settimana o 17 / mese o 4,4k?
È progettato per essere un’indicazione dell’attività e, per renderlo più pertinente, tiene conto del numero totale di categorie a cui tu hai accesso.
Quindi, come funziona tutta questa magia? Iniziamo con alcune informazioni di base che Discourse memorizza per ogni categoria. Ogni categoria ha queste quattro proprietà:
topics_day: 12
topics_month: 95
topics_week: 53
topics_year: 874
topics_all_time: 13982
Ciascuna rappresenta il numero di nuovi argomenti creati nella categoria o in una delle sue sottocategorie entro quel lasso di tempo. Ignoriamo i periodi di tempo giornalieri e annuali perché sono irrilevanti qui.
Diamo un’occhiata ad alcuni codici:
e concentriamoci specificamente su questa parte
Cosa sta succedendo qui? Bene, iniziamo con all come intervallo di tempo predefinito. Poi vediamo minCategories
minCategories qui è il fattore decisivo per quello che ho descritto sopra. È una sorta di numero magico. In inglese, tutto ciò che fa è prendere il numero di categorie di primo livello a tua disposizione e moltiplicarlo per 0,66
Quindi, supponiamo che tu abbia 5 categorie. Moltiplichiamo per 0,66 e otteniamo 7,92
Quindi, Discourse scorre ogni categoria e controlla la proprietà topics_week. Se ha nuovi argomenti questa settimana, è considerata attiva per la settimana e conta come 1. Discourse quindi conta il numero di categorie considerate attive. Quel numero viene quindi confrontato con 7,92 che abbiamo ottenuto sopra.
Puoi vederlo qui
if (filteredCategories.length >= minCategories) {
statPeriod = period;
return true;
}
Se il numero è maggiore di 7,92 (8 o più categorie attive questa settimana), Discourse mostrerà quindi 11 / settimana accanto a ciascuna categoria, se applicabile.
E se il numero di categorie attive settimanalmente è inferiore a 7,92? Discourse controllerà quindi la stessa cosa ma con l’attività mensile.
Se il numero è maggiore di 7,92 (8 o più categorie attive questo mese), Discourse mostrerà quindi 22 / mese accanto a ciascuna di quelle categorie, se applicabile.
Se né il numero settimanale né quello mensile di categorie attive è maggiore di 7,92, Discourse tornerà all’intervallo di tempo predefinito all e mostrerà il numero topics_all_time o 4,4k come nello screenshot.
Nota: Oltre agli intervalli di tempo settimana/mese, se applicabile, il totale o all viene sempre mostrato su mobile.
Quindi, proviamo a capire il problema nel tuo post. Un nuovo utente vede 22 / mese e tu, come amministratore, vedi 4,4k, cosa succede?
Ricordi questo?
La risposta breve è che tu, in qualità di amministratore, disponi di un elenco di categorie diverso. In qualità di amministratore, hai accesso a categorie private.
Quindi, facciamo due conti…
Il tuo sito ha 7 categorie di primo livello visibili al nostro utente di esempio. Quindi il numero magico è
7 * 0,66 = 4,62
In altre parole, devi avere 5 categorie con nuovi argomenti questa settimana affinché Discourse mostri 11 / settimana. Questo non è il caso sul tuo sito poiché ne hai solo 4 che corrispondono ai criteri - ricorda, si tratta di nuovi argomenti, non di risposte.
Quindi, Discourse controlla l’attività mensile e, nel tuo caso, hai 6 categorie che hanno avuto nuovi argomenti questo mese. 6 è maggiore di 4,62, quindi il nostro utente di esempio vede 4 / mese come nello screenshot.
Ora, facciamo due conti per te come amministratore. Non so quante categorie private hai, ma supponiamo che tu ne abbia 4. In tal caso, il numero totale sarebbe 11 categorie e il numero magico sarebbe
11 * 0,66 = 7,26
Quindi, affinché tu veda 11 / settimana, avresti bisogno di almeno 8 categorie con nuovi argomenti questa settimana. In caso contrario, tornerà all’attività mensile e avresti bisogno di almeno 8 categorie con nuovi argomenti questo mese per vedere 4 / mese. Se nessuno dei due si applica, otterrai 4,4k come nello screenshot dell’amministratore.
Detto questo, il numero magico in Discourse - 0,66 - sembra un po’ alto e potrebbe beneficiare di una riduzione per accogliere siti con un gran numero di categorie moderatamente attive. Il 40% delle categorie del sito attive è ancora abbastanza buono. Puoi anche tentare la fortuna e chiedere un’impostazione del sito per controllarlo in un argomento Feature.
In alternativa, puoi bypassare tutto questo in un componente del tema. Qualcosa del genere nella scheda header comune del tuo 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;
// la categoria è considerata attiva se ha avuto almeno questo numero di argomenti questa settimana
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>
L’unica cosa che devi cambiare è WEEK_THROSHOLD al numero di nuovi argomenti creati questa settimana in una categoria in cui è considerata attiva. Il resto dovrebbe funzionare.
