2009年1月15日木曜日

Drupal の Book モジュールによるメニューのカスタマイズ

要件

構造

サイトの構造が以下のようであるとする。

  • トップページ
    • A
      • a1
      • b2
    • B
      • b1
    • C
      • c1
 
レイアウト

レイアウトは、以下のような小規模なサイトに見られる典型的な形を想定。メニューに「A, B, C」の項目があり、それぞれに詳細なコンテンツを配置。

以下では、メニュー A が選択されている状態で、左のサイドバーには A に関する詳細な内容 a1, a2 が表示されている。

090115-007

 

Book モジュールを利用

管理セクション › サイトの構築 > モジュール」の「コア - 任意」の 「Book」 モジュールを有効にする。

090115-008

 

ブロックの設定

左のサイドバーに A, B, C の内容詳細 a1, a2,… に対するリンクが表示されるようにする。

まず「管理セクション › サイトの構築 > ブロック」において、「無効」になっている「ブックナビゲーション」のセレクトボックスにおいて「左サイドバー」を選択し、ブロックの保存ボタンを押す。

090115-009

ただし、このままでは全てのページにおいてブックナビゲーションが表示されてしまう。

これを変更するために、上図のブックナビゲーションの「設定」をクリック。

「ブロック固有の設定」の「ブックナビゲーションブロックの表示」において、「ブックページにのみブロックを表示」のラジオボタンにチェックをつける。

090115-012

 

コンテンツの作成

「コンテンツの作成」において「Book Page」を選択。「A, B, C」のコンテンツの作成時には、「ブックアウトライン」の「ブック」のセレクトボックスにおいて「<新しいブックを作成>」を選択する。a1, a2… などの内容詳細のコンテンツの作成時には、それぞれ親となる A, B, C のコンテンツを選択。「ウェイト」セレクトボックスは表示される順序を表わす。

090115-010

 

メニューの作成

画面上部のメニューは、「管理セクション › サイトの構築 › メニュー > プライマリリンク」で作成する。先ほど作成した A, B, C のコンテンツの URL のうち、

node/数字

の部分を控えておき、プライマリリンクの作成時のパスに設定する。

090115-011

 

完成~ ^^

090115-013