メニューツリーとは別にサブメニューを表示するにはどうすればよいですか?[閉まっている]


8

メニュー項目のすべての第3レベルのサブメニューを、それぞれが独自の表示ブロックに表示しようとしています。メニューブロックモジュールを試しましたが、アクティブなトレイルでしか機能しないようです。つまり、3レベルのメニューだけを個別のユニットとして表示するのではなく、2レベルと3レベルのすべてのメニューを1つのユニットとしてしか表示できません。

メニューブロックモジュールに加えて、このコードで直接メニューツリーにアクセスしてみました。

      $main = menu_navigation_links('main-menu', '2');
      echo theme('links__system_main_menu', array(
      'links' => $main,
      'attributes' => array(
      'id' => 'main-menu',
      'class' => array('links')
    ),
  ));
?>

メニュー構造は次のとおりです。

- Parent Menu 1
- Parent Menu 2
  - Child Menu A
    - SubChild Menu 1A
    - SubChild Menu 2A
    - SubChild Menu 3A    
- Child Menu B
  - SubChild Menu 1B
  - SubChild Menu 2B
  - SubChild Menu 3B

親メニュー2を選択したときに表示する内容:

ブロック1:SubChildメニュー1A | サブチャイルドメニュー2A | サブチャイルドメニュー3A

ブロック2:サブチャイルドメニュー1B | サブチャイルドメニュー2B | サブチャイルドメニュー3B

ツリーとは別のサブメニューを表示する正しい方法についてのヘルプは、大歓迎です。


直接dbフェッチを行う必要があります。
niksmac 2012

二次メニューのソースを設定する必要があります。Drupal 6用ですが、このビデオはDrupal 7用に設定するのに大いに役立ちました:lullabot.com/node/444/play
Tim

「子メニューA」と「子メニューB」は、実際にはメニュー項目ではありませんか(つまり、見出しまたは仕切りとして機能するだけですか)?また、2つのサブメニューを別々のブロックに分割する必要があるのはなぜですか?最善/最も簡単な解決策は、ここでやろうとしていることの外側にある可能性があるため、他のオプションを検討できるように、実際の最終目標を知るのに役立ちます。
sheena_d 2012

私は直接デシベルフェッチやってしまった:
user1240408

子メニューAと子メニューBはどちらもメニュー項目です。子メニューAのすべてのサブメニューを1つのブロックに表示し、子メニューBのすべてのサブメニューを別のブロックに表示するなど、すべて1つのページに表示しようとしています。これは、すべての異なる子メニューセクションの概要ページです。
user1240408 2012

回答:


5

それを行う最善の方法は、Menuブロックモジュールを使用することです。これについての引用は次のとおりです(モジュールのプロジェクトページから):

...テーマでメインメニューリンク機能とセカンダリメニューリンク機能を使用したことがありますか。

まあ、それはこのモジュールが行うことです。これは、任意のメニューの任意のレベルで始まるメニューツリーの構成可能なブロックを提供します。もっと!

したがって、テーマのメインメニューリンク機能のみを使用している場合は、「メインメニュー(レベル2+)」ブロックを追加して構成できます。このブロックは、メインメニューのいずれかのページに移動すると表示され、メインメニューの2番目のレベル(およびより深い)のメニューツリーを表示し、ツリーをたどると展開します。メニューのツリーの深さを制限したり(「メインメニュー(レベル2〜3)」など)、および/またはすべての子サブメニューを展開したりすることもできます(たとえば、「メインメニュー(レベル2+を展開したレベル)」)。


0

このモジュールを使用すると、https: //www.drupal.org/project/yambで、第2レベルのタイトルを持つ第3レベルのサブメニューを取得できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.