Como posso acionar meu script de estatísticas personalizado em cada carregamento de página?

Sabendo que o Discourse é uma SPA e tendo consultado alguns documentos sobre este tópico, ainda não tenho certeza de como alcançar isto:

  • incluímos uma biblioteca JS personalizada no rodapé que interage com a nossa solução de estatísticas
  • queremos enriquecer as estatísticas acionando eventos personalizados em cada “carregamento de página”, por exemplo, sempre que o usuário navega para uma página “nova”

Código pseudo:

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"
        }
    } });

Como e onde no meu tema personalizado preciso colocar o código para alcançar isto?

Obrigado :slight_smile:

1 curtida

Você provavelmente vai querer usar onPageChange da nossa API de plugin.

Em um tema, você vai querer adicionar algo como isto 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 que você quer executar na mudança de página aqui
      });
    });
  },
};
3 curtidas

Obrigado! Isso resolveu o problema.

Você também sabe como posso obter o idioma da interface do usuário das configurações do usuário?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.