他のページでのディスコース変数の表示

こんにちは。
別のプラグインと組み合わせて、/about ページのサイト統計をフロントページに表示したいと考えています。

例えば、プラグインの .hbs ファイルに Members: {{number model.stats.user_count}} を追加しましたが、Discourse を再構築すると 0 と表示されてしまいます。ユーザー数は 0 人ではありません。:slight_smile:

何かアイデアやヒントはありますか?

プラグインの詳細がわからないと判断が難しいですね。すでにそのデータを含むページから取得する方が簡単かもしれません。

基本的に、vBulletin が行っているような、フォーラムの下部に掲示板の統計情報を表示するプラグインを作成しています。

現状では以下のような状態です:
SiteStats

プラグインディレクトリ内の /assets/javascripts/discourse/components/site-stats.hbs ファイルは次の通りです:

<div class="board-statistics-headrow">{{d-icon "far-chart-bar"}}  {{i18n 'about.stats'}}</div>
<div class="board-statistics-row">
  スレッド: {{number model.stats.topic_count}} 投稿: {{number model.stats.post_count}} 会員: {{number model.stats.user_count}}
</div>
</div>

{{number model.stats.topic_count}} は、Discourse の GitHub リポジトリ内にある about.hbs ファイルから取得しました。

これには 2 つの方法があります。

まず、/about ページでどの (Rails) コントローラーが呼び出され、必要なデータを取得しているかを確認してください。

Ember のルートファイルの model メソッド内で、そのコントローラーを Ajax で呼び出し、必要なデータを取得できます。

あるいは、

自分でコントローラーを作成している場合は、新しいメソッドを作成し、見つかったコントローラーからロジックをコピーして新しいコントローラーに追加します。必要であれば、そこで必要なデータをフィルタリングしてください。

この model 変数は、対象となるルートの model メソッドによって返されるものです。

Discourse 内の仕組みを包括的に理解するために、こちらのガイドを確認することをお勧めします。

わかりました。そのプラグインガイドを確認して、さらに進められるか見てみます。

現状では、https://github.com/NCC-Gnisha/discourse-site-statistics まで進んでいます。