Come posso attivare il mio script personalizzato per le statistiche ad ogni "load" di pagina?

Sapendo che Discourse è una SPA e avendo consultato alcuni documenti sull’argomento, non sono ancora sicuro di come raggiungere questo obiettivo:

  • includiamo una libreria js personalizzata nel piè di pagina che interagisce con la nostra soluzione di statistiche
  • vogliamo arricchire le statistiche attivando eventi personalizzati ad ogni “caricamento pagina”, ad esempio ogni volta che l’utente naviga verso una “nuova” pagina

Codice fittizio:

window.statistic = window.statistic || [];
window.statistic.push({
    action: "page.ready",
    data: {
        page: {
            path: "/c/new-to-this-forum-get-started-here/20/l/new",
            country: "WW",
            language: "en",
        }, user: {
            country: "DE",
            loginStatus: "logged_in"
        }
} });

Come e dove nel mio tema personalizzato devo inserire il codice per raggiungere questo obiettivo?

Grazie :slight_smile:

Probabilmente vorrai usare onPageChange dalla nostra API dei plugin.

In un tema, vorresti aggiungere qualcosa di simile a javascripts/discourse/api-initializers/your-initializer.js

import { withPluginApi } from "discourse/lib/plugin-api";

export default {
  name: "custom-script-name",

  initialize() {
    withPluginApi("0.8.36", (api) => {
      api.onPageChange(() => {
        // script che vuoi eseguire al cambio pagina qui
      });
    });
  },
};

Grazie! Ha funzionato.

Sai anche per caso come posso ottenere la lingua dell’interfaccia utente dalle impostazioni dell’utente?