pict-drupal.png viewsモジュールで作成したページは単一ノードではないためそのままでは既存のブックのアウトラインに追加することはできない。ここではそれをする方法を紹介します。

Insert ViewモジュールやCCK用のViewfieldモジュールを使ってもこれは実現可能ですが、そういったモジュールを使わないでもちょっとPHPコードを記述するだけで実現可能です。

まず、アウトラインに組み込みたいviewsのページを作成しておきます。
次に、新規ノードを作成して、そのノードの本文に以下のコードを記述するだけです。(但し、入力書式でPHPコードを記述して実行できる書式を選択することを忘れないように)

  1. <?php
  2.  print views_embed_view("(ビューの名前)", "(displayID)", "(ビューに渡すパラメータ)");
  3. ?>

従ってimage_galleryというviewのページを新規ノードに組み込むには、
  1. <?php
  2.  print views_embed_view("image_gallery", "page_1", "");
  3. ?>

とすればOKです。この場合もしディスプレイIDが存在しない時はうまく表示されませんので、ディスプレイIDの部分に"default"を使うと確実です。

Viewsで作成したページをこの方法で空の新規ノードに追加すると、空の新規ノードのタイトル(タイトルは省略不可)と組み込みページのタイトルなどタイトルが続いてしまう場合がある。これには、別途node.tpl.phpの派生テンプレートを作成してそこで$titleなどを出力しないようにする、というった作業が必要になります。

また、このviews_embed_view()を使ってviewを組み込むのはノードだけではなくブロックやページなどに対しても有効です。

 

まだ投票はありません