drupalでWeb Gallery flickrライクにタグ毎に写真を表示する

こんなページを見る方なら「写真が好き、ウェブサービスが好き」って方が多い(そもそも来る人数は少ない)と思いますが、flickrはご存知でしょうか?まあ知ってるものとして話を進めますが、flickrの様に写真にタグをつけてタグ毎に写真の一覧を表示する方法を説明したいと思います。

drupalにはtaxonomy(タクソノミー)というものがあります。なにかと言うと要はタギング機能です。各コンテンツ毎にタギングする機能が最初っから備わっているわけですね。

なので後はどのように表示するか?というだけなのですが、これにViewを用います。
また、タグ毎に表示するためのメニューを作るために『taxonomy_dhtml』モジュールを利用します。

先に言い訳しておきますが、残念ながら今回は少しスマートじゃない方法を使います。
もっと良いモジュールがもしかしたらあるのかもしれませんが、色々探してみたものの見つかりませんでした(6系ならあるかも)。ではまずはモジュールのインストールを


$wget http://ftp.drupal.org/files/projects/taxonomy_dhtml-5.x-2.2.tar.gz

例の如く展開してmoduleディレクトリにいれてUIでインストールしてください。

次に写真にタグをつけられるようにします。

「コンテンツの管理」->「カテゴリ」->「ボキャブラリの追加」を選びます。

  • ボキャブラリの名称: フォトのタグ
  • タイプ: フォト
  • 階層構造: 1つ
  • フリータギング, 複数選択 にチェック

これで保存してみて、新しくフォトコンテンツを作成してみてください。
項目に「フォトのタグ」が追加されていてタグをつけられるようになっているはずです。


さて、次にViewを利用してタグ毎の画像一覧を表示できるようにします。
例えば「食べ物」というタグがついた写真のみを表示する、といった感じですね。
これを行うために今まで使わなかった『アーギュメント』を利用します。
例によってとりあえずやり方のみ書いてみて使い方はまた別途説明できたらなと思います。

こっからあんまりスマートじゃないけど目を瞑ってください。他に良い方法を見つけた方はぜひフィードバックを

ということで。

「管理セクション」->「サイトの構築」->「ビュー」を選びます。
「デフォルトのビュー」->「taxonomy_term」を「有効」にして「追加」をおします。
するとビューの追加画面に移動するので

■基本情報

  • 適当に

■ページ

  • ビューのタイプ: リスト表示
  • タイトル: 空

■フィールド

  • フィールドの追加: Image: フォト(field_) -> フィールドの追加を押す

ここでImageフィールドが追加されるので続いて。

  • オプション: ノードへのリンクをthumbnailに

■アーギュメント

■フィルタ

  • カテゴリ: フォトのタグ の分類用語 -> フィールドの追加

で保存して http://URL/taxonomy/term/1 にアクセスしてみてください。
先ほど作成したタグ付きのフォトのみが表示されていれば成功です。

これで表示するコンテンツの準備ができました。後はこれをtaxonomy_dhtmlで表示してあげます。

「管理セクション」->「サイトの環境設定」->「Taxonomy DHTML」を選びます

  • Omitted vocabularies:フォトのタグ
  • Number of items: 50(任意)

で保存します。これで

「管理セクション」->「サイトの構築」->「ブロック」に『フォトのタグ』というブロックが表示されるはずです。
これが各タグがつけられたコンテンツを表示するためのメニューになるので好きなところに表示してみてください。

以上で完成です。いくつかタグをつけてみて確認してみてくださいね ヽ(´ー`)ノ