Bannière Statistique

: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 sur les thèmes Discourse ? Guide pour débutants sur 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 peuplées par la page /about, et vous pouvez choisir parmi :

  • sujets
  • messages
  • utilisateurs actifs
  • utilisateurs
  • likes
  • messages de chat
  • canaux de chat
  • utilisateurs de chat

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

  • 1 jour
  • 7 jours
  • 30 jours

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

  • titre
  • lien (optionnel)
  • valeur_manuelle (optionnel, remplace la valeur automatique)

Paramètres

Nom Description
afficher les statistiques
titre de la bannière
afficher sur
couleur de fond Variable de couleur Discourse ou valeur hexadécimale
couleur du texte Variable de couleur Discourse ou valeur hexadécimale
largeur minimale des colonnes
masquer sur mobile
sortie de plugin Sortie de plugin dans laquelle ce composant apparaît. Essayez above-main-container ou below-site-header, vous pouvez trouver plus de sorties avec le composant de thème d’emplacement de sortie de plugin
désactiver le cache Les statistiques de la bannière seront actualisées à chaque fois que la bannière sera visible. Notez que cela peut entraîner une légère charge supplémentaire sur le serveur.

:discourse2: Hébergé par nous ? Les composants de thème sont disponibles pour utilisation sur nos plans Standard, Business et Enterprise.

27 « 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 »