カスタムフィルターホームページの作成

このような動的なホームページを作成できますか?

  • 最近アクティブなトピック10件(今週)
  • 最新の作成トピック5件(今日)
  • その他の最近のトピック5件(今週)
  • 最も返信の多いトピック5件(今週)
  • 最もいいねが多いトピック5件(今週)
  • 最新の作成トピック5件(昨日または今日)

Discourse Filtered Topics Listには、このようなホームページを作成できるテーマコンポーネントがありますが、特定の期間しか機能しないため、毎日期間を変更する必要があるという欠点があると感じています。

つまり、今のところ、日付を追加できるという前提で機能します。

activity-before:YYYY-MM-DD 指定された日付より前に最新の更新があったトピック
activity-after:YYYY-MM-DD 指定された日付より後に最新の更新があったトピック
created-before: YYYY-MM-DD 指定された日付より前に作成されたトピック
created-after:YYYY-MM-DD 指定された日付より後に作成されたトピック

しかし、それでは常に日付を変更する必要があります。フォーラムで他にできることはありますか?

「いいね!」 2

また、このコンポーネントの主な問題点は、ソートするたびにトピックが繰り返されることです。

これらのトピックを文字通り最も返信が多い/「いいね!」が多いものにする必要がありますか? /top トピックリストを使用すると、自動的に期間を設定できます… 表示回数、いいね!数、投稿数を考慮したトップ(これらの重みはサイト設定で少し調整できます)

はい、これは複数のトピックリストをソースにすることの複雑さです。コンポーネントは各リストを相互参照し、重複を削除する必要があります。それほど複雑ではありませんが、利用可能なコンポーネントにこれが実装されているとは思えません。

「いいね!」 1

完全に返信やいいね!に依存するわけではありませんが、ダイナミックなホームページを作成しようとしています。

つまり、いずれかのフィールドから重複するトピックを削除できるコンポーネントがあれば、うまくいくということでしょうか?

Filtered Topic Lists に「重複を非表示」機能を追加するのは、@gormus さんが興味があれば、それほど複雑ではないでしょう。findFilteredTopics アクションを変更して、すべてのトピックIDをリストに格納し、重複をフィルタリングすることができます。

欠点は、10個のトピックのリストを欲しい場合、重複が削除された後に5個しか得られない可能性があることですが、設定で指定された数よりも少し多めに取得することで、ある程度回避できるかもしれません。

「いいね!」 1

以前、いくつかのプロジェクトのホームページにフィルタリングされたリストを追加したことがありますが、フィルタが重複する複数の「最新」リストを生成することについては、まず非常に活発なコミュニティが必要だと注意しておきます。コミュニティがそれほど活発であれば、動的なホームページを作成するためのより豊富なコンテンツも利用できるようになります。その場合、さまざまなリストのブロックは、静的で視覚的にあまり魅力的ではないように見えるかもしれません。

ただし、少し異なるアプローチとして、手動の時間フィルタを持つリストを1つか2つ配置することも検討できます。これは、ユーザーにとってより動的に感じられるかもしれません。このビューのように:

これは、Central theme から取り入れた機能で、ブロックコンポーネントとしてここで利用できます: Manuel Kostka / Discourse / Blocks / Top Topics · GitLab

「いいね!」 4

確かに、これはうまくいくかもしれませんが、実際にはページに複数のフィルターを設定したかったのです。

「いいね!」 2

はい、それは実際に機能します。@gormusさんが興味を持ってくれるといいのですが :))

本日、これを少し改善するアップデートを行いました: FEATURE: allow date-based filters to accept a day count by awesomerobot · Pull Request #33197 · discourse/discourse · GitHub (Discourseを次にアップデートした際に適用されます)

これにより、activity/created-before/afterフィルターに希望する日数を入力できるようになります。例えば次のようにできます。

activity-after:7 過去7日間にアクティブだったトピック
created-after:1 1日以上前に作成されたトピック

今日(深夜以降)を表すために0を使用することもできます。

「いいね!」 7

うわ、早かった。ありがとうございます!!

「いいね!」 2

Hi @awesomerobot 、必要な変更を加え、現在は完全に正常に動作していることをお知らせしたかっただけです。ありがとうございました :))

「いいね!」 1

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.