作成トピックソート

:information_source: 概要 トピックリストにソート可能な作成日列を追加します
:eyeglasses: プレビュー \u003chttps://discourse.theme-creator.io/theme/Alteras/created-topic-sort\u003e
:hammer_and_wrench: リポジトリ GitHub - Alteras1/discourse-created-topic-sort: Discourse theme component adds topic sorting by created date
:question: インストールガイド テーマまたはテーマコンポーネントのインストール方法
:open_book: Discourseテーマ初心者の方へ Discourseテーマ使用の初心者ガイド

このテーマコンポーネントをインストール

これにより、トピックリストにソート可能な作成日列が追加されます。また、ナビゲーションバーにオプションの「作成済み」タブも追加されます。

デスクトップ表示では、列全体が追加されます。モバイルでは、作成日のみがアクティビティ日とともにインラインで表示され、「作成済み」ソートが選択されている場合(以下のスクリーンショットを参照)にのみ表示されます。

\u003e :information_source: このコンポーネントを使用する前に、コミュニティが作成日を知る必要性を評価することをお勧めします。新しいトピックを一定期間内に自動フラグ付けする組み込みの方法がすでに存在します(ユーザーは設定 > トラッキング > トピックでカスタマイズできます)。

設定

作成日による並べ替えナビゲーションバー項目を有効にする

ナビゲーションメニューに「作成日による並べ替え」ナビゲーションバー項目を追加します。デフォルト:true

スクリーンショット

デスクトップ

モバイル

作成日フィルターのみで列を有効にする

作成日フィルター外での作成日列の表示を防ぎます。「作成日による並べ替えナビゲーションバー項目を有効にする」がtrueである必要があります。デフォルト:false

ホームページでナビゲーションバー項目を有効にする

ホームページに「作成日による並べ替え」ナビゲーションバー項目を追加します。デフォルト:true

ホームページで列を有効にする

ホームページに「作成済み」列を追加します。デフォルト:true

ナビゲーションバー項目を表示するカテゴリ

「作成日による並べ替え」ナビゲーションバー項目を表示するカテゴリのリスト。すべてに表示するには空のままにします。デフォルト:empty

作成済み列を表示するカテゴリ

「作成済み」列を表示するカテゴリのリスト。すべてに表示するには空のままにします。デフォルト:empty

ナビゲーションバー項目の前

リスト内のナビゲーションバー項目の位置を調整します。デフォルト:top

スクリーンショット

並べ替え


モバイルビュー

カテゴリとタグ付き

互換性 & 注意事項

モバイルでは、並べ替え機能はすでに大きく制限されているため、作成日は情報提供のみとして機能します。追加フィールドは、作成日が最終更新日と異なる場合にのみ表示されます。

Topic List Thumbnails との互換性は限定的です。リストスタイルでは、通常どおり機能します。ブログスタイルでは、作成日は右下に表示されます。グリッドスタイルとマッシュルームスタイルでは、作成日は「作成済み」フィルターが選択されている場合にのみ表示され、最終更新日を置き換えます。最小スタイルでは、作成日は非表示になります。

「いいね!」 16

素晴らしい、フォーラムを変更する別の完璧なプラグインです! Discourse Nav Item Icon / Emoji プラグインと統合できれば素晴らしいでしょう。

「いいね!」 3

これで機能するはずです。:slight_smile:
例のように追加するだけです。
emoji:created_date:twitter:spiral_calendar:filter

「いいね!」 4

設定を追加できることを確認しました。Don が行っているように、機能します。


「いいね!」 5

素晴らしい!残念ながら、Topic Thumbnails TC とうまく連携せず、何らかの理由で余分な時間が追加されます。

中央下部にある余分な 7 時間に注意してください。

.topic-list .topic-list-data:last-of-type を非表示にできると思いますが、お知らせしておきます :grin:

編集:別の奇妙な点を見つけました。最新 をクリックすると 作成済み が強調表示され、作成済み をクリックすると 最新 が強調表示されます :zany_face:

「いいね!」 1

ふむ。それは興味深いですね。トピックサムネイルと作成トピックソートが同時にテンプレートに追加されることによる奇妙な副作用のようです。Masonryとグリッドモードの問題でしょうか?テーマコンポーネントの使用をクリーンに検出する方法を見つけたら、CSSで適切な調整を試してみます。

最新と作成のハイライトは非常に奇妙に聞こえます。作成は /latest?order=created がURLに含まれている場合にのみハイライトされるはずですが…うーん…

コンポーネントの一部を更新し、Topic Thumbnails コンポーネントに合わせて(少なくともそれに合わせるように)見栄えを良くしました。

ブログ スタイルでは、作成日は右下隅に表示されます。バンプ日時の隣にきれいに配置する方法が見つからなかったので、これで十分です。グリッド スタイルとメーソンリー スタイルでは、作成日は「作成済み」フィルターが選択されている場合にのみ表示され、アクティビティ日時が置き換えられます。アクティビティ日時と作成日時の両方を同時に表示しようとしましたが、カードが窮屈になってしまいました。ミニマル スタイルでは、作成日は非表示になります。

これをカテゴリスコープに対応させるのは難しいでしょうか?アナウンスセクションでは使用したいのですが、一般的なディスカッションなどでは表示したくありません。

「いいね!」 1

いいえ、まったく!ナビゲーションバーの項目と列が表示される場所を制御するための4つの新しい設定を追加するアップデートをリリースしました。

  • ホームページにナビゲーションバー項目を有効にする: ホームページに「作成日で並べ替え」ナビゲーションバー項目を追加します。
  • ホームページに列を有効にする: ホームページに「作成日」列を追加します。
  • ナビゲーションバー項目を表示するカテゴリ: 「作成日で並べ替え」ナビゲーションバー項目に表示するカテゴリのリスト。すべてのカテゴリに表示する場合は空のままにします。
  • 作成日列を表示するカテゴリ: 「作成日」列を表示するカテゴリのリスト。すべてのカテゴリに表示する場合は空のままにします。

ただし、列の表示に関する制限は、新しいトピックリストの変更を使用しているサイトでのみ機能することに注意してください。

「いいね!」 2

ありがとうございます!:star_struck: 素晴らしいです!

これをデフォルトのホームページにする方法はありますか?いくつかのプラグインが「トップメニュー」サイト設定にオプションを追加しているのを見たので、可能だと思います。

その後、CSSで標準の「最新」を非表示にすることで、効果的に置き換えることができます。

デフォルトのホームページは少しのJavaScriptで設定できます:

import { setDefaultHomepage } from "discourse/lib/utilities";
setDefaultHomepage("/latest?order=created");

トップメニューの設定にオプションを追加するのは確かに望ましいですが、少なくとも私が最後に確認した時点では、それをTCから行う方法はないと思います。途中で何か変わったかどうか確認しなければなりません。

「いいね!」 1

ありがとうございます!それは機能するはずですが、URLに%3F_discourse_homepage_rewriteが追加され、並べ替えに干渉します。:confounded_face:

「いいね!」 2

setDefaultHomepage("latest?order=created&"); で回避できましたが、
しかし、問題は、すべてのインジケーターがそう言っているにもかかわらず、実際の並べ替えが適用されないことです。

そこで、Custom Homepage for Groups で同じURLを試したところ、うまくいきました :tada: そのコンポーネントのリダイレクトが、同じ方法を使用していると確信しているのに、なぜ異なる動作をするのかはよくわかりません。

「いいね!」 2

解決しました。PreloadStore をクリアする必要がありました。

デフォルトのテーマを編集するか、新しいコンポーネントを追加して、これを JS に追加できます。

import { apiInitializer } from "discourse/lib/api";
import { setDefaultHomepage } from "discourse/lib/utilities";
import PreloadStore from "discourse/lib/preload-store";

export default apiInitializer((api) => {
  setDefaultHomepage("latest?order=created&");
  PreloadStore.remove("topic_list");
});

そして、最新タブを削除するには、この CSS を追加します。

li.nav-item_latest {
    display: none;
}

ルートホームページの URL に留まることができればよかったのですが、それはおそらくプラグインが必要になるでしょう。

「いいね!」 3

結局そのプラグインを作成しました: Created as Default Sort Order
これで私のホームページは作成日でクリーンにソートされています。列を追加するためにこのコンポーネントをまだ使用しています。

「いいね!」 4

この素晴らしいテーマコンポーネントをありがとうございます!

ナビバーの項目が表示される場所を設定できる、非常に小さくてシンプルなPRを作成しました。

「いいね!」 2

PRありがとうございます!マージし、OPの設定の説明を更新しました。

「いいね!」 1