모든 페이지 "로드" 시 사용자 정의 통계 스크립트를 실행하는 방법은?

Discourse가 SPA라는 것을 알고 이 주제에 대한 문서를 살펴봤지만, 여전히 어떻게 해야 할지 확신이 서지 않습니다:

  • 푸터에 통계 솔루션과 인터페이스하는 사용자 정의 JS 라이브러리를 포함합니다.
  • 모든 “페이지 로드” 시, 예를 들어 사용자가 “새” 페이지로 이동할 때마다 사용자 정의 이벤트를 트리거하여 통계를 보완하고 싶습니다.

의사 코드:

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:

대부분 플러그인 API의 onPageChange를 사용하게 될 것입니다.

테마에서는 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(() => {
        // 페이지 변경 시 실행할 스크립트를 여기에 작성
      });
    });
  },
};

감사합니다! 정말 잘 작동했습니다.

혹시 사용자 설정에서 UI 언어를 가져오는 방법도 아시나요?