Drupal 6、関連する記事の表示をViewsで実現

このエントリーをはてなブックマークに追加
投稿者:chikunai 投稿日時:2010-05-23(日) 18:07

よくブログには、関連記事っていう欄がありますよね。

本文を読んだ最後に、本文に関連する記事の一覧が表示されるアレです。

これをDrupalでも実現します。

Related linksというモジュールがありますが、Drupal 6用はalpha版なので、Views 2で実現します。

設定を始める前に、Viewsの翻訳をインポートしてください。

 

ビューを追加します。

ビューの名前は適当。ビューのタイプは「ノード」にして「次へ」ボタンを押してください。

引数の隣にある「+」ボタンを押してください。

「タームID」にチェックをつけ、「追加」ボタンを押してください。

このページは設定箇所が多いです。

引数が存在しない場合の動作は「デフォルト引数を提供」を選んでください。

デフォルト引数のタイプは「PHPコード」を選んでください。

PHP引数コードに以下コードを貼り付けてください。

  1. $node = node_load(arg(1));
  2. if ($node) {
  3.   foreach ( $node->taxonomy as $term) { $terms[] = $term->tid; }
  4.   return implode('+',$terms);
  5. } else { return; }

「1つの引数で複数のタームを利用可能にする」にチェックをつけてください。

「重複の削減」にチェックをつけてください。

「更新」ボタンを押してください。これで引数の設定は終了です。

フィールドの隣にある「+」ボタンを押してください。

「ノード:タイトル」にチェックをつけて、「追加」ボタンを押してください。

タイトルに入っている「タイトル」を削除して、「このフィールドをノードへリンクする」のチェックを外してください。「更新」ボタンを押してください。

基本設定のタイトルの「なし」をクリックしてください。

ブロックに表示させるタイトルをつけてください。

このままではブロックには表示されません。左上のプルダウンメニューから「ブロック」を選び、「ディスプレイの追加」ボタンを押してください。

全部設定すると、このようになります。

これで、ブロックの管理画面に、基本情報のタイトルでつけた名前が表示されます。ノードの下に表示されるようにブロックを移動してください。

 

Views、Related Linksどちらも同じですが、本文とコメントの間に表示されません。

Drupal 5なら、Related Linksを改造して、コメントの前に表示させていました。

Viewsだと、どうやるんだろう。ちょっと研究してみます。

元ネタはこちら

Using Views 2 and Drupal 6 to Create a Related Pages Block
http://drupaleasy.com/blogs/ryanprice/2008/06/using-views-2-drupal-6-create-a-related-pages-block

ryanprice さん、ありがとう。

DrupalをAmazonで検索する。




コメント(0)

新しいコメントの投稿

このフィールドの内容は非公開にされ、公表されることはありません。
  • 使用できるHTMLタグ: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <table> <tr> <th> <td>
  • 行と段落は自動的に折り返されます。
  • You can use BBCode tags in the text. URLs will automatically be converted to links.
  • 次のタグを使用してソースコード構文をハイライトすることができます。: <code>, <blockcode> The supported tag styles are: <foo>, [foo].
  • You may insert videos with [video:URL]
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。

書式オプションに関するより詳しい情報...

CAPTCHA
この問題はユーザが人間であるかどうかをテストし、スパムによる自動投稿を防ぐためのものです。
Image CAPTCHA
Enter the characters shown in the image.
Drupal theme by Kiwi Themes.