1

Drupal 7 では、現在のページに基づいて切り替わる左側のナビゲーション メニューを備えた個別のセクションを持つサイトが必要です。たとえば、セクションに移動するトップレベルのナビゲーションが必要で、そのセクションではメニューが一意です。これを処理するには、template.php ファイルにテーマ関数を作成する必要があると想定しています。誰かがこれをコーディングする方法を教えてもらえますか?

4

2 に答える 2

4

私があなたをフォローしているとは 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 レベルのメニュー項目を表示します。

レベルについて話していない場合:

個別のメニュー ブロックを作成し、特定のページにのみ表示されるように設定するには、ブロックの表示設定に移動し、表示するページのノード エイリアスを入力して、ラジオ ボタンから [リストされたページのみ] を選択します。 .

于 2011-12-05T14:15:30.710 に答える
0

@SpaceBeers の提案を使用する代わりに、Contextを使用して問題を解決します。

  • 固有のページごとに 1 つの異なるメニューを定義します。
  • Context を使用すると、各セクションをメニューに関連付けることができます。セクションごとに個別のコンテキストを定義します。
  • コンテキスト内では、コンテキストのルールでそのセクションの相対パスを指定します。次に Context リアクションで、メニューによって自動的に作成される Drupal ブロッ​​クを選択します。

さらに、Context はエクスポート可能であるため、それらを Feature にパッケージ化し、そのFeature をソース管理リポジトリにコミットし、それを DEV、QA、および PROD ボックスにデプロイすることができます。サーバーからサーバーへ。つまり、Context + Features ソリューションは、長期的にはより堅牢でスケーラブルなソリューションを提供します。

于 2011-12-06T18:20:33.087 に答える