| | |
|— | — | —|
|
| 概要 | 特定のグループ向けのカスタムサイドバーメニューを作成|
|
| プレビュー | テーマクリエーターグループに参加し、こちらでプレビューしてください|
|
| リポジトリ | https://github.com/Lillinator/discourse-group-sidebar-menus|
|
| インストールガイド | テーマまたはテーマコンポーネントのインストール方法|
|
| Discourse テーマに不慣れですか? | Discourse テーマの利用に関する初心者ガイド|
このテーマコンポーネントをインストール
概要
この Discourse テーマコンポーネントを使用すると、フォーラム管理者は特定のグループのメンバーのみがアクセスできるカスタムサイドバーメニューを作成できます。
主な機能:
- グループベースのメニュー表示権限 - メニューセクションは、権限を持つユーザーのサイドバーでのみレンダリングされます
- オブジェクトベースの設定 - メニュー作成用の使いやすい設定 UI
- 複数のセクション - 異なるグループ向けに無制限のメニューセクションを作成可能(実用上の制限あり)
- 管理者用クイック編集リンク - メニューヘッダーの鉛筆アイコンをクリックすると、コンポーネント設定に直接移動できます
使用例
- 担当者専用リソースとクイックリンク
- カテゴリモデレーター用ショートカット
- カスタムグループポータル(プロジェクトチーム、学習グループ、読書会、VIP メンバーなど)
- 親サイトやパートナーサイトのリソースへのリンク
設定
メニューセクション (menu_sections)
カスタムグループメニューセクションを設定するためのオブジェクト設定エディタを開きます。
セクションのプロパティ
| プロパティ | 説明 |
|---|---|
| メニュータイトル | サイドバーセクションのヘッダーとして表示されるタイトル |
| 許可されたグループ | このメニューセクションを表示できるグループ(セクションあたり最大 20 グループ) |
| メニューリンク | このセクションに表示するリンクのコレクション(セクションあたり最大 20 リンク) |
リンクのプロパティ
| プロパティ | 説明 |
|---|---|
| アイコン | FontAwesome のアイコン名(例:circle-info、star、user-group)。Admin > 全てのサイト設定 > svg アイコンのサブセット に追加する必要がある場合があります |
| テキスト | リンクの表示ラベル |
| URL | リンクの宛先 - 相対パス(/faq、/my/preferences)と絶対 URL(https://example.com)の両方をサポート |
インストールと設定
- Installing a theme or theme component に従ってテーマコンポーネントをインストールします。
オブジェクト設定エディタに移動します+ new_menu_sectionボタンをクリックして、最初のカスタムメニューセクションを設定しますメニュータイトルフィールドに新しいメニューのタイトルを入力し、アクセス権を付与したいグループを選択します。- 別のセクションを追加するには
+ new_menu_sectionをクリックするか、変更を保存します。
設定例を含む管理者用設定画面のスクリーンショット
新規インストール後 - オブジェクト設定エディタ に移動します。
2 つのカスタムメニューと 3 人のユーザー(そのうち 1 人は管理者)の例:
@Catraは猫が大好きで、pinkグループのメンバーです。このグループはCat Menuにアクセスできます@HelloKittyは犬が好きで、purpleグループのメンバーです。このグループはDog Menuにアクセスできます@Lillyは犬を飼っているためpurpleグループのメンバーですが、犬の方が優れていると考えています。ただし、彼女はフォーラムの管理者でもあり、猫はより多くの監督が必要であるため、Cat Menuにもアクセスできます![]()
新しいカスタムメニューを作成します - 例として Cat menu を作成し、アクセス権を付与するグループ(pink と admins)を追加します。その後、+ menu_link ボタンをクリックして、新しいメニューのリンクを設定します。
メニューリンクを追加します - 1. Fontawesome のアイコン名、2. リンクに表示するテキスト、3. 相対または絶対の URL。このメニューに別のリンクを追加するには + menu_link ボタンをクリックします。
Dog menu という名前の別のカスタムメニューセクションを作成し、purple グループのみにアクセス権を付与してリンクを設定します:
結果としてのサイドバーメニューへのアクセスのスクリーンショット
ユーザー @Catra は Cat メニューを持っています!![]()
ユーザー @HelloKitty は Dog メニューを持っています!![]()
管理者ユーザー @Lilly は両方のメニューを持ち、編集することもできます!![]()
設定例
Menu Title: "Cat Stuff"
Allowed Groups: team-cat
Links:
- Icon: link
Text: Cat videos & photos
URL: /t/cat-videos-and-photos/123
- Icon: magnifying-glass
Text: Cat wiki
URL: https://en.wikipedia.org/wiki/Cat
重要な注意点
管理者アクセス
管理者は、グループ用に設定されたメニューを表示するには、自分自身をそのグループに追加する必要があります。 管理者権限だけでは、すべてのカスタムメニューへのアクセスは得られません。これは意図的な設計です。また、メニューの許可グループに所属する管理者は、セクションヘッダーにコンポーネント設定へのリンクを含む鉛筆アイコンを表示します。
グループ設定
everyoneグループはサポートされていません - すべてのユーザー(匿名の訪問者を含む)向けのグローバルカスタムメニューを作成するには、ネイティブのサイドバーフッター UI を使用してください。- メニューセクションあたりの最大グループ数は 20 です。それ以上必要な場合は、異なるグループ割り当てを持つ重複セクションを作成してください。
- 複数のグループに所属するユーザーは、アクセス権を持つすべてのメニューセクションを表示します。
テストと整理
異なるグループの組み合わせに対して正しいアクセス権を確認するには、テストアカウントを使用してください。複雑さが増すにつれて混乱を避けるために、メニュー設定を追跡してください。多くのグループを持つ大規模なフォーラムでは、アクセスマトリックスや同様のドキュメントの作成を推奨します。
セキュリティ上の考慮事項
このコンポーネントは UI レベルのアクセス制御のみを提供します。メニューの表示を制御するだけであり、リソースへのアクセス自体を制御するものではありません - このコンポーネントはサイドバーに表示されるものを制御するだけであり、実際のリソースへのアクセス権限を制御するものではありません。
実際のリソースを保護するには、常に Discourse の組み込み権限システムに依存してください:
- カテゴリ権限を適切に設定する
- トピックの表示制限を設定する
- コンテンツに対してグループベースのアクセス制御を使用する
- プライベートなリソースには認証を必須とする
管理者のベストプラクティス:
リンク先のカテゴリのセキュリティ権限とグループメンバーシップを別々に設定してください。例えば、プライベートカテゴリへのメニューリンクがある場合、そのカテゴリの権限が適切に設定されている必要があります。管理者は、外部リソースへのリンクが選択されたグループに対して適切に承認されていることを確認する責任があります。
これは @Moin との共同プロジェクトでした。彼女の意見、インスピレーション、フィードバックは非常に貴重でした。
他の Discourse 関連のプロジェクトもチェックしてみてください







