| | |
|— | — | —|
|
| 概要 | 選択されたグループ用にカスタムサイドバーメニューを作成|
|
| プレビュー | このテーマクリエイターグループに参加し、その後ここでプレビューしてください|
|
| リポジトリ | https://github.com/Lillinator/discourse-group-sidebar-menus|
|
| インストールガイド | テーマまたはテーマコンポーネントのインストール方法|
このテーマコンポーネントをインストール
概要
この Discourse テーマコンポーネントにより、フォーラム管理者は、選択されたグループのメンバーにのみアクセス可能なカスタムサイドバーメニューを作成できます。
主な機能:
- グループベースのメニュー表示制御 - メニューセクションは、権限を持つユーザーのサイドバーでのみレンダリングされます
- オブジェクトベースの設定 - メニュー作成用の使いやすい設定 UI
- 複数のセクション - 異なるグループ向けに無制限のメニューセクションを作成可能(実用的な範囲内)
- 管理者用クイック編集リンク - メニューヘッダーの鉛筆アイコンをクリックすると、管理者が直接コンポーネント設定に移動できます
いくつかのユースケース
- スタッフ専用リソースとクイックリンク
- カテゴリモデレーター用ショートカット
- カスタムグループポータル(プロジェクトチーム、学習グループ、読書会、VIP メンバーなど)
- 親サイトまたはパートナーサイトのリソースへのリンク
設定
メニューセクション(menu_sections)
カスタムグループメニューセクションを設定するためのオブジェクト設定エディタを開きます。
セクションのプロパティ
| プロパティ | 説明 |
|---|---|
| メニュータイトル | サイドバーセクションのヘッダーとして表示されるタイトル |
| 許可されたグループ | このメニューセクションを表示できるグループ(セクションあたり最大 20 グループ) |
| メニューリンク | このセクションに表示するリンクのコレクション(セクションあたり最大 20 リンク) |
リンクのプロパティ
| プロパティ | 説明 |
|---|---|
| アイコン | FontAwesome アイコン名(例:circle-info、star、user-group)。Admin > All site settings > svg icon subset に追加する必要がある場合があります |
| テキスト | リンクに表示されるラベル |
| URL | リンクの宛先 - 相対パス(/faq、/my/preferences)と絶対 URL(https://example.com)の両方をサポート |
インストールと設定
- Installing a theme or theme component に従ってテーマコンポーネントをインストールします。
Objects setting editorに移動します。+ new_menu_sectionボタンをクリックして、最初のカスタムメニューセクションを設定します。Menu titleフィールドに新しいメニューのタイトルを入力し、アクセス権を付与したいグループを選択します。+ new_menu_sectionをクリックして別のセクションを追加するか、変更を保存します。
設定例を含む管理者設定のスクリーンショット
新規インストール - Objects setting editor に移動します。
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 関連のコンテンツをチェック







