Moin
2025 年 11 月 26 日午前 12:04
1
このコンポーネントは、サイドバーにメッセージ セクションを追加し、個人メッセージの受信トレイ(ユーザー自身の受信トレイと、アクセス可能なグループの受信トレイ)へのリンクを表示します。また、セクションの見出しの隣には、新しい個人メッセージを作成するためのボタンも配置されます。
個人受信トレイ
デフォルトでは、このコンポーネントは全ユーザーの個人受信トレイへのリンクを追加します。show_personal_inbox 設定を使用すると、管理者はこれを完全に非表示にしたり、Personal message enabled groups サイト設定に基づいて PM の作成が許可されているユーザーにのみ表示したりできます。これは、通知メニュー、ユーザーのプロフィール、およびサイドバーのコミュニティセクションに表示される個人受信トレイリンクの表示方法と同様です。
個人受信トレイへの重複リンクを避けるため、サイドバーの最初のセクションにあるメッセージリンクを削除することをお勧めします。そのためには、その他 メニューを開き、このセクションをカスタマイズ を選択し、セクションからメッセージリンクを削除します。
グループ受信トレイ
ユーザーがメンバーであり、少なくとも 1 つのメッセージを含むすべてのグループ受信トレイが、自動的にサイドバーに表示されます。管理者は hide_group_inboxes 設定を使用して特定のグループ受信トレイを非表示にできます。これは、特定のグループ受信トレイがもはや積極的に使用されていない場合に役立ちます。
別の設定である use_group_page_inbox を使用すると、グループ受信トレイへのリンクがユーザーのメッセージインターフェース(/my/messages/group/{group_name})で開くか、グループページ(/g/{group_name}/messages/inbox)で開くかを選択できます。
未読インジケーター
各受信トレイリンクは、ユーザーの「新しいアイテムの数を表示する」設定に基づいて、現在のメッセージの状態を表示します。ドット または数値カウント のいずれかを選択できます。100 を超える値は 99+ として表示されます。
高度なグループ受信トレイ設定
グループ受信トレイの順序 をカスタマイズしたり、サイドバーに表示される名前 を変更したりするには、advanced_group_inbox_configuration 設定を使用します。
この設定では以下を行うことができます:
ドロップダウンからグループを選択
サイドバーに表示されるカスタム名を任意に定義
下部のボタンを使用して構成されたグループの順序を変更
カスタム名は、設定自体内でも役立ちます。
名前が指定されていない場合、エントリは group 1、group 2 など(位置に基づいて)とラベル付けされます。一時的な名前を追加すると順序変更が容易になり、必要に応じて保存前に削除することもできます。
高度な設定に追加されていないメッセージを持つグループも、サイドバーに表示されます。これらは構成されたグループの後にリストされ、グループ ID によって順序付けられます。
hide_group_inboxes 設定に記載されているグループは、高度な設定に含まれているかメッセージを持っているかに関わらず、常に非表示になります。両方の設定にグループが追加された場合を強調表示する管理者専用の警告も表示されます。
以下のスクリーンショットで、設定の例と、それが順序や表示名に与える影響を確認できます:
メッセージセクションの位置
メッセージセクションの位置を変更するには、CSS を使用するか、例として以下のようにします:
または、Discourse Sidebar Menu Reorder コンポーネントをインストールし、位置調整時にセクション名として inbox-section を使用することもできます。また、Navigation (sidebar) menu display control コンポーネントの order 設定を使用することも可能です。
「いいね!」 17
軽微な提案ですが、javascripts/discourse/api-initializers/group-inboxes-in-sidebar.gjs は GJS ではなく JS ファイルであるべきではないでしょうか?
素晴らしいコンポーネントです!
コードを10分間精査し、コアクラスを調べましたが、Discourse がいかに驚くほど作られており、すべてがうまく収まっているかに感銘を受けました。
「いいね!」 2
Moin
2025 年 11 月 26 日午後 3:39
4
はい、APIはセクションを他のセクションと同じように見せ、機能させるために必要なほぼすべてを提供しています。チャットもそれを使用しており、おそらく開発に影響を与えました。機能は同時に開発されました。
残念ながら、コアセクションの未読トピック数を表示する get badgeText() はサポートされていないため、数字については少し工夫する必要がありました。
「いいね!」 4
putty
(Derek Putnam)
2025 年 12 月 2 日午後 2:10
5
これに関する管理者設定が見つからなかったので、CSSでこれを非表示にするというPSAを投稿します。
.sidebar-section-link[data-link-name="my-messages"] {
display: none;
}
「いいね!」 2
Moin
2025 年 12 月 2 日午後 2:22
6
CSSでリンクを非表示にするのは、管理者がサイドバーをカスタマイズするための既存のオプションを使用するよりも、壊れやすいように思えますが、なぜCSSでの非表示を好むのですか?
[quote=“Moin, post:1, topic:347764”]このセクションをカスタマイズするには:
サイドバーのその他 をクリックします
拡張メニューの一番下にあるこのセクションをカスタマイズ を選択します
[/quote]
「いいね!」 2
putty
(Derek Putnam)
2025 年 12 月 2 日午後 2:24
7
ダープ、その通りです。管理者コンソールやコア機能の設定だろうと考えて、考えすぎていました。
「いいね!」 1
Moin
2025 年 12 月 2 日午後 10:51
9
{“content”:“ノートを拡張しました:\n[quote="Moin, post:1, topic:389664"]\n> 個人用受信トレイへの重複リンクを避けるため、サイドバーの最初のセクションにあるメッセージリンクを削除することを検討してください。これを行うには、その他 メニューを開き、このセクションをカスタマイズ を選択し、セクションからメッセージリンクを削除します。\n[/quote]”,“target_locale”:“ja”}
「いいね!」 5
Heliosurge
(Dan DeMontmorency)
2025 年 12 月 4 日午前 4:34
10
はい、そうでしたね。しかし、管理者としては管理パネルを操作することに慣れているため、手順をざっと見るときに細部を見落としてしまうことがあります 。
コアアップデートであっても、私たちが使用している何かが別の領域に移動するまで、細部まですべてを読み込まない人も多いのではないでしょうか。
ずっと昔のAndroid、例えばGingerbreadでは、ナビゲーションとマップが一緒になっていたと記憶しています。アップデートでマップと統合された後、ナビゲーションを探すのに10分くらい費やしましたよ。
nathank
(Nathan Kershaw)
2025 年 12 月 8 日午後 11:33
11
これは、メッセージを多用するサイトに最適な素晴らしいテーマコンポーネントです!@moin さんの素晴らしい仕事に感謝します!
グループをかなり利用する人たち(メッセージはその大きな要素です)にとって、さらに良くするために、これらの提案を検討していただけませんか?
サイドバーでの表示位置を選択可能にする
UIでメッセージをより強調するために、サイドバーの一番上(つまりリンクのすぐ下)に表示させたいと考えています。基本的に、通知に頼ることなく、最近のメッセージ(グループごと)を一目で簡単に見られるようにしたいのです。
これを実現するためにこのCSSを使用しましたが、他にもこれで助かる人がいるのではないかと思います。
/* Messagesセクションがflexboxコンテナの最初に表示されるようにする */
.sidebar-section-wrapper {
order: 1;
}
.sidebar-section-wrapper[data-section-name="inbox-section"] {
order: 0;
}
グループ受信トレイをグループのコンテキストで開く
ユーザーが自分のグループを簡単に見つけてやり取りできるようにしたいと考えています。グループページからアクセスする受信トレイ(つまり /g/the-group/messages/inbox)でメッセージを操作する方が、個人の受信トレイページ(つまり /my/messages/group/the-group)で操作するよりも理にかなっていると思います。
これにより、他のグループメンバーや設定への簡単なアクセスを備えた、きれいでグループ中心のページが得られます。
これをTCの設定で制御できると素晴らしいでしょう。
「いいね!」 3
Moin
2025 年 12 月 9 日午前 12:45
12
私はこれについて、どちらのルートがより良いデフォルト設定で、設定項目になるかについて考えましたが、今すぐ思い出せない理由で削除しました。後で確認します。未読メッセージのインジケーターに関するものだったと思います。未読メッセージのインジケーターがなくなるという結果になっても、あなたはまだこのルートを好みますか?
現在の位置は、コアにあったメッセージセクションと同じだと思います。
サイドバーのセクションの順序を変更するための優れたコンポーネントがすでに存在します:Navigation (sidebar) menu display control
両方のコンポーネントが順序を上書きしようとすることで競合を避けるために、管理者が異なる順序を望む場合は既存のコンポーネントを使用することが理にかなっているかもしれません(作成者はセクション名として「inbox-section」を使用すると動作することを確認しました)。
これに追加の設定を提供できるかどうかを確認する必要があります。いずれにしても、コンポーネント同士が干渉し合うことは避けたいです。
「いいね!」 2
nathank
(Nathan Kershaw)
2025 年 12 月 9 日午前 1:02
13
私のフォーク でこれをいじってみましたが、同じことを見つけました。機能はしますが、未読メッセージのインジケーターとサイドバーのリンクのハイライトの両方を失います。これら両方の機能は確かに非常に重要です!
私が到達したところまでのプルリクエストを作成しました。
main ← nathan-nz:main
closed 11:33PM - 11 Dec 25 UTC
Introduces a new setting to the TC which governs the URL target of the group inb… ox links.
The default / old behaviour is to link to the group inboxes within the user's personal inbox
- i.e. `/my/messages/group/the-group`
The new selectable behaviour links to the inboxes within the group pages
- i.e. `/g/the-group/messages/inbox`
- unfortunately, this loses the unread messages indicator and the navigation confirmation via sidebar menu item highlighting
しかし、本当に機能させるには、未読インジケーターとリンクのハイライトが機能する必要がありますよね?
ごもっともな点です!それはずっと良い考えです。恥ずかしながら、私はそのTCの作成者の一人です!
「いいね!」 1
Moin
2025 年 12 月 9 日午前 1:11
14
routeの代わりにhrefを使ったのはなぜですか?hrefは未読インジケーターでは全く機能しないと思います。私がより懸念していたのは、group.messages.inboxルート上の番号が、userPrivateMessagesで使えるような方法で利用できなかったことです。
「いいね!」 1
nathank
(Nathan Kershaw)
2025 年 12 月 9 日午前 1:18
15
私が下手な開発者だから、いくつか試行錯誤してようやく何かうまくいったんです!おそらく、あまり賢くない生成 AI に頼りすぎているせいかもしれませんね 。
ルートの活用を試みましたが、既存のルートを上書きすることができませんでした。そこで諦めました。
単にリンクを乗っ取って別の場所へ移動させるだけで、あの数字や動作を実現できるかとも思いましたが、私のような単純な者には少し複雑すぎます。
ぜひ「改善」してみてください!
(ちなみに、素晴らしい @moin さんがまさにそれを行い、機能を追加して正しく動作するようにしてくれました!)
「いいね!」 3
nathank
(Nathan Kershaw)
2025 年 12 月 11 日午後 5:51
16
これは確かに非常にうまく機能します。恥ずかしながら、私はそのTC の著者の一人です(@lillyに比べればずっと二次的ですが ) !
OPにこれを載せられると素晴らしいでしょう。
「いいね!」 2
Moin
2026 年 1 月 8 日午前 12:24
17
@nathank さんは、サイドバーのグループ受信トレイの順序を変更するオプションを求めていました。以前、テーマコンポーネントの設定でグループの順序を設定する方法について、Configuring the order of groups in theme component settings でアイデアを求めましたが、これで解決策にたどり着いたと思います。
これを、グループの短縮名ではなく完全名を表示するというリクエストと組み合わせました。完全名はコンテキストで簡単には取得できないため、管理者が代わりに カスタム表示名 を定義できるようにするという解決策です。以前はグループ名を表示するためだけに利用されていたフィールドが、サイドバーに表示される名前を制御するためにも使用されるようになりました。
どちらの機能も、新しい advanced_group_inbox_configuration 設定を通じて処理されます。
この設定では、以下のことができます。
ドロップダウンからグループを選択する
サイドバーに表示されるカスタム名をオプションで定義する
下部のボタンを使用して、設定されたグループの順序を変更する
カスタム名は、設定内でも役立ちます。名前が提供されていない場合、その項目は(位置に基づいて)group 1、group 2 などとラベル付けされます。一時的な名前を追加すると順序変更が容易になり、保存する前に削除することもできます。
高度な設定に追加されていないメッセージを持つグループは、引き続きサイドバーに表示され、設定されたグループの後にグループ ID の順にリストされます。hide_group_inboxes 設定にリストされているグループは、高度な設定に含まれているかメッセージがあるかに関わらず、常に非表示になります。
この例では、モデレーターグループにカスタム名は入力されていないため、設定内では
group 1 として表示されています。他のグループにはカスタム名が付いています。
この設定の結果は次のとおりです。
ここでは、「doggo-daily」と「cat_pics」の受信トレイの位置が入れ替わり、ハイフンやアンダースコアなしで表示されていることがわかります。「Team」受信トレイは、高度な設定で設定されたものの下に表示されます。
また、「admin」グループが高度な設定に追加され、同時に hide_group_inboxes 設定にも追加されたため、管理者のみに表示される警告が表示されていることも確認できます。
「いいね!」 5
nathank
(Nathan Kershaw)
2026 年 1 月 9 日午後 11:25
18
これは、コミュニケーションにグループを利用している人にとって、まさに素晴らしいものです。@Moin 、素晴らしい仕事です!
フィードバックに耳を傾け、積極的に関与してくれたこと(私からのものも含めて)、そして長年の問題をこれほどエレガントに解決する、非常によく設計された実用的なテーマコンポーネントを制作してくれたことに感謝します。
「いいね!」 3
agit
(Bren Typo)
2026 年 1 月 20 日午後 2:03
19
こんにちは、@Moinさん 、素晴らしい仕事とご多忙のところありがとうございます。
特に多くのグループを扱っている場合に、このプラグインにすべてのグループメッセージの統合ビュー という機能を含めることは可能でしょうか。PNビューには、このメッセージがグループにも送信されることを示す小さなバッジで視覚化する方法がすでにありますが、どのグループに属するかを示すバッジですべてのメッセージを表示してみてはいかがでしょうか。
Moin
2026 年 1 月 20 日午後 2:33
20
このテーマコンポーネントにはあまり適していないと思います。このコンポーネントの目的は非常に限定的で、サイドバーにメッセージセクションを追加することです。完全に異なる機能をサポートするコンポーネントには賛成できません。それは理解と保守をより困難にするからです。そのような機能は、個別のカスタマイズとして処理する方が良いでしょう。
さらに重要なのは、これがテーマコンポーネントにあまり適したものではないということです。テーマコンポーネントは、フロントエンドに既に存在するデータ、または既存のバックエンドエンドポイントから合理的に取得できるデータでのみ機能します。これが、このコンポーネントがサイドバーでグループ受信トレイを表示できる理由です。Discourseの多くの部分が、ユーザーがどのグループに属しているかを知る必要があるため、その情報はすぐに入手できます。
しかし、あなたが説明していることは、すべてのグループ受信トレイにわたるメッセージデータへのアクセスを必要とします。Discourseは現在、これを単一の場所で公開していません。テーマコンポーネントは理論的には各グループ受信トレイを一つずつ取得できますが、それはすぐに非効率になります。各リクエストは最初の30件のメッセージしか返さないため、受信トレイごとに複数のページを読み込む必要があります。次に、メッセージをアクティビティ順に並べ替えるには、実質的にすべての受信トレイのすべてのメッセージが同時に必要になります。
これらの制限のため、テーマコンポーネントはここでは不適切です。このデータを返すための適切なバックエンドエンドポイントを追加するプラグインの方が、はるかに合理的でスケーラブルなアプローチになります。
「いいね!」 4