| 概要 | 選択されたグループにアクセスが制限されたカスタムサイドバーメニューを作成します | |
| プレビュー | このテーマクリエーターグループに参加してから、こちらでプレビューしてください | |
| リポジトリ | \u003chttps://github.com/Lillinator/discourse-group-sidebar-menus\u003e | |
| インストールガイド | テーマまたはテーマコンポーネントのインストール方法 | |
| Discourseテーマは初めてですか? | Discourseテーマを使用するための初心者ガイド |
このテーマコンポーネントをインストール
概要
このDiscourseテーマコンポーネントは、フォーラム管理者に、選択されたグループのメンバーのみがアクセスできるカスタムサイドバーメニューを作成する機能を提供します。
主な機能:
- グループベースのアクセス制御 - メニューセクションは承認されたユーザーに対してのみレンダリングされます
- 管理者UI設定 - グループメニューセクションを作成するためのすべての設定は、テーマコンポーネントの管理者UIにあります
- 複数のセクション - 異なるグループに対して無制限のメニューセクションを作成できます(常識の範囲内で)
- クライアントサイドのセキュリティ - 権限のないユーザーは、DOM、Webインスペクター、またはセーフモードでメニューセクションを表示できません
- グローバルな汚染なし - グローバルなサイドバーセクションを作成する必要がありません
- 管理者クイック編集リンク - メニューヘッダーの鉛筆アイコンは、管理者をコンポーネント設定に直接リンクします
ユースケース
- スタッフ専用のリソースとクイックリンク
- カテゴリモデレーターのショートカット
- カスタムグループポータル(プロジェクトチーム、学習グループ、ブッククラブ、VIPメンバー)
- 親またはパートナーのウェブサイトリソースへのリンク
設定
メニューセクション (menu_sections)
カスタムグループメニューセクションを設定するために、オブジェクト設定エディタを開きます。
セクションのプロパティ
| プロパティ | 説明 |
|---|---|
| メニュータイトル | サイドバーセクションヘッダーとして表示されるタイトル |
| 許可されたグループ | このメニューセクションの表示が許可されているグループ(最大:セクションあたり20グループ) |
| メニューリンク | このセクションに表示するリンクのコレクション(最大:セクションあたり20リンク) |
リンクのプロパティ
| プロパティ | 説明 |
|---|---|
| アイコン | FontAwesomeアイコン名(例:circle-info、star、user-group)。管理者 > すべてのサイト設定 > svgアイコンサブセットに追加する必要がある場合があります |
| テキスト | リンクの表示ラベル |
| URL | リンク先 - 相対パス(/faq、/my/preferences)と絶対URL(https://example.com)の両方をサポート |
インストールと設定
- https://meta.discourse.org/t/how-do-i-install-a-theme-or-theme-component/63682に従ってテーマコンポーネントをインストールします。
オブジェクト設定エディタに移動します- 最初のカスタムメニューセクションを設定するには、
+ new_menu_sectionボタンをクリックします メニュータイトルフィールドに新しいメニューのタイトルを付け、アクセスを許可するグループを選択します。+ new_menu_sectionをクリックして別のセクションを追加するか、変更を保存します。
設定例を含む管理者設定スクリーンショット
新規インストール - オブジェクト設定エディタに移動します。
\u003e #### 2つのカスタムメニューと3人のユーザー(うち1人は管理者)がいる例のシナリオ:
\u003e * @Catraは猫が大好きで、pinkグループのメンバーであり、このグループはCat Menu
へのアクセス権を持ちます
\u003e * @HelloKittyは犬が好きで、purpleグループのメンバーであり、このグループはDog Menu
へのアクセス権を持ちます
\u003e * @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: "スタッフリソース"
Allowed Groups: staff
Links:
- Icon: wrench
Text: モデレーションガイド
URL: /t/moderation-guide/123
- Icon: chart-line
Text: 分析ダッシュボード
URL: /admin/dashboard
重要な注意事項
管理者アクセス
- 管理者は、グループに自分自身を追加する必要があります。そのグループ用に設定されたメニューを表示するには。管理者ステータスだけでは、すべてのカスタムメニューへのアクセス権を付与されません。これは意図的です!
- メニューの許可されたグループに属する管理者は、セクションヘッダーにコンポーネント設定へのリンクである鉛筆アイコンが表示されます。
グループ設定
everyoneグループはサポートされていません - すべてのユーザー(匿名訪問者を含む)に対するグローバルなカスタムメニューを作成するには、ネイティブのサイドバーフッターUIを使用してください。- メニューセクションあたりの最大グループ数は20です。それ以上必要な場合は、異なるグループ割り当てで重複するセクションを作成してください。
- 複数のグループに属するユーザーは、アクセス権を持つすべてのメニューセクションを表示します。
テストと整理
- テストアカウントを使用して、異なるグループの組み合わせに対する正しいアクセスを確認してください。
- フォーラムが大きくなり、グループが増える場合は、メニュー設定を追跡して混乱を避けてください。大規模なフォーラムでは、アクセス行列または同様のドキュメントが推奨されます。
セキュリティに関する考慮事項
このコンポーネントはUIレベルのアクセス制御を提供します。メニューアクセスを制御し、リソースアクセスを制御するものではありません。カテゴリセキュリティ権限の代わりになるものではありません。
このコンポーネントが保護するもの:
メニューセクションは、権限のないユーザーグループからはアクセスできません
リンクはインスペクター/コンソール/セーフモードでは検出できません
メニューの煩雑さがないクリーンなUX
管理者によるベストプラクティス:
- このコンポーネントを設定する前に、リンクされたカテゴリのセキュリティ権限と関連するグループメンバーシップを個別に設定してください - 設定を計画してください。
- 管理者は、外部リソースへのリンクが選択されたグループに対して適切に承認されていることを確認する責任があります。
その他の注意事項 
- このコンポーネントはDiscourse Sidebar Menu Reorderと互換性があります。これは、スクリーンショットの2つのカスタムメニューセクションをサイドバーの上部に配置するために使用されました。カスタムメニューセクションタイトルをスラッグ形式(例:
cat-menu)で使用するだけです。 - これは@Moinとの共同プロジェクトでした - 彼女のインプット、インスピレーション、フィードバックは非常に貴重でした。







