すべてのページ「ロード」でカスタム統計スクリプトをトリガーするにはどうすればよいですか?

Discourse が SPA であることを認識しており、このトピックに関するドキュメントをいくつか確認しましたが、これを達成する方法がまだわかりません。

  • フッターにカスタム JavaScript ライブラリを含め、統計ソリューションと連携させます。
  • 「ページ読み込み」ごと、たとえばユーザーが「新しい」ページに移動するたびにカスタムイベントをトリガーして、統計を充実させたいと考えています。

疑似コード:

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

これを達成するために、カスタムテーマのどこにコードを配置する必要がありますか?

:slight_smile: ありがとう

「いいね!」 1

plugin APIonPageChange を使用するのが良いでしょう。

テーマ内では、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(() => {
        // ここにページ変更時に実行したいスクリプトを記述します
      });
    });
  },
};
「いいね!」 3

ありがとうございます!うまくいきました。

ちなみに、ユーザーの設定からUI言語を取得するにはどうすればよいですか?

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