Wie kann ich mein benutzerdefiniertes Statistik-Skript bei jedem Seitenaufruf auslösen?

Da Discourse eine SPA ist und ich mir einige Dokumentationen zu diesem Thema angesehen habe, bin ich mir immer noch nicht sicher, wie ich dies erreichen kann:

  • Wir binden eine benutzerdefinierte JS-Bibliothek in die Fußzeile ein, die mit unserer Statistik-Lösung interagiert.
  • Wir möchten die Statistiken anreichern, indem wir bei jedem „Seitenaufruf“ benutzerdefinierte Ereignisse auslösen, z. B. immer dann, wenn der Benutzer zu einer „neuen“ Seite navigiert.

Pseudocode:

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

Wie und wo in meinem benutzerdefinierten Theme muss ich den Code platzieren, um dies zu erreichen?

Danke :slight_smile:

1 „Gefällt mir“

Sie möchten wahrscheinlich onPageChange aus unserer Plugin-API verwenden.

In einem Theme möchten Sie etwas wie das Folgende zu javascripts/discourse/api-initializers/your-initializer.js hinzufügen:

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

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

  initialize() {
    withPluginApi("0.8.36", (api) => {
      api.onPageChange(() => {
        // Skript, das bei Seitenwechsel ausgeführt werden soll, hier einfügen
      });
    });
  },
};
3 „Gefällt mir“

Danke! Das hat funktioniert.

Wissen Sie zufällig auch, wie ich die UI-Sprache aus den Benutzereinstellungen abrufen kann?

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