imagefieldとimagecacheを組み合わせる
Drupalで画像付きのノードを作成するには、いくつか方法があるのですが、最も柔軟に手を加えることのできる方法が、imagefieldとimagecacheを組み合わせる方法だと思います。
まあその分、いろいろと設定しなくてはいけないところも多いわけで、面倒くさい点もありますが。
必要なモジュール
・CCK
・Contemplate
・imagefield
・imagecache
1. imagecacheのプリセットを作成する
admin/settings/imagecache でimagecacheのプリセットを作成します。
プリセットというのは、imagecacheで作成する画像の高さや幅をあらかじめ指定した設定のことです。
Preset namespace:にプリセットの名前を入力して「Create preset」ボタンを押すと、プリセットが作成されます。
画像の詳細を設定するため、Add a new actionでアクションを選択して「Update preset」ボタンを押し、アクションの詳細を設定します。
今回の例では「photo_thumbnail」「photo_mainimage」という2つのプリセットを作成しました。
photo_thumbnail = action:scale( width:120, height:120, Scale to fit:Inside dimensions, weight:0 )
photo_mainimage = action:scale( width:400, height:400, Scale to fit:Inside dimensions, weight:0 )
2. コンテンツタイプを設定する
Imageタイプの項目があるコンテンツタイプを設置します。
admin/content/types で既存のコンテンツタイプを編集するか、新しくコンテンツタイプを追加します。
今回の例では新しくコンテンツタイプ「Photo」を作成し、そこにImageタイプの項目を追加しました。
Imageフィールドのラベルに「photo」、ファイルパスに「photo」を指定し、必須にチェックを入れ、その他の項目は変更なしです。
3. テンプレートを設定する
admin/content/templates でコンテンツタイプ「Photo」用のテンプレートを作成します。
それぞれのテンプレートにimagecacheのスニペットを入力して、「出力に適用する」にチェックを入れ、送信ボタンを押します。
今回の例ではティーザーのテンプレートに
<?php print theme('imagecache','photo_thumbnail',$node->field_photo[0]['filepath'],$node->field_photo[0]['title']) ?>
本文のテンプレートに
<?php print theme('imagecache','photo_mainimage',$node->field_photo[0]['filepath'],$node->field_photo[0]['title']) ?>
を追加しました。
以上で、Photoのコンテンツを作成すると、ティーザーと本文にリサイズされた画像が表示されるようになります。
「Drupal」カテゴリの記事
- Drupalの携帯対応を考える(2008.03.19)
- Drupalで確認画面付きのフォームを作る(2009.06.02)
- マイコーの公式サイトがDrupalに!(2009.03.06)
- D6 + ImageCacheモジュールではまる(2008.12.24)
- Imageモジュールを翻訳(2008.10.24)


Comments