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

:information_source: 概要 選択したグループのカスタムサイドバーメニューを作成します
:eyeglasses: プレビュー このテーマクリエーターグループに参加してから、こちらでプレビューしてください
:hammer_and_wrench: リポジトリ \u003chttps://github.com/Lillinator/discourse-group-sidebar-menus\u003e
:question: インストールガイド テーマまたはテーマコンポーネントのインストール方法
:open_book: Discourseテーマは初めてですか? Discourseテーマの初心者ガイド

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

:woman_technologist:t2: 概要

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

主な機能:

  • グループベースのメニューの可視性 - メニューセクションは、承認されたユーザーに対してのみサイドバーに表示されます
  • オブジェクトベースの構成 - メニューを作成するための使いやすい設定UI
  • 複数のセクション - さまざまなグループに対して無制限のメニューセクションを作成できます(常識の範囲内で)
  • 管理者クイック編集リンク - メニューヘッダーの鉛筆アイコンが管理者をコンポーネント設定に直接リンクします

:briefcase: いくつかの使用例

  • スタッフ専用のリソースとクイックリンク
  • カテゴリモデレーターのショートカット
  • カスタムグループポータル(プロジェクトチーム、学習グループ、ブッククラブ、VIPメンバー)
  • 親またはパートナーのウェブサイトリソースへのリンク

:gear: 設定

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

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

セクションのプロパティ

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

リンクのプロパティ

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

:wrench: インストールと構成

  1. https://meta.discourse.org/t/how-do-i-install-a-theme-or-theme-component/63682に従って、テーマコンポーネントをインストールします。
  2. オブジェクト設定エディタに移動します
  3. 最初のカスタムメニューセクションを設定するには、+ new_menu_sectionボタンをクリックします
  4. メニュータイトルフィールドに新しいメニューのタイトルを付け、アクセスを許可するグループを選択します。
  5. + new_menu_sectionをクリックして別のセクションを追加するか、変更を保存します。
例の設定を含む管理者構成スクリーンショット

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

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

  • @Catraは猫が大好きで、pinkグループのメンバーであり、このグループには:grinning_cat:Cat Menuへのアクセスが許可されます
  • @HelloKittyは犬が好きで、:dog_face:Dog Menuへのアクセスが許可されているpurpleグループのメンバーです
  • @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はCatメニューを持っています!:grinning_cat:

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

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

設定例

メニュータイトル: "スタッフリソース"
許可されたグループ: staff
リンク:
  - アイコン: wrench
    テキスト: モデレーションガイド
    URL: /t/moderation-guide/123
  - アイコン: chart-line
    テキスト: 分析ダッシュボード
    URL: /admin/dashboard

:light_bulb: 重要な注意事項

管理者アクセス

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

グループ構成

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

テストと整理

テストアカウントを使用して、さまざまなグループの組み合わせに対する正しいアクセスを確認してください。メニュー構成の追跡を怠ると、特に多数のグループを持つ大規模なフォーラムでは混乱を招く可能性があるため、アクセス行列や同様のドキュメントを作成することを推奨します。

セキュリティに関する考慮事項

このコンポーネントはUIレベルのアクセス制御のみを提供します。メニューの可視性を制御しますが、リソースへのアクセスは制御しません。

:white_check_mark: クリーンで整理されたナビゲーション体験
:white_check_mark: 権限のないユーザーのUIの煩雑さの軽減
:white_check_mark: プロフェッショナルなグループ固有のポータル

これはセキュリティ機能ではありません。リンクソースへのアクセスを防ぐものではありません。このコンポーネントは、サイドバーにレンダリングされるものを制御するだけであり、実際のコンテンツへのアクセス権を持つユーザーを制御するものではありません。

実際のコンテンツを保護するには、常にDiscourseの組み込みの権限システムに依存してください。

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

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


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

「いいね!」 9

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

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

「いいね!」 2

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

「いいね!」 6

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

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

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

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

「いいね!」 1

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

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

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

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

「いいね!」 1

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

「いいね!」 2

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

「いいね!」 2