web-dev-qa-db-ja.com

異なるページに異なるナビゲーションリンクを表示して、サイドバーにナビゲーションメニューを作成する方法

Drupal-7を使用しています。

Megamenu。 を使用してドロップダウンメニューを作成しました。ここで、左側にナビゲーションメニューを作成し、メニュー項目がページごとに異なるようにしたいと考えました。左側のバーにナビゲーションブロック領域を作成し、各ページに動的な左側のメニューを作成したいと考えています。例えば:

ページ構造が次の場合:

1.0
1.1

    1.1.1

1.2
    1.2.1
1.3
    1.3.1
    1.3.2
    1.3.3
        1.3.3.1
    1.3.4
    1.3.5
    1.3.6

したがって、左側のメニューの1.0ページは次のようになります。

1.0
    1.1
        1.1.1
1.2
    1.2.1
1.3
    1.3.1
    1.3.2
    1.3.3
        1.3.3.1
    1.3.4
    1.3.5
    1.3.6

ページ1.1の左側のメニュー-それはのみである必要があります-1.1.1ページ1.2の左側のメニュー--のみ-1.2.1

ページ1.3では、次のようになります。

1.3
    1.3.1
    1.3.2
    1.3.3
        1.3.3.1
    1.3.4
    1.3.5
    1.3.6

ページ1.3.1、1.3.2、1.3.4、1.3.5および1.3.6-なし左サイドバーのitem

ページ1.3.3-1.3.3.1のみが存在する必要があります。

このような左側のサイドバーメニューを作成するにはどうすればよいですか? Menu Block module を使用する必要がありますか? Menu Block moduleを使用する必要がある場合、各ページで異なるように表示されるメニュー項目を作成するにはどうすればよいですか?

ありがとう!

2
Vidushi

これは完全に メニューブロック シナリオのように見えます。この場合、「開始レベルをアクティブなメニュー項目に追従させる」を有効にします。設定。 「タイトルをリンクとしてブロック」も有効にしますが、リンクを上書きするため、カスタムタイトルを入力しないでください。

3
vincer

私が考えることができる2つのオプション:

1)あまり多くのページ(例では3)を扱っていない場合は、ページごとに個別のメニューを作成します。

2)メニュー項目を作成するカスタムモジュールを作成します。これにより、NIDによるフィルタリングなど、メニュー項目をいつ表示するかをより詳細に制御できます。モジュールが実際のメニュー項目を作成する前に、項目を表示したいメニューが存在することを確認してください。

サンプルメニューモジュールが役立つ場合があります https://api.drupal.org/api/examples/menu_example%21menu_example.module/7

編集:方法の一部を取得できる別のモジュールは、メニュートークンです: https://www.drupal.org/project/menu_token

メニュートークンモジュールは、メニューアイテム(リンク)のタイトルまたはパスで使用できるトークンを提供します。たとえば、パスが「user/[current-user:uid]」のメニュー項目を作成すると、URLは「オンザフライ」で「user/1」に変更されます(ユーザー1と想定)。

トークンは、トークンモジュールによって提供されます。メニュートークンを使用すると、グローバルトークンとエンティティトークン(ノード、ユーザー、用語など)の両方を使用できます。エンティティトークンには、コンテキスト、ランダム、ユーザー定義など、いくつかの置換方法があります。

1
acronym