| 概要 | 選択したグループのカスタムサイドバーメニューを作成します | |
| プレビュー | このテーマクリエーターグループに参加してから、こちらでプレビューしてください | |
| リポジトリ | \u003chttps://github.com/Lillinator/discourse-group-sidebar-menus\u003e | |
| インストールガイド | テーマまたはテーマコンポーネントのインストール方法 | |
| 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)の両方をサポート |
インストールと構成
- https://meta.discourse.org/t/how-do-i-install-a-theme-or-theme-component/63682に従って、テーマコンポーネントをインストールします。
オブジェクト設定エディタに移動します- 最初のカスタムメニューセクションを設定するには、
+ new_menu_sectionボタンをクリックします メニュータイトルフィールドに新しいメニューのタイトルを付け、アクセスを許可するグループを選択します。+ new_menu_sectionをクリックして別のセクションを追加するか、変更を保存します。
例の設定を含む管理者構成スクリーンショット
新規インストール - オブジェクト設定エディタに移動します。
2つのカスタムメニューと3人のユーザー(そのうちの1人が管理者)の例のシナリオ:
@Catraは猫が大好きで、pinkグループのメンバーであり、このグループには:grinning_cat:のCat Menuへのアクセスが許可されます@HelloKittyは犬が好きで、:dog_face:のDog Menuへのアクセスが許可されているpurpleグループのメンバーです@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は両方のメニューを持っており、編集できます!![]()
設定例
メニュータイトル: "スタッフリソース"
許可されたグループ: staff
リンク:
- アイコン: wrench
テキスト: モデレーションガイド
URL: /t/moderation-guide/123
- アイコン: chart-line
テキスト: 分析ダッシュボード
URL: /admin/dashboard
重要な注意事項
管理者アクセス
管理者は、自分自身をグループに追加する必要があります。そうしないと、そのグループ用に構成されたメニューは表示されません。管理者であるというだけでは、すべてのカスタムメニューへのアクセス権が付与されるわけではありません。これは意図的な動作です!また、メニューの許可されたグループに属する管理者は、セクションヘッダーにコンポーネント設定へのリンクである鉛筆アイコンが表示されます。
グループ構成
everyoneグループはサポートされていません - すべてのユーザー(匿名訪問者を含む)に対してグローバルなカスタムメニューを作成するには、ネイティブのサイドバーフッターUIを使用してください。- メニューセクションあたりの最大グループ数は20です。それ以上必要な場合は、グループの割り当てが異なる重複したセクションを作成してください。
- 複数のグループに属するユーザーは、アクセス権を持つすべてのメニューセクションを表示します。
テストと整理
テストアカウントを使用して、さまざまなグループの組み合わせに対する正しいアクセスを確認してください。メニュー構成の追跡を怠ると、特に多数のグループを持つ大規模なフォーラムでは混乱を招く可能性があるため、アクセス行列や同様のドキュメントを作成することを推奨します。
セキュリティに関する考慮事項
このコンポーネントはUIレベルのアクセス制御のみを提供します。メニューの可視性を制御しますが、リソースへのアクセスは制御しません。
クリーンで整理されたナビゲーション体験
権限のないユーザーのUIの煩雑さの軽減
プロフェッショナルなグループ固有のポータル
これはセキュリティ機能ではありません。リンクソースへのアクセスを防ぐものではありません。このコンポーネントは、サイドバーにレンダリングされるものを制御するだけであり、実際のコンテンツへのアクセス権を持つユーザーを制御するものではありません。
実際のコンテンツを保護するには、常にDiscourseの組み込みの権限システムに依存してください。
- カテゴリの権限を適切に構成する
- トピックの可視性制限を設定する
- グループベースのコンテンツアクセス制御を使用する
- プライベートリソースには認証が必要であることを確認する
管理者のベストプラクティス:
リンクされたカテゴリのセキュリティ権限とグループメンバーシップを別々に構成します。たとえば、プライベートカテゴリへのメニューリンクは、そのカテゴリの権限が適切に構成されている必要があります。管理者は、選択したグループに対して外部リソースへのリンクが適切に承認されていることを確認する責任があります。
@Moin との共同プロジェクトでした。彼女のインプット、インスピレーション、フィードバックは非常に貴重でした。







