Discourseグループのサイドバーメニュー

:information_source: 概要 特定のグループ向けのカスタムサイドバーメニューを作成します
:eyeglasses: プレビュー このテーマクリエイターグループに参加し、こちらでプレビューしてください
:hammer_and_wrench: リポジトリ https://github.com/Lillinator/discourse-group-sidebar-menus
:question: インストールガイド テーマまたはテーマコンポーネントのインストール方法

このテーマコンポーネントをインストール

:woman_technologist:t2: 概要

このDiscourseテーマコンポーネントにより、フォーラム管理者は選択されたグループのメンバーのみがアクセスできるカスタムサイドバーメニューを作成できるようになります。

主な機能:

  • グループベースのメニュー表示制御 - メニューセクションは、権限を持つユーザーのサイドバーにのみ表示されます
  • オブジェクトベースの設定 - メニュー作成のための使いやすい設定UI
  • 複数のセクション - 異なるグループ用に無制限のメニューセクションを作成できます(常識的な範囲内で)
  • 管理者用クイック編集リンク - メニューヘッダーの鉛筆アイコンから、管理者が直接コンポーネント設定画面にアクセスできます

:briefcase: 使用例

  • スタッフ専用のリソースとショートカットリンク
  • カテゴリモデレーター用ショートカット
  • カスタムグループポータル(プロジェクトチーム、勉強会、読書会、VIPメンバーなど)
  • 親サイトや提携サイトのリソースへのリンク

:gear: 設定

メニューセクション (menu_sections)

カスタムグループメニューセクションを設定するためのオブジェクト設定エディタを開きます。

セクションのプロパティ

プロパティ 説明
メニュータイトル サイドバーのセクションヘッダーとして表示されるタイトル
許可されたグループ このメニューセクションを表示できるグループ(1セクションあたり最大20グループ)
メニューリンク このセクションに表示するリンクのコレクション(1セクションあたり最大20リンク)

リンクのプロパティ

プロパティ 説明
アイコン FontAwesomeアイコン名(例:circle-infostaruser-group)。管理 > サイト設定すべて > svgアイコンサブセットに追加する必要がある場合があります
テキスト リンクに表示されるラベル
URL リンク先 - 相対パス(/faq/my/preferences)と絶対URL(https://example.com)の両方をサポート

:wrench: インストールと設定

  1. Installing a theme or theme component に従ってテーマコンポーネントをインストールします。
  2. オブジェクト設定エディタに移動します。
  3. + new_menu_sectionボタンをクリックして、最初のカスタムメニューセクションを設定します。
  4. メニュータイトルフィールドに新しいメニューのタイトルを入力し、アクセスを許可するグループを選択します。
  5. + new_menu_sectionをクリックして別のセクションを追加するか、変更を保存します。
管理者設定のスクリーンショット(設定例付き)

新規インストール - オブジェクト設定エディタに移動します。

カスタムメニュー2つとユーザー3人(そのうち1人が管理者)の例:

  • @Catraは猫が好きで、pinkグループのメンバーであり、Cat Menu(猫メニュー)にアクセスできます :grinning_cat:
  • @HelloKittyは犬が好きで、purpleグループのメンバーであり、Dog Menu(犬メニュー)にアクセスできます :dog_face:
  • @Lillyは犬を飼っているため(犬の方が優れているので)、purpleグループのメンバーです。しかし、彼女はフォーラムの管理者でもあり、管理者は猫の世話が必要だからという理由でCat Menu(猫メニュー)にアクセスできます :dog_face: :cat_with_wry_smile:

新しいカスタムメニューを作成します。例ではCat menu(猫メニュー)を作成し、アクセスを許可するグループとしてpinkadminsを追加します。次に、+ menu_linkボタンをクリックして、新しいメニューのリンクを設定します。

いくつかのメニューリンクを追加します。1. FontAwesomeアイコン名、2. リンクに表示するテキスト、3. 相対または絶対のURL。+ menu_linkボタンをクリックして、このメニューに別のリンクを追加します。

Dog menu(犬メニュー)という別のカスタムメニューセクションを作成し、purpleグループのみアクセスできるようにし、リンクを設定します:

結果として表示されるサイドバーメニューへのアクセスのスクリーンショット

ユーザー@Catraは猫メニューを持っています! :grinning_cat:

ユーザー@HelloKittyは犬メニューを持っています! :dog_face:

管理者ユーザー@Lillyは両方のメニューを持ち、編集できます! :smiling_cat_with_heart_eyes:

設定例

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

:light_bulb: 重要な注意事項

管理者のアクセス

管理者はグループに自身を追加する必要があります。そうすることで、そのグループ用に設定されたメニューを表示できます。管理者であることだけでは、すべてのカスタムメニューへのアクセス権は付与されません。これは意図的な設計です。また、メニューの許可グループに属する管理者は、セクションヘッダーにコンポーネント設定画面へのリンクとなる鉛筆アイコンを表示します。

グループの設定

  • everyone(全員)グループはサポートされていません - 匿名の訪問者を含むすべてのユーザー向けのグローバルカスタムメニューを作成するには、ネイティブなサイドバーフッターUIを使用してください。
  • メニューセクションあたり最大20グループです。それ以上必要な場合は、異なるグループ割り当てを持つ重複したセクションを作成してください。
  • 複数のグループに属するユーザーは、アクセス権限のあるすべてのメニューセクションを表示します。

テストと整理

テストアカウントを使用して、異なるグループの組み合わせでの正しいアクセスを確認してください。複雑さが増すにつれて混乱を避けるために、メニュー設定を追跡してください。グループの多い大規模なフォーラムでは、アクセス行列または同様のドキュメントの作成をお勧めします。

セキュリティ上の考慮事項

このコンポーネントはUIレベルのアクセス制御のみを提供します。これはメニューの表示を制御するものであり、リソースへのアクセスを制御するものではありません。このコンポーネントはサイドバーに何を表示するかを制御するだけで、実際のリソースへのアクセス権を制御するものではありません。

実際のリソースの保護には、常にDiscourseの組み込み権限システムに依存してください:

  • カテゴリの権限を適切に設定する
  • トピックの表示制限を設定する
  • コンテンツに対してグループベースのアクセス制御を使用する
  • プライベートリソースは認証が必要であることを確認する

管理者のベストプラクティス:
リンクされたカテゴリのセキュリティ権限とグループメンバーシップは別々に設定してください。例えば:プライベートカテゴリへのメニューリンクには、そのカテゴリの権限が適切に設定されている必要があります。管理者は、選択されたグループに対して外部リソースへのリンクが適切に認可されていることを確認する責任があります。


これは@Moinとの共同プロジェクトでした。彼女の入力、インスピレーション、フィードバックは非常に貴重でした。


他のDiscourse関連コンテンツをチェック
「いいね!」 14

リポジトリで404エラーが発生しているようです。

編集:すべて正常になりました!

「いいね!」 2

はは、もう一度試してください。公開するのを忘れていました!:laughing:

「いいね!」 6

素晴らしい!ずっとこれを望んでいました。自分用に便利なカスタムサイドバーメニューのコレクションを作成しました。モデレーション用のリンク、管理者タスクと参照用、Discourseドキュメント用、フォーラムで頻繁に参照する外部コンテンツ用などです。あるメニューは、単に tag リンク(例:/tag/comm-mgt-monthly)を使用してさまざまな定期的な会議へのリンクを含んでおり、これにより現在の議題と過去の議事録にすばやくジャンプできます。

これまで、カスタムサイドバーメニューの設定をエクスポートして、チームの他のメンバーがインポートできるようにする方法を何度も望んでいました。これははるかに優れた設定です!

そしてアイコン!やった!私の知る限り、これを行う唯一の方法はカスタムCSSを追加することでした。この新しいソリューションはエレガントです。

そして持続可能!すべての管理者が設定ファイルを編集できるようになるため、私だけに依存する必要がなくなります。@Lilly@Moin に感謝します!

「いいね!」 2

こんにちは、@Lilly さん、@Moin さん、

このコンポーネントを構築していただきありがとうございます。

セルフホスト型サイトで Group sidebar menu sections - deprecated を使用していましたが、最新のアップデートで古いテーマコンポーネントが非推奨になり、代わりにこれをインストールするように警告されました。

コンポーネントをインストールし、カスタムグループメニューを作成しましたが、グループメニューを移動する方法がわかりません。(何か明白なことを見落としているに違いありません。:see_no_evil_monkey:)スクリーンショットでは、Cat MenuDog Menu がサイドバーナビゲーションの Topics セクションの上にありますが、私のカスタムグループメニューはサイドバーナビゲーションのの一番下に表示されています。どうすれば Topics の上に移動できますか?

「いいね!」 3

それは明らかではありません。Lillyはhttps://meta.discourse.org/t/discourse-sidebar-menu-reorder/394049を使用して、`cat-menu`を一番上に配置しました。

「いいね!」 4

どうもありがとうございます!設定はとても簡単でした。

「いいね!」 4

このコンポーネントを使用している場合は、アップデートしてください。ここではコア部分の変更に基づいてリファクタリングが行われています: Granular group-based permissions for anonymous and logged in users

「いいね!」 1