カテゴリのトピックリストの上部にあるタグ

皆さん、こんにちは。

Discourse のテンプレート、プラグインのアウトレット、その他の素晴らしい機能を使って多くのことを学びました。トピック一覧の上部に、カテゴリ内で使用されているすべてのタグを一覧表示することは可能でしょうか?

ある程度は、以下でこれを達成できます。Discourse Popular Tag Sidebar

学べることを確認します。

top_tags は簡単に取得できます。

ajax をインポートします – import { ajax } from \"discourse/lib/ajax\"; 、その後 –

ajax(`/c/general.json`).then((data) => {
  console.log(data.topic_list.top_tags);
});

これは general カテゴリです。これを変数やテーマコンポーネントの設定に置き換えることができます。

カテゴリでフィルタリングせずにすべてのタグを表示したい場合は、/tags.json を使用します。

トピックリストの上部にあるアウトレットを使用するには、アウトレット名は /javascripts/discourse/connectors/above-main-container/{name-of-your-file}.hbs です。他のテーマコンポーネントでどのように行われているかを確認し、Using Plugin Outlet Connectors from a Theme or Plugin を読むことをお勧めします。


より難しいのは、すべてのタグを取得することです。/c/general.json からのデータ構造を確認できます。これは次のようになります。data.topic_list.top_tags の代わりに、data.topic_list.topics の各要素を反復処理し、各 topictags を配列に追加できます。data.topic_list.topics.map((topic) => topic.tags);

お役に立てば幸いです! :slight_smile: