カスタムメニュー項目にトピックを表示しようとしています

異なる談話概念を学び、適用するために、すべての「ホットトピック」を表示するプラグインを構築しています。ホットトピックの基準はまだ決めていませんが、現在直面している課題は以下の通りです。

各課題に対して私の思考プロセスも記載しています。具体的な解決策よりも、思考プロセスに基づいたアプローチを求めています。これにより、他の多くの問題に対しても明確かつ一般的に考える力を養いたいと考えています。

api.addNavigationBarItem を使用して新しいメニュー項目を作成しました。
また、フロントエンドとバックエンドの両方に /hot-topics というカスタムルートも作成しました。
現在は /hot-topics ルートに単純な h3 見出しを表示しています。

  1. 最初のタスクは、ナビゲーション項目をクリックした際に、ナビゲーションバーが引き続き表示され、「Hot Topics」タブがハイライトされるようにすることです。
    これは {{navigation-bar}} コンポーネントで実現可能だと考えていますが、ルートオブジェクトのモデルメソッドで navItems を返してテンプレートに渡す必要があると考えています。
    モデルメソッドからハードコードされた配列を返しましたが、うまくいきませんでした。

  2. 2 つ目のタスクは、いわゆるホットトピックを取得し、「Hot Topics」タブに表示することです。
    そのために {{categories-topic-list}} コンポーネントを使用しています。必要なトピックを表示するために、このコンポーネントにデータをどのように渡すべきかについて、頭を悩ませています。

進め方についてのアイデアをいくつか提案してください。また、この問題を解決しようとする際のあなたの思考プロセスはどのようなものですか?

Discourse を学ぼうとしていただき、ありがとうございます!

学習の一環であることは理解していますが、早速一つ質問させてください。「Hot」と、/top にアクセスして私たちがトップだと考える投稿を見ることの違いは何でしょうか?お好みで週別や日別でフィルタリングすることもできます。これが私たちの「Hot」に相当するはずです。

また、discovery. ルートの一部としてあなたのルートを追加することを検討してみてください。latest、new、top などで私たちが行っているようにです。これらのルートはすでにナビゲーションバーを自動的にレンダリングしてくれます。他のルートの作成方法を確認するために、Discourse のコードを見てみることをお勧めします。それらのルートには、トピックリストのデータを取得する方法の例が示されています。

この課題に取り組み始めた頃、作り直すのではなく既存のものを再利用する必要があると気づきました。Ember の概念をより深く理解するために、このコースを受講しました。

その知識と、あなたが共有してくれた discovery. ルートに関するアイデアを踏まえ、Discourse のコードを掘り下げて、Discourse がこれらのルートに対してどのようにデータを取得し、コンポーネントに渡しているのかを明確に理解しようと思います。

@eviltrout、お時間をいただき本当にありがとうございます。