Banner di Stat

:discourse2: Riepilogo Stat Banner visualizza un elenco di statistiche del sito sulla tua homepage
:eyeglasses: Anteprima Anteprima su Discourse Theme Creator
:hammer_and_wrench: Repository https://github.com/discourse/discourse-stat-banner
:open_book: Nuovo per i temi di Discourse? Guida per principianti all’uso dei temi di Discourse

Installa questo componente del tema

Funzionalità

Puoi creare qualsiasi numero di statistiche da visualizzare, le statistiche sono popolate dalla pagina /about e puoi scegliere tra:

  • argomenti
  • post
  • utenti attivi
  • utenti
  • like
  • messaggi di chat
  • canali di chat
  • utenti di chat

e questi possono essere impostati individualmente da uno dei 3 periodi di tempo:

  • 1 giorno
  • 7 giorni
  • 30 giorni

Oltre alla sorgente e al periodo, puoi anche configurare:

  • titolo
  • link (opzionale)
  • manual_value (opzionale, sovrascrive il valore automatico)

Impostazioni

Nome Descrizione
display stats
banner title
show on
background color Variabile di colore di Discourse o valore esadecimale
text color Variabile di colore di Discourse o valore esadecimale
min column width
hide on mobile
plugin outlet Outlet del plugin in cui appare questo componente. Prova above-main-container o below-site-header, puoi trovare altri outlet con il componente tema plugin outlet location
disable cache Le statistiche del banner verranno aggiornate ogni volta che il banner è visibile. Nota che questo potrebbe creare un piccolo carico aggiuntivo sul server.

:discourse2: Ospitato da noi? I componenti del tema sono disponibili per l’uso sui nostri piani Standard, Business ed Enterprise.

27 Mi Piace

iPhone SE non rispetta nascondi su mobile.

Modifica: sembra che nessun dispositivo mobile segua questa impostazione e il banner sia sempre visibile.

3 Mi Piace

E una piccola richiesta UX/UI: i link dovrebbero apparire come link.

3 Mi Piace

Grazie per il rapido feedback @Jagster! L’ho appena aggiornato per correggere questi problemi

3 Mi Piace

Ciao, @awesomerobot,

Grazie mille per questo componente del tema; l’ho sicuramente scaricato.

Ho una domanda per te, se non ti dispiace, dato che sono leggermente confuso. Capisco gli ‘Utenti attivi’ poiché è autoesplicativo, tuttavia, cosa coprono gli ‘Utenti’?

Ottima domanda!

Utenti attivi sono gli utenti visti nel periodo di tempo di 1/7/30 giorni (hanno visitato il sito effettuando l’accesso)

Utenti è il numero di nuovi account creati nel periodo di tempo di 1/7/30 giorni

2 Mi Piace

Buongiorno, @awesomerobot,

Ho riflettuto un po’ su questo componente del tema e, in base alla tua risposta riguardo a ‘Utenti’ e ‘Utenti attivi’, non sembra che le informazioni siano state aggiornate di recente. Inoltre, sembro avere due valori diversi per queste metriche.

Ecco le mie statistiche sul desktop:

E su mobile:

Anche se la differenza non è sostanziale, non riesco a capire da dove vengano estratte queste statistiche.

Ho provato a implementare un Refresh HTML Code per le Statistiche in questo modo:

<script>
  setInterval(function() {
    location.reload();
  }, 60000); // Aggiorna ogni 1 minuto (60000 millisecondi)
</script>

Nota: Il codice ricaricherà la pagina ogni minuto (60000 millisecondi). Puoi regolare l’intervallo in base alle tue esigenze.

Tuttavia, non sono sicuro se questo possa essere aggiunto nell’editor delle impostazioni.

Qualsiasi aiuto sarebbe molto apprezzato.

1 Mi Piace

Aggiornamento:

Sono giunto alla conclusione che dovrebbe essere così?

[
	{
		"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": "Statistiche degli ultimi 30 giorni"
	},
	{
		"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);"
	}
]

Tuttavia, ricevo un messaggio di errore:

javascript: Queste impostazioni sono state aggiunte. Rimuovile e riprova.

Le statistiche vengono estratte dalla pagina “Informazioni”, utilizzano gli stessi dati della tabella in fondo a quella pagina:

I dati nel banner vengono aggiornati in base al periodo di statistiche più basso, dal momento in cui l’utente ha visto per la prima volta il banner.

Quindi, ad esempio, se hai configurato il banner con statistiche dell’ultimo giorno, dopo averlo visto inizialmente, i dati verranno aggiornati dopo 24 ore. Se il banner è configurato per mostrare solo statistiche dell’ultimo mese, i dati verranno aggiornati un mese dopo averlo visualizzato per la prima volta (o se cancelli la localStorage del tuo browser).

È stato implementato in questo modo per ridurre il numero di richieste effettuate, quindi invece di mostrare statistiche aggiornate ogni volta che il banner viene visualizzato, vengono memorizzate nella cache nella localStorage del browser.

Questo editor serve solo per modificare le impostazioni esistenti, non è possibile aggiungerne di nuove (o javascript) qui.

Se desideri che questo banner si aggiorni più spesso, potrei aggiungere una nuova impostazione che disabiliterà la cache.

2 Mi Piace

Ciao, @awesomerobot

Grazie per la risposta dettagliata e per aver fornito la fonte delle statistiche. Tuttavia, sto ancora riscontrando lo stesso problema con le statistiche visualizzate sul mio telefono cellulare, cosa che si verifica da quando l’ho installato inizialmente.

Secondo la mia comprensione, le mie statistiche dovrebbero essere state aggiornate a quanto segue ormai:

Ho anche provato a cancellare la cache del mio browser, ma non ha fatto alcuna differenza.

Apprezzerei molto se questa opzione fosse possibile, poiché fornirebbe una visione più completa del forum per i consumatori.

2 Mi Piace

sembrano le statistiche da /admin, che sono probabilmente un po’ diverse da quelle su /about, ma comunque… se aggiorni il componente ho aggiunto un’impostazione per disabilitare la cache:

Screenshot 2023-10-30 at 2.03.15 PM

5 Mi Piace

Meraviglioso, funziona perfettamente! Una volta attivata l’impostazione, si è subito aggiornato. Questo approccio è molto più semplice della cancellazione della cache dato che tengo sempre aperto il forum, insieme a molti altri!

Grazie per la tua dedizione!

2 Mi Piace

C’è un modo per impostare il periodo in modo che vengano visualizzate le statistiche di “tutto il tempo”?

Inoltre, sarebbe fantastico se potessi visualizzare il totale dei “voti” come calcolato da questo componente: Topic Voting | Discourse - Civilized Discussion

Il componente sta cercando le statistiche da /about.json. Quindi suppongo che “all time” possa essere aggiunto abbastanza facilmente poiché è anche un valore disponibile.

Tuttavia, se volessi visualizzare altre statistiche, suppongo che dovresti fare un fork e modificare il componente in modo che cerchi quei valori da dove sono disponibili.

2 Mi Piace

Quindi posso aggiornarlo manualmente nel JSON delle impostazioni dato che non è nel menu a discesa?

No, se aggiungi una voce a manual_value, sostituirà semplicemente il valore cercato con uno statico. Forse rinominare questo campo static_value lo comunicherebbe meglio?

Puoi ottenere il conteggio di tutti i tempi aggiungendo il selettore del periodo di tutti i tempi al menu a discesa:

È solo una semplice modifica nel file delle impostazioni del componente. Ho caricato un branch con questo qui: GitHub - nolosb/discourse-stat-banner at count. Tuttavia, per un PR probabilmente servirebbe ancora una logica per rinominare quella variabile nel menu a discesa?

1 Mi Piace

Incredibile, grazie per aver aggiunto questo!

2 Mi Piace

C’è un modo per limitarlo a una categoria specifica? Ho provato con un outlet sopra l’intestazione della categoria e volevo almeno usare CSS per limitarlo a una categoria specifica, ma poi non viene visualizzato da nessuna parte.

1 Mi Piace

Se si modifica l’impostazione del tema show_on in everywhere, sarà possibile utilizzare questo CSS per visualizzarlo in una singola categoria (sostituire examplecategory con lo slug della categoria pertinente)

.stat-banner__wrapper {
  display: none;
}

body.category-examplecategory {
  .stat-banner__wrapper {
    display: block;
  }
}
1 Mi Piace