Banner de estadísticas

:discourse2: Resumen Stat Banner muestra una lista de estadísticas del sitio en tu página de inicio
:eyeglasses: Vista previa Vista previa en el Creador de Temas de Discourse
: hammer_and_wrench: Repositorio https://github.com/discourse/discourse-stat-banner
: open_book: ¿Nuevo en Temas de Discourse? Guía para principiantes sobre el uso de Temas de Discourse

Instalar este componente de tema

Características

Puedes crear cualquier número de estadísticas para mostrar, las estadísticas se obtienen de la página /about y puedes elegir entre:

  • temas
  • publicaciones
  • usuarios activos
  • usuarios
  • me gusta
  • mensajes de chat
  • canales de chat
  • usuarios de chat

y estos se pueden configurar individualmente de uno de 3 períodos de tiempo:

  • 1 día
  • 7 días
  • 30 días

Además de la fuente y el período, también puedes configurar:

  • título
  • enlace (opcional)
  • valor_manual (opcional, anula el valor automático)

Configuraciones

Nombre Descripción
mostrar estadísticas
título del banner
mostrar en
color de fondo Variable de color de Discourse o valor hexadecimal
color del texto Variable de color de Discourse o valor hexadecimal
ancho mínimo de columna
ocultar en móvil
salida de plugin Salida de plugin en la que aparece este componente. Prueba above-main-container o below-site-header, puedes encontrar más salidas con el componente de tema de ubicaciones de salida de plugin
deshabilitar caché Las estadísticas del banner se actualizarán cada vez que el banner sea visible. Ten en cuenta que esto puede generar una carga adicional en el servidor.

:discourse2: ¿Alojado por nosotros? Los componentes de tema están disponibles para usar en nuestros planes Estándar, Business y Enterprise.

27 Me gusta

El iPhone SE no obedece a ocultar en móvil.

Editar: parece que ningún móvil sigue esa configuración y el banner siempre está visible.

3 Me gusta

Y una pequeña solicitud de UX/UI: los enlaces deben parecer enlaces.

3 Me gusta

¡Gracias por tus rápidos comentarios @Jagster! Acabo de actualizarlo para solucionar estos problemas.

3 Me gusta

Hola, @awesomerobot:

Muchas gracias por este componente temático; definitivamente lo he aprovechado.

Tengo una pregunta para ti si no te importa, ya que estoy un poco confundido. Entiendo los “Usuarios activos” ya que se explica por sí mismo, sin embargo, ¿qué cubren los “Usuarios”?

¡Buena pregunta!

Usuarios activos son los usuarios que han visitado el sitio dentro de ese período de tiempo de 1/7/30 días (iniciaron sesión).

Usuarios es el número de cuentas nuevas creadas dentro de ese período de tiempo de 1/7/30 días.

2 Me gusta

Buenos días, @awesomerobot,

He dedicado tiempo a reflexionar sobre este componente temático y, basándome en tu respuesta sobre “Usuarios” y “Usuarios activos”, no parece que la información se haya actualizado recientemente. También parece que tengo dos valores diferentes para estas métricas.

Aquí están mis estadísticas en el escritorio:

Y en el móvil:

Aunque la diferencia no es sustancial, no logro averiguar de dónde se extraen estas estadísticas.

He intentado implementar un “Refresh HTML Code” para las estadísticas de la siguiente manera:

<script>
  setInterval(function() {
    location.reload();
  }, 60000); // Actualizar cada 1 minuto (60000 milisegundos)
</script>

Nota: El código recargará la página cada minuto (60000 milisegundos). Puedes ajustar el intervalo según tus necesidades.

Sin embargo, no estoy seguro de si esto se puede agregar al editor de configuración.

Cualquier ayuda sería muy apreciada.

1 me gusta

Actualización:

¿He llegado a la conclusión de que debería verse así?

[
	{
		"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": "Estadísticas de los últimos 30 días"
	},
	{
		"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);"
	}
]

Sin embargo, recibo un mensaje de error:

javascript: Se añadieron estas configuraciones. Por favor, elimínalas e inténtalo de nuevo.

Las estadísticas se extraen de la página “Acerca de”, utilizan los mismos datos de la tabla en la parte inferior de esa página:

Los datos del banner se actualizan en función del período de estadísticas más bajo, desde el momento en que el usuario vio el banner por primera vez.

Así, por ejemplo, si tiene el banner configurado con estadísticas del último día, después de verlo inicialmente, actualizará sus datos en 24 horas. Si el banner está configurado para mostrar solo estadísticas del último mes, los datos se actualizarán un mes después de haberlo visto por primera vez (o si borra el localStorage de su navegador).

Se implementó de esta manera para reducir el número de solicitudes realizadas, por lo que en lugar de mostrar estadísticas actualizadas cada vez que se ve el banner, se almacenan en caché en el localStorage del navegador.

Este editor es solo para editar configuraciones existentes, no puede agregar nuevas (ni javascript) aquí en absoluto.

Si está buscando que este banner se actualice con más frecuencia, podría agregar una nueva configuración que desactive el almacenamiento en caché.

2 Me gusta

Hola, @awesomerobot

Gracias por la detallada respuesta y por proporcionar la fuente de las estadísticas. Sin embargo, sigo teniendo el mismo problema con las estadísticas que se muestran en mi teléfono móvil, lo cual ha sido así desde que lo instalé inicialmente.

Según mi entendimiento, mis estadísticas deberían haberse actualizado a lo siguiente para ahora:

También he intentado borrar la caché de mi navegador, pero no ha hecho ninguna diferencia.

Agradecería enormemente si esta opción fuera posible, ya que proporcionaría una visión más completa del foro para los consumidores.

2 Me gusta

Esos parecen ser los datos de /admin, que probablemente son un poco diferentes de los de /about, pero independientemente… si actualizas el componente, he añadido una configuración para deshabilitar el almacenamiento en caché:

Screenshot 2023-10-30 at 2.03.15 PM

5 Me gusta

¡Maravilloso, funciona a la perfección! Una vez que activé la configuración, se actualizó de inmediato. ¡Este enfoque es mucho más sencillo que borrar la caché, ya que siempre mantengo el foro abierto, junto con muchos otros!

¡Gracias por tu dedicación!

2 Me gusta

¿Hay alguna forma de establecer el período para que muestre estadísticas de “todo el tiempo”?

Además, sería genial si pudiera mostrar el total de “votos” calculados por este componente: Topic Voting | Discourse - Civilized Discussion

El componente está buscando estadísticas de /about.json. Así que supongo que “all time” podría añadirse con bastante facilidad, ya que también es un valor disponible.

Sin embargo, si quisieras mostrar otras estadísticas, supongo que necesitarías hacer un fork y ajustar el componente para que busque esos valores de donde estén disponibles.

2 Me gusta

¿Así que puedo actualizar esto manualmente en el JSON de configuración ya que no está en el menú desplegable?

No, si agregas una entrada a manual_value, simplemente reemplazará el valor buscado con uno estático. ¿Quizás nombrar este campo static_value lo transmitiría mejor?

Puedes obtener el recuento de todos los tiempos agregando el selector de período de todos los tiempos al menú desplegable:

Es solo un cambio simple en el archivo de configuración del componente. Empujé una rama con esto aquí: GitHub - nolosb/discourse-stat-banner at count. Sin embargo, para una PR, probablemente todavía necesitaría algo de lógica para renombrar esa variable en el menú desplegable.

1 me gusta

¡Increíble, gracias por añadir esto!

2 Me gusta

¿Hay alguna forma de limitarlo a una categoría específica? Intenté con un outlet de encabezado de categoría superior y quería al menos usar CSS para limitarlo a una categoría específica, pero luego no se muestra en ningún lado.

1 me gusta

Si cambia la configuración del tema show_on a everywhere, podrá usar este CSS para mostrarlo en una sola categoría (reemplace examplecategory con el slug de su categoría relevante)

.stat-banner__wrapper {
  display: none;
}

body.category-examplecategory {
  .stat-banner__wrapper {
    display: block;
  }
}
1 me gusta