ナビゲーション(サイドバー)メニューの表示制御

|||
| - | - | - |
| :information_source: | 概要 | スタッフ、ログインユーザー、匿名ユーザー向けのセクションとリンクを表示できます |
| :hammer_and_wrench: | リポジトリ| https://github.com/Lillinator/navigation-menu-display-control |
| :question: | インストールガイド | テーマまたはテーマコンポーネントのインストール方法 |
| :open_book: | Discourseテーマ初心者の方へ | Discourseテーマ使用の初心者ガイド |

<!- 自動インストールボタンの「repoName」と「repoURL」を入力してください →

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

説明

ナビゲーションメニュー表示制御テーマコンポーネントを使用すると、スタッフ専用、ログインユーザー専用、またはその両方のさまざまなデフォルトセクションとリンクを表示できます。カスタムセクションやカスタムリンクを指定することもできます(プレースホルダー名が含まれています)。さらに、匿名ユーザー専用のカスタムメニューセクションを表示するための設定や、デフォルトセクション(カテゴリ、タグ、チャット、チャンネル、メッセージ)の順序を設定するための設定もあります。設定内のセクションとリンクは、既存のセクション(以下のスクリーンショットを参照)や、追加したいカスタムセクションやリンクを編集できるリストです。

設定

:point_right:t2:カスタムメニューセクションの場合、設定時にグローバルに表示されている必要があります(「このセクションを公開し、全員に表示する」チェックボックスを有効にする必要があります)。
トップセクションはコードでは「community」と呼ばれているため、そのセクションを非表示にしたい場合は、「community」セクション名を使用してください。プラグインでインストールされたリンク(例:ドキュメント、記念日、誕生日リンク)を使用できます。
また、設定が互いに上書きされる場合もあります。ログインユーザーに表示される特定のリンクは、「詳細」ドロップダウン設定がスタッフにのみ表示される場合に上書きされます。

設定名 説明
staff only sections スタッフのみに表示するセクションのリスト。「Staff Menu = staff-menu」のようなスラッグ形式でカスタムセクションを含めることができます。
logged-in only sections ログインユーザーのみに表示するセクションのリスト。「User Menu = user-menu」のようなスラッグ形式でカスタムセクションを含めることができます。
staff only links スタッフのみに表示するリンクのリスト。同じ大文字小文字の形式で名前が付けられたカスタムリンクを含めることができます(「Staff Link」=「Staff Link」)。
logged-in only links ログインユーザーのみに表示するリンクのリスト。同じ大文字小文字の形式で名前が付けられたカスタムリンクを含めることができます(「User Link」=「User Link」)。
show more for staff only スタッフのみに「詳細」ドロップダウンセクションを表示するかどうかをチェックします。
show more for logged-in only ログインユーザーのみに「詳細」ドロップダウンセクションを表示するかどうかをチェックします。
show custom for anon only 匿名ユーザーのみに表示するカスタムメニューセクションのテキストフィールド(ログインユーザーには非表示)。
show navigation menu to logged-in only ナビゲーションサイドバーメニュー全体をログインユーザーのみに表示するかどうかをチェックします(匿名ユーザーには非表示)。
hide custom menus globe icon カスタムメニューセクションのスタッフ用グローブアイコンを非表示にします(デフォルトではスタッフ以外には表示されません)。
default menu section ordering デフォルトのメニューセクションの並べ替えを許可します(カスタムメニューには適用されません)

スクリーンショット

スタッフおよびログインユーザー専用セクションの設定

スタッフおよびログインユーザー専用リンクの設定

「詳細」セクション、匿名ユーザー専用カスタムメニューセクション、グローブアイコン、ナビゲーションメニュー全体の非表示、およびデフォルトメニューセクションの順序変更の設定


グループ固有のナビゲーションサイドバーメニューセクションについては、Group Menu Sectionsテーマコンポーネントを使用してください。

「いいね!」 24

デフォルトのメニューセクションの並べ替えを許可するセクションを追加しました。

「いいね!」 5

リンクを非表示にする機能が現在正しく機能していないようです。

セクションは問題なく非表示になりますが、カスタムリンクを小文字とダッシュに変換しても個々のリンクを非表示にできません。

しかし、公式リンクは小文字にする必要があるようです。そのため、処理が異なる可能性があります。

ただし、フルタイトルテキスト(スペースと大文字を含む)を使用すると機能します。したがって、OP(ウィキ化できますか?)とTCの指示のみを変更する必要があるかもしれません。または、一貫性のためにコアの変更が必要になるかもしれません。

「いいね!」 2

Nathanさん、ありがとうございます。はい、何かが変わったようです。週末に確認します。

「いいね!」 1

コンポーネントは引き続き正常に機能していますが、カスタムリンクのクラス名の形式が変更されたため、コンポーネントとOPのフィールドドキュメントにいくつかの変更を加える必要がありました。テーマコンポーネントを更新してください。

カスタムメニューセクションとは異なり、カスタムリンクの場合、コンポーネント設定の名前は実際のカスタム名と同じ大文字/小文字の形式である必要があります。もちろん、さらに混乱させるために、デフォルトのものは引き続き小文字のままです(笑):グライン:

たとえば、ログインユーザーのみに特定のカスタムリンク「GitHub Repo」を表示したい場合:

テーマコンポーネントの show these links for logged-in only 設定に同じリンク名を入力します。

したがって、リンク表示設定(show these links for staff only および show these links for logged-in only)にカスタムリンクがある場合は、リンク名と一致するようにこれらのコンポーネント設定エントリを変更する必要があります。

カスタムメニューセクション(リンクではない)の場合、命名規則は以前と同じであることに注意してください。スラッグ形式の小文字(例:「Custom Menu Name」= custom-menu-name)のままです。

この件を私の注意を引いてくれてありがとう @nathank :ハグ:

いつか、現在行っているデフォルトのものだけでなく、カスタムのものを含むすべてのナビゲーションサイドバーメニューセクションを並べ替える機能を追加したいと考えています。ハードコードする方法はわかっています。設定と変数を使用して構築するだけです。

「いいね!」 4

リリーさん

気づいたのですが:

  • 人間の名前を使っても、スラッグを使っても、セクションを並べ替えることができません。
  • そのボックスにチェックを入れていない場合でも、ゲストにはサイドバー全体が非表示になります。
「いいね!」 1

このコンポーネントではカスタムセクションを並べ替えることはできません。並べ替え機能を確認しましたが、期待どおりに動作しています。

はい、匿名ユーザーの非表示機能が壊れていることを確認しました。本日修正します。お知らせいただきありがとうございます。

確認したところ、匿名ユーザーの非表示機能は期待どおりに動作していますが、機能のデモンストレーションのために設定内のデフォルトの例を削除し、「ログインユーザーのみにこれらのセクションを表示する」を有効にする必要があります。

「いいね!」 1


ログインしていないモードでは誰も表示されませんか?

それはトグル設定であるべきです…

image

「いいね!」 1

自分の上の投稿を見てください :slight_smile:

編集:それらを削除して、スクリーンショットで示すべきかもしれません。 :thinking:

「いいね!」 4

はい、これを実行し、OPを編集しました。スクリーンショットをデフォルトのセクション名とリンク名のガイドとして使用してください。

「いいね!」 2

⋮ More セクションの CSS が変更されたようです (btn-flat がなくなりました)。

匿名ユーザーのためにこれを非表示にする必要がありました。

.anon button.sidebar-more-section-links-details-summary {
    display: none;
}

PR はこちらです。

「いいね!」 3

マージされました。Nathan、改めてありがとう :hugs:

また、匿名関数でサイドバー全体を非表示にするバグも修正しました。これは少し壊れていました。

「いいね!」 3

こんにちは。

このコンポーネントの使い方を理解しようとしていますが、行き詰まっています。匿名ユーザーに「メンバーになる」またはそれに類するものだけを表示させたいのです。
手伝っていただけますか?

これを実行するには、3つの異なる方法があります。

1. このテーマコンポーネントを使用する

/loginへのリンクを持つカスタムサイドバーメニューを作成し、テーマコンポーネントでこの設定を使用します。


2. 新しい/既存のテーマまたはコンポーネントでCSSを使用する

「マイ投稿」の下のトップセクションにリンクを追加したいだけの場合は、「もっと見る - このセクションをカスタマイズ」リンクから/loginへのリンクを追加できます。たとえば、リンクの名前が「ログインまたはサインアップ」の場合:

次に、テーマまたはテーマコンポーネントに移動し、次のようにHTML/CSSを編集します。

そのトップセクションのリンク参照は、大文字と小文字を区別することに注意してください。

.sidebar-section-link-wrapper[data-list-item-name="Login or Signup"] {
  display: none;
}

.anon .sidebar-section-link-wrapper[data-list-item-name="Login or Signup"] {
  display: block;
}

シークレットモード/匿名ビューの結果:


3. 次のテーマコンポーネントを使用する

はい、以前にこれを実行する特定のテーマコンポーネントを作成しました。これは逆のことも行います。メンバーのみ(ログインユーザー)にセクションを表示します。

「いいね!」 3

承知いたしました。詳細なご指導ありがとうございます。

「いいね!」 2