Pourquoi le contenu de la colonne « Sujets » est-il différent ? Est-il possible d’avoir le même contenu dans les deux cas ? Comment choisir ce que j’affiche ici ?
La réponse courte est que vous, en tant qu’administrateur, disposez d’une liste de catégories différente. En tant qu’administrateur, vous avez accès aux catégories privées. J’utilise le terme « administrateur » ici pour simplifier, mais cela s’applique également aux utilisateurs réguliers qui ont accès aux catégories privées. Ainsi, le nombre total de catégories dans votre liste est plus élevé. Notez que je ne parle ici que des catégories principales, et non des sous-catégories. Vous pouvez ignorer les sous-catégories pour l’instant.
Alors, comment cela se rapporte-t-il au fait que Discourse vous affiche 2 / semaine ou 17 / mois ou 4,4k ?
Il est conçu pour être une indication de l’activité et, pour le rendre plus pertinent, il prend en compte le nombre total de catégories auxquelles vous avez accès.
Alors, comment fonctionne toute cette magie ? Commençons par quelques informations de base que Discourse stocke pour chaque catégorie. Chaque catégorie possède ces quatre propriétés :
Chacune représente le nombre de nouveaux sujets créés dans la catégorie ou dans l’une de ses sous-catégories au cours de cette période. Ignorons les périodes du jour et de l’année car elles sont sans pertinence ici.
et concentrons-nous spécifiquement sur cette partie
Que se passe-t-il ici ? Eh bien, nous commençons par all (tous) comme période par défaut. Ensuite, nous voyons minCategories.
minCategories est ici le facteur décisif pour ce que j’ai décrit ci-dessus. C’est une sorte de nombre magique. En anglais, tout ce qu’il fait, c’est prendre le nombre de catégories de premier niveau disponibles pour vous et le multiplier par 0,66.
Disons que vous avez 5 catégories. Nous multiplions cela par 0,66 et nous obtenons 7,92.
Ensuite, Discourse parcourt chaque catégorie et vérifie la propriété topics_week. Si elle a de nouveaux sujets cette semaine, elle est considérée comme active pour la semaine et compte pour 1. Discourse compte ensuite le nombre de catégories considérées comme actives. Ce nombre est ensuite comparé à 7,92 que nous avons obtenu plus haut.
Si le nombre est supérieur à 7,92 (8 catégories ou plus actives cette semaine), Discourse affichera alors 11 / semaine à côté de chaque catégorie, le cas échéant.
Eh bien, que se passe-t-il si le nombre de catégories actives hebdomadaires est inférieur à 7,92 ? Discourse vérifiera alors la même chose mais avec l’activité mensuelle.
Si le nombre est supérieur à 7,92 (8 catégories ou plus actives ce mois-ci), Discourse affichera alors 22 / mois à côté de chacune de ces catégories, le cas échéant.
Si ni le nombre hebdomadaire ni le nombre mensuel de catégories actives ne sont supérieurs à 7,92, Discourse reviendra à la période par défaut all (tous) et affichera le nombre topics_all_time ou 4,4k comme dans votre capture d’écran.
Remarque : Outre les périodes semaine/mois, si elles sont applicables, le total ou all (tous) est toujours affiché sur mobile.
Essayons donc de comprendre le problème dans votre message. Un nouvel utilisateur voit 22 / mois et vous, en tant qu’administrateur, vous voyez 4,4k, qu’est-ce qui se passe ?
Eh bien, vous souvenez-vous de ceci ?
La réponse courte est que vous, en tant qu’administrateur, disposez d’une liste de catégories différente. En tant qu’administrateur, vous avez accès aux catégories privées.
Faisons donc un peu de calculs…
Votre site compte 7 catégories de premier niveau visibles pour notre exemple de nouvel utilisateur. Le nombre magique est donc
7 * 0,66 = 4,62
Autrement dit, vous devez avoir 5 catégories avec de nouveaux sujets cette semaine pour que Discourse affiche 11 / semaine. Ce n’est pas le cas sur votre site car vous n’en avez que 4 qui correspondent aux critères - rappelez-vous, il s’agit de nouveaux sujets, pas de réponses.
Discourse vérifie ensuite l’activité mensuelle et, dans votre cas, vous avez 6 catégories qui ont eu de nouveaux sujets ce mois-ci. 6 est supérieur à 4,62 donc, notre utilisateur exemple voit 4 / mois comme dans votre capture d’écran.
Maintenant, faisons un peu de calculs pour vous, en tant qu’administrateur. Je ne sais pas combien de catégories privées vous avez, mais supposons que vous en ayez 4. Dans ce cas, le nombre total serait de 11 catégories et le nombre magique serait
11 * 0,66 = 7,26
Ainsi, pour que vous voyiez 11 / semaine, vous auriez besoin d’au moins 8 catégories avec de nouveaux sujets cette semaine. Sinon, il reviendra à l’activité mensuelle et vous auriez besoin d’au moins 8 catégories avec de nouveaux sujets ce mois-ci pour voir 4 / mois. Si aucune de ces conditions ne s’applique, vous obtiendriez alors 4,4k comme dans votre capture d’écran d’administrateur.
Cela dit, le nombre magique dans Discourse - 0,66 - semble un peu élevé et pourrait bénéficier d’une réduction pour s’adapter aux sites avec un grand nombre de catégories modérément actives. 40 % des catégories du site actives est encore assez bien. Vous pouvez également essayer votre chance et demander un paramètre de site pour contrôler cela dans un sujet Contribute > Feature.
À défaut, vous pouvez contourner tout cela dans un composant de thème. Quelque chose comme ceci dans l’onglet en-tête commun de votre thème.
<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;
// une catégorie est considérée comme active si elle a eu au moins ce nombre de sujets cette semaine
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>
La seule chose que vous devez modifier est WEEK_THROSHOLD pour le nombre de nouveaux sujets créés cette semaine dans une catégorie à partir duquel elle est considérée comme active. Le reste devrait fonctionner tel quel.