Drupal 7 では、現在のページに基づいて切り替わる左側のナビゲーション メニューを備えた個別のセクションを持つサイトが必要です。たとえば、セクションに移動するトップレベルのナビゲーションが必要で、そのセクションではメニューが一意です。これを処理するには、template.php ファイルにテーマ関数を作成する必要があると想定しています。誰かがこれをコーディングする方法を教えてもらえますか?
2 に答える
私があなたをフォローしているとは 100% 確信が持てませんが、そうするなら、Menu Block モジュールでこれを行うことができます - http://drupal.org/project/menu_block
レベルについて話している場合:
複数のレベルを持つメニューがあり、親アイテムに 2 番目のレベルがあるページで 2 番目のレベルのみを表示したい場合は、構造 -> ブロック -> 新しいメニュー ブロックに移動し、必要なメニューを選択します。どのメニュー レベルからメニューを開始し、通常のブロックとして必要な場所に追加するか。
例は次のとおりです。
<ul class="menu">
<li>Menu item 1</li>
<li>Menu item 2</li>
<ul class="menu">
<li>Menu item</li>
<li>Menu item</li>
</ul>
<li>Menu item 3</li>
<li>Menu item 4</li>
<li>Menu item 5</li>
</ul>
メイン メニューには、レベル 1 のメニュー項目のみが表示されます。
メニュー ブロックはレベル 2 から開始するように設定されるため、メニュー項目 2 のページにいた場合、メニュー ブロックは第 2 レベルのメニュー項目を表示します。
レベルについて話していない場合:
個別のメニュー ブロックを作成し、特定のページにのみ表示されるように設定するには、ブロックの表示設定に移動し、表示するページのノード エイリアスを入力して、ラジオ ボタンから [リストされたページのみ] を選択します。 .
@SpaceBeers の提案を使用する代わりに、Contextを使用して問題を解決します。
- 固有のページごとに 1 つの異なるメニューを定義します。
- Context を使用すると、各セクションをメニューに関連付けることができます。セクションごとに個別のコンテキストを定義します。
- コンテキスト内では、コンテキストのルールでそのセクションの相対パスを指定します。次に Context リアクションで、メニューによって自動的に作成される Drupal ブロックを選択します。
さらに、Context はエクスポート可能であるため、それらを Feature にパッケージ化し、そのFeature をソース管理リポジトリにコミットし、それを DEV、QA、および PROD ボックスにデプロイすることができます。サーバーからサーバーへ。つまり、Context + Features ソリューションは、長期的にはより堅牢でスケーラブルなソリューションを提供します。