AJAX アプローチは「MVP(最低限の実用製品)」として機能することを確認しました。余談ですが、[forum-url]/groups.json に API リクエストを送信することで、サイト内のすべてのグループを取得でき、そこからループ処理を行うことができるはずです。そのため、複数の呼び出しを行う必要はありません。
以下の点についてお伺いしたいのですが:
– AJAX/JSON API アプローチにおいて、特定のページにユーザーが移動した時のみ関数を実行させる方法はご存知でしょうか?現在、カスタマイズダッシュボードの </head> セクションに AJAX コードを配置すると動作しますが、サイトが読み込まれるたびに実行されてしまいます(グループインデックスページが読み込まれた時のみ実行させたいのです)。
はい、そのガイドをはじめ、見つけられる限りの他のガイドも読みました。素晴らしいガイドですが、そのガイド(や meta の他の記事)の内容を実際のこのようなカスタマイズに落とし込むのは難しいと感じています。これらのカスタマイズを行うには、Discourse のコードベースにおいてテンプレート、コントローラー、モデルがどのように連携しているかを深く理解する必要があるようです。
余談
Ember はパフォーマンスの高いアプリ構築には優れたシステムですが、異なるファイル間の関係を把握するのは難しいと感じています。例えば、Github リポジトリ内のビューから適切なテンプレートを見つけても、そのテンプレートが他のどのテンプレートとリンクしているか、あるいはどのコントローラーやモデルが関連しているかはほとんど分かりません。不可能ではありませんが、時間がかかり、これらのカスタマイズを行うにはそれらの関係を理解している必要があります。
一方、Angular では、ビューコンポーネントの部品が通常、html、typescript、css ファイルとして一緒にグループ化されており、他の関連ファイルもこれらのファイル内で明確にマークされています(使用されているサービスは typescript ファイルで、挿入される他のコンポーネントは html ファイルで明確に示されています)。Discourse の Ember 構造ではそのような仕組みにはなっていないようですが(その構造を否定するわけではありません。非常に安定しており、パフォーマンスも極めて高いアプリです)、慣れるまで時間がかかります。