2011-10-07 7 views
20

フィールドの画像パスを取得したいと考えています。私はノードにあり、インラインCSSの背景イメージとして配置するには、イメージのURLが必要です。 解決策が見つかりません。手伝って頂けますか?Drupal 7画像フィールドパスを取得

答えて

49

は画像だけのパスを取得するには:file_create_url(上

file_create_url($node->field_image['und'][0]['uri']);

詳細)ここで見つけることができます:http://api.drupal.org/api/drupal/includes%21file.inc/function/file_create_url/7

URIからイメージスタイルを使用して作成されたイメージのパスを取得するには、次のようにします。

image_style_url($style, $node->field_image['und'][0]['uri']);

image_style_urlの詳細については、()ここで見つけることができます:http://api.drupal.org/api/drupal/modules!image!image.module/function/image_style_url/7

+0

は私の人生を救った。ありがとう! –

+2

多言語のフィールドは考慮されていません。以下の@Gergelyの答えを見てください。たとえあなたのサイトが "決して"翻訳をサポートする必要がないと思っても、これをしないでください。詳細については、 –

+1

wonderful..itは、上記のコードは完璧です –

5

私はいつかこれを使用する:それはURIだから

$node = node_load($nid); 
$img_url = $node->field_userimage['und'][0]['uri']; 

<img src="<?php print image_style_url($style, $img_url) ?>" /> 
+3

ハード・ディスクの代わりに[theme_image_style()](http://api.drupal.org/api/drupal/modules--image--image.module/function/theme_image_style/7)テーマの機能を使用して ''タグを – Laxman13

+3

にコーディングする方がはるかに望ましいでしょう: 'theme( 'image_style'、array( 'style_name' => 'name'、 'path' => $ node-> field_userimage ['und'] [ 0] ['uri']、 'alt' => 'Alt text')); ' – Clive

+0

いいね。私はそれらの機能を使い始めるべきです。 – Kristoffer

18

私は怖い、上記の解決策のどれも正しくありません。彼らはDrupalの基準に従わない。ここ

// field_video_image is the name of the image field 

// using field_get_items() you can get the field values (respecting multilingual setup) 
$field_video_image = field_get_items('node', $node, 'field_video_image'); 

// after you have the values, you can get the image URL (you can use foreach here) 
$image_url = file_create_url($field_video_image[0]['uri']); 

詳細: http://www.computerminds.co.uk/articles/rendering-drupal-7-fields-right-way

+3

助けhttp://www.computerminds.co.uk/articles/rendering-drupal-7-fields-right-way参照してください。一般的に、ほとんどの人は、上記のようにこれを実行する必要はありませんが、あなたはDrupalの標準に準拠し、物事が変更または何されている場合中断されませんコードを書きたいならば、これがいかに重要かを強調することはできません。 $ object ['und'] [0] ['element']のようなコードの項目を参照することは非常に悪いことです。常にfield_get_itemsまたは同等のものを使用してください。 –

1

またImage URL Formatterモジュールを使用することができます。それだけでURLを取得するために、フィールドの書式を変更することができます:

Drupal field settings

ボーナス:それは同様にビューで動作します:

enter image description here

0

画像スタイルのURLを取得するには:

$field = field_get_items('node', $node, 'field_image'); 
$image_url = image_style_url('landingpage_slider', $field[0]['uri']); 
関連する問題