サイドバーメニューのグループナビゲーションセクション

:information_source: 概要 特定のグループに対してカスタムナビゲーションメニューセクションを表示します
:hammer_and_wrench: リポジトリ https://github.com/Lillinator/group-menu-sections
:question: インストールガイド テーマまたはテーマコンポーネントのインストール方法
:open_book: Discourseテーマは初めてですか? Discourseテーマ使用の初心者ガイド

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

このテーマコンポーネントを使用すると、Discourseのカスタムナビゲーション(サイドバー)メニューセクションを特定のユーザーグループ(信頼レベルやデフォルトグループを含む)にのみ表示できます。このコンポーネントでは、最大8つのカスタムメニューセクションと、指定された各セクションに対して決定する数のグループを使用できます。メニューセクション名には、ダッシュで区切られた小文字を使用します(例:「Superuser Menu」= superuser-menu、「Staff Menu」= staff-menu)。グループは、ドロップダウン選択フィールドから利用可能なグループを選択します。

このコンポーネントで指定されたカスタムセクションは、公開され、すべての人に表示されるように設定する必要があります。新しいグループナビゲーションメニューセクションを作成するには、通常どおり公開のセクションを作成し、このコンポーネントの設定で、表示したいグループとともに含めます。カスタムセクションを設定する前にコンポーネント設定でセクションを指定できますが、正しいセクション名を使用する必要があります。これにより、コンポーネントで制限する前に、セクションがすべての人に表示されるのを防ぐことができます。

このコンポーネントはカスタムセクションを意図していますが、ナビゲーションメニューの既存のセクション(カテゴリ、タグ、チャンネル、個人チャット、さらには廃止された「community」トップセクションなど)にも使用できます。たとえば、管理者グループとスタッフグループにカスタムメニューを表示し、同時に新しいユーザーグループ(trust_level_0)からタグとチャンネルを非表示にすることができます。フォーラムメンバーのみに特定のメニューセクションを表示したい場合(匿名ユーザーには非表示にする場合)、trust_level_0グループに表示するように設定できます。

:arrow_right: このコンポーネントで使用したいグループについては、グループインタラクション設定でグループの可視性を「全員」に設定する必要があります。


設定:

設定の一覧
名前 説明
menu 1 以下の設定のグループに表示するカスタムメニューセクション1。小文字のスラグ名を使用します。
display menu 1 for these groups only menu 1の利用可能なグループのドロップダウンセレクター。グループの可視性は、グループインタラクション設定で「全員」に設定する必要があります。
menu 2 - 8 それぞれのグループ設定でグループに表示するカスタムメニューセクション。
display menu 2 - 8 for these groups only メニュー2〜8の利用可能なグループのドロップダウンセレクター。
hide custom menus globe icon スタッフの地球儀アイコンを非表示にします(スタッフ以外には適用されません)

スクリーンショット:

必要なグループの可視性設定

グループセレクターのある最初 の設定を示すスクリーンショット

地球儀非表示設定


このコンポーネントは主にサイドバーモードのナビゲーションメニューを対象としていますが、現時点ではヘッダーのドロップダウンでも機能します。デスクトップビューとモバイルビューの両方で機能します。

「いいね!」 26

ありがとうございます。大変助かりました。あなたの作品やDiscourseのコンポーネントが大好きです。

「いいね!」 2

ありがとう、ティアゴ! :blush:

「いいね!」 2

こんにちは、共有ありがとうございます!

このコンポーネントは、デフォルトセクションの上部に特定のグループにのみ表示されるカスタムリンクを追加するために使用できますか?

いいえ、このコンポーネントはセクション専用であり、リンク用ではありません。ただし、リンクが1つだけ含まれるカスタムセクションを作成することはできます。

「いいね!」 1

将来的にはこの機能を追加するかもしれません。もし本当に必要であれば、特定のコンポーネントを作成するか、その方法をお教えします。

「いいね!」 4

逆に、匿名ユーザーにのみセクションを表示するにはどうすればよいですか?匿名ユーザーとフォーラムメンバー(ログインユーザー)に別々のセクションを作成したいです。

良い質問ですね。以下のように行います。

ステップ 1:

「Anon Menu」という名前の新しいカスタムナビゲーションメニューセクションを作成します(名前は自由に変更できますが、覚えておいてください)。これは公開セクションにします(モーダルの下部にあるチェックボックスをオンにします)。

ステップ 2:

次に、作成したテーマまたはテーマコンポーネントのCommon-CSSに、このCSSコードを挿入します。ステップ1で作成したメニューセクションの名前(例:「Custom Section」=「custom-section」)を「anon-menu」に置き換えてください。

.sidebar-section-wrapper.sidebar-section[data-section-name="anon-menu"] {
        display: none;
}

.anon .sidebar-section-wrapper.sidebar-section[data-section-name="anon-menu"] {
        display: block;
}

実際、このアイデアはユースケースシナリオとして気に入っており、次回コンポーネントを更新する際にそれに追加する予定です。コンポーネントの設定のためにJSONスキーマモーダルを構築しているので、設定がより直感的になります。

「いいね!」 1

ありがとうございます。メンテナンスの観点から見ても、予想以上に複雑です。数ヶ月後には、自分が何をしたのか覚えていないでしょう。

編集:匿名ユーザーグループを作成しようとしましたが、うまくいきませんでした。なぜなら、それはログインユーザーがログイン後に匿名モードに変更する場合の匿名機能のためだけであり、真に匿名のユーザー(アカウントを持っていないユーザー)のためではないからです。

私の誤解でした。匿名モードではなく、ログインしていないユーザーのことを指していると思っていました。 :woman_facepalming:t2:

さらに、グループのリストを読み込み、利用可能なグループのリストから選択するためのドロップダウンを提供できれば、グループ名をタイプミスすることなく入力できるため、素晴らしいと思います。

「いいね!」 1

はい、その通りです。ログインしていないユーザー、つまりウェブサイトにアクセスしたものの、ログインしていない、またはアカウントを持っていないユーザーのことを指しています。

上記で何かを試しましたが、それは全く別の機能だったため、うまくいきませんでした(混乱を招いてしまい、申し訳ありません)。

上記の私の方法を使用すれば、機能するはずです。:slight_smile: その他の匿名モード機能を使用せずに。

ただし、このコンポーネントを次に更新する際には、匿名ユーザー向けのオプションをいくつか追加する予定です。これは近いうちに行われる予定です。

「いいね!」 1

テーマのアップデートをお待ちしております。テーマを手動でカスタマイズするのは快適ではなく、「初心者」にとってはメンテナンスの悪夢となるためです :slight_smile:

リンクを投稿します 他の返信へのリンク ここに解決策を記載します。

これは、今後のナビゲーションメニューモディファイアコンポーネントのアップデートに追加する予定です。

「いいね!」 1

グループのドロップダウン選択ボックスを使用して、利用可能なグループをポップアップ表示するようにこのコンポーネントを更新しました。また、メニューセクションの数を8に増やし、グローブアイコンハイダーを追加しました。

「いいね!」 2

こんにちは!
この素晴らしいテーマコンポーネントをインストールしました :ballot_box_with_check:

設定中に質問がありました。

  1. 上記の指示では、メニューセクションの名前の例として Sectionname Menu=sectionname-menu のようなものが記載されていました。

image


私の場合は、メニューセクションの名前はロシア語で、「Сотрудники」(英語:Staff)のように書かれています。


menu 1 の行には、このセクション名をどのように記述すればよいですか?ロシア文字ですか、それともラテン文字ですか?
もしかして、このように記述しますか?

image

それとも、このように記述しますか?

image

menu」という単語は、テキストに必須の属性ですか? :sweat_smile:

すべての方法を試しましたが、まだ何も機能しません。

指示通り、すべてのグループを公開にしました。

  1. このテーマコンポーネントを使用して、「Community」セクションの表示を特定のグループに設定できないようです。
「いいね!」 1

いいえ、必須ではありません。例としてメニュー名の一部として使用していました。例えば、メニュー名が「User Info」の場合、「user-info」となります。最善の方法は、メニューセクションを作成する際に、セクションタイトルフィールドに名前を使用し、それを小文字とスペースをダッシュに変換してスラッグ形式にすることです。

次に、テーマコンポーネントの設定で、次のように設定します。

ロシア文字だと思います。最初のスクリーンショットで矢印で示したセクションタイトルフィールドにあるものですが、小文字とスペースをダッシュに変換してください。

スクリーンショットの設定をテストしたところ、機能しました。

「Community」セクションの名前をロシア語に変更したことはありますか?もし変更していない場合は、「community」を使用すれば機能するはずです(一番上の名前のないデフォルトのメニューセクションのことだと思います)。

「いいね!」 1

セクション名をラテン文字で書くと、すべて正常に動作します。


**
**

キリル文字(ロシア語)でセクション名を記述すると、機能しません。