Bannière de statistiques

:discourse2: Résumé Stat Banner affiche une liste de statistiques du site sur votre page d’accueil
:eyeglasses: Aperçu Aperçu sur Discourse Theme Creator
:hammer_and_wrench: Dépôt https://github.com/discourse/discourse-stat-banner
:open_book: Nouveau dans les thèmes Discourse ? Guide du débutant pour l’utilisation des thèmes Discourse

Installer ce composant de thème

Fonctionnalités

Vous pouvez créer autant de statistiques que vous le souhaitez, les statistiques sont alimentées par la page /about, et vous pouvez choisir parmi :

  • topics
  • posts
  • active users
  • users
  • likes
  • chat messages
  • chat channels
  • chat users

et ceux-ci peuvent être définis individuellement à partir de l’une des 3 périodes :

  • 1 day
  • 7 days
  • 30 days

Outre la source et la période, vous pouvez également configurer :

  • title
  • link (optional)
  • manual_value (optional, overrides the automatic value)

Paramètres

Nom Description
display stats
banner title
show on
background color Discourse color variable or hex value
text color Discourse color variable or hex value
min column width
hide on mobile
plugin outlet Plugin outlet that this component appears in. Try above-main-container or below-site-header , you can find more outlets with the plugin outlet location theme component
disable cache The banner stats will refresh every time the banner is visible. Note that this may create a little additional server load.

:discourse2: Hosted by us? Theme components are available to use on our Standard, Business, and Enterprise plans.

29 « J'aime »

L’iPhone SE n’obéit pas à masquer sur mobile.

Edit : il semble que tous les mobiles ne suivent pas ce paramètre et que la bannière soit toujours visible.

3 « J'aime »

Et une petite demande UX/UI — les liens doivent ressembler à des liens.

3 « J'aime »

Merci pour vos commentaires rapides @Jagster ! Je viens de le mettre à jour pour corriger ces problèmes.

3 « J'aime »

Salut, @awesomerobot,

Merci beaucoup pour ce composant de thème ; je l’ai absolument adopté.

J’ai une question pour vous si cela ne vous dérange pas, car je suis légèrement confus. Je comprends les « Utilisateurs actifs » car c’est explicite, cependant, que couvrent les « Utilisateurs » ?

Bonne question !

Utilisateurs actifs correspond aux utilisateurs ayant consulté le site dans la période de 1/7/30 jours (ils se sont connectés au site)

Utilisateurs correspond au nombre de nouveaux comptes créés dans la période de 1/7/30 jours.

2 « J'aime »

Bonjour, @awesomerobot,

J’ai passé du temps à réfléchir à ce composant de thème et, d’après votre réponse concernant les « Utilisateurs » et les « Utilisateurs actifs », il semble que les informations n’aient pas été mises à jour récemment. J’ai également l’impression d’avoir deux valeurs différentes pour ces métriques.

Voici mes statistiques sur ordinateur :

Et sur mobile :

Même si la différence n’est pas substantielle, je n’arrive pas à comprendre d’où proviennent ces statistiques.

J’ai essayé d’implémenter un « Actualiser le code HTML des statistiques » comme ceci :

<script>
  setInterval(function() {
    location.reload();
  }, 60000); // Actualiser toutes les 1 minute (60000 millisecondes)
</script>

Remarque : Le code rechargera la page toutes les 1 minute (60000 millisecondes). Vous pouvez ajuster l’intervalle selon vos besoins.

Cependant, je ne suis pas sûr que cela puisse être ajouté dans l’éditeur de paramètres.

Toute aide serait grandement appréciée.

1 « J'aime »

Mise à jour :

J’en suis arrivé à la conclusion que cela devrait ressembler à ceci ?

[
	{
		"setting": "display_stats",
		"value": "[{\"source\":\"posts\",\"period\":\"30_days\",\"title\":\"Posts\",\"link\":\"\",\"manual_value\":\"\"},{\"source\":\"likes\",\"period\":\"30_days\",\"title\":\"Likes\",\"link\":\"\",\"manual_value\":\"\"},{\"source\":\"active_users\",\"period\":\"30_days\",\"title\":\"Active Users\",\"link\":\"\",\"manual_value\":\"\"},{\"source\":\"users\",\"period\":\"30_days\",\"title\":\"Sign-Ups\",\"link\":\"\",\"manual_value\":\"\"}]"
	},
	{
		"setting": "banner_title",
		"value": "Statistiques des 30 derniers jours"
	},
	{
		"setting": "show_on",
		"value": "homepage"
	},
	{
		"setting": "background_color",
		"value": "var(--tertiary-low)"
	},
	{
		"setting": "text_color",
		"value": "var(--primary)"
	},
	{
		"setting": "min_column_width",
		"value": "10em"
	},
	{
		"setting": "hide_on_mobile",
		"value": false
	},
	{
		"setting": "plugin_outlet",
		"value": "above-main-container"
	},
	{
		"setting": "javascript",
		"value": "setInterval(function() { Discourse.__container__.lookup('controller:widget').send('refresh'); }, 3600000);"
	}
]

Cependant, je reçois un message d’erreur :

javascript : Ces paramètres ont été ajoutés. Veuillez les supprimer et réessayer.

Les statistiques sont extraites de la page “À propos”, elles utilisent les mêmes données que le tableau en bas de cette page :

Les données de la bannière sont actualisées en fonction de la période de statistiques la plus basse, à partir du moment où l’utilisateur a vu la bannière pour la première fois.

Ainsi, par exemple, si vous avez configuré la bannière avec des statistiques du dernier jour, après l’avoir vue pour la première fois, elle actualisera ses données dans 24 heures. Si la bannière est configurée pour afficher uniquement les statistiques du dernier mois, les données seront actualisées un mois après les avoir consultées (ou si vous effacez le localStorage de votre navigateur).

Cela a été implémenté de cette manière pour réduire le nombre de requêtes effectuées, donc plutôt que d’afficher des statistiques mises à jour à chaque fois que la bannière est vue, elles sont mises en cache dans le localStorage du navigateur.

Cet éditeur sert uniquement à modifier les paramètres existants, vous ne pouvez pas y ajouter de nouveaux paramètres (ni de javascript).

Si vous souhaitez que cette bannière se mette à jour plus souvent, je pourrais ajouter un nouveau paramètre qui désactivera la mise en cache.

2 « J'aime »

Salut, @awesomerobot

Merci pour la réponse détaillée et pour avoir fourni la source des statistiques. Cependant, je rencontre toujours le même problème avec les statistiques affichées sur mon téléphone portable, ce qui est le cas depuis que je l’ai installé initialement.

D’après ma compréhension, mes statistiques auraient dû être mises à jour comme suit d’ici maintenant :

J’ai également essayé de vider le cache de mon navigateur, mais cela n’a fait aucune différence.

J’apprécierais grandement si cette option était possible, car elle offrirait un aperçu plus complet du forum pour les consommateurs.

2 « J'aime »

cela ressemble aux statistiques de /admin, qui sont probablement un peu différentes de celles de /about, mais quoi qu’il en soit… si vous mettez à jour le composant, j’ai ajouté un paramètre pour désactiver la mise en cache :

Screenshot 2023-10-30 at 2.03.15 PM

5 « J'aime »

Merveilleux, cela fonctionne parfaitement ! Une fois que j’ai activé le paramètre, il s’est immédiatement actualisé. Cette approche est beaucoup plus simple que de vider le cache puisque je garde toujours le forum ouvert, ainsi que bien d’autres !

Merci pour votre dévouement !

2 « J'aime »

Existe-t-il un moyen de définir la période pour afficher les statistiques de « toutes les périodes » ?

De plus, ce serait formidable si je pouvais afficher le total des « votes » calculés par ce composant : Topic Voting | Discourse - Civilized Discussion

Le composant recherche les statistiques à partir de /about.json. Je suppose donc que « tout le temps » pourrait être ajouté assez facilement car c’est aussi une valeur disponible.

Cependant, si vous souhaitiez afficher d’autres statistiques, je suppose que vous devriez forker et ajuster le composant afin qu’il recherche ces valeurs là où elles sont disponibles.

2 « J'aime »

Je peux donc mettre cela à jour manuellement dans le JSON des paramètres puisque ce n’est pas dans la liste déroulante ?

Non, si vous ajoutez une entrée à manual_value, cela remplacera simplement la valeur recherchée par une valeur statique. Peut-être que nommer ce champ static_value le communiquerait mieux ?

Vous pouvez obtenir le décompte de tous les temps en ajoutant le sélecteur de période de tous les temps à la liste déroulante :

C’est juste un simple changement dans le fichier de configuration du composant. J’ai poussé une branche avec cela ici : GitHub - nolosb/discourse-stat-banner at count. Cependant, pour une PR, il faudrait probablement encore une logique pour renommer cette variable dans la liste déroulante ?

1 « J'aime »

Incroyable, merci d’avoir ajouté cela !

2 « J'aime »

Existe-t-il un moyen de le limiter à une catégorie spécifique ? J’ai essayé dans la section « en-tête de catégorie supérieure » et je voulais au moins utiliser CSS pour le limiter à une catégorie spécifique, mais il n’est alors affiché nulle part.

1 « J'aime »

Si vous changez le paramètre de thème show_on en everywhere, vous devriez pouvoir utiliser ce CSS pour l’afficher dans une seule catégorie (remplacez examplecategory par le slug de votre catégorie pertinente)

.stat-banner__wrapper {
  display: none;
}

body.category-examplecategory {
  .stat-banner__wrapper {
    display: block;
  }
}
1 « J'aime »