2011-10-07 10 views
20

Bir alanın görüntü yolunu almak istiyorum. Bir düğümdeyim ve inline css'de arka plan görüntüsü olarak koymak için imge URL'sine ihtiyacım var. Çözümü bulamıyorum. Bana yardımcı olabilir misiniz?Drupal 7 Resim alan yoluna bakın

cevap

49

bir resmin sadece yol almak için: file_create_url (on

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

fazla bilgi) burada bulunabilir: http://api.drupal.org/api/drupal/includes%21file.inc/function/file_create_url/7

URI'sinden bir görüntü stili kullanılarak oluşturulmuş bir görüntünün yolunu kullanmak için aşağıdakileri kullanın:

image_style_url üzerinde

daha fazla bilgi() burada bulunabilir: http://api.drupal.org/api/drupal/modules!image!image.module/function/image_style_url/7 korkarım

+0

hayatımı kurtardı. Teşekkürler! –

+2

Bu, çok dilli alanları dikkate almaz. Aşağıdaki @Gergely ile cevaba bakınız. Sitenizin çevirileri desteklemeye "asla" ihtiyacı olmayacağını düşünüyorsanız bile, lütfen bunu yapmayın. Daha fazla bilgi için, bkz. Http://www.computerminds.co.uk/articles/rendering-drupal-7-fields-right-way –

+1

harika ... yardımcı oldu –

5

Ben bazen bu kullanmak: Bu URI var dan

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

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

Ayrıca [theme_image_style()] (http://api.drupal.org/api/drupal/modules--image--image.module/function/theme_image_style/7) yerine hard- tema işlevini kullanarak etiketleri – Laxman13

+3

kodlama çok tercih edilir: 'tema ('image_style', dizi ('style_name' => 'name', 'yol' => $ node-> field_userimage ['und'] [ 0] ['uri'], 'alt' => 'Alt yazı')) – Clive

+0

Güzel görünüyor. Bu işlevleri kullanmaya başladım. – Kristoffer

18

, yukarıdaki çözümlerin hiçbiri doğru değildir. Drupal standartlarını takip etmiyorlar. Burada

// 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']); 

Diğer ayrıntılar: http://www.computerminds.co.uk/articles/rendering-drupal-7-fields-right-way

+3

Yukarıdaki kod mükemmel. Genel olarak, çoğu insan yukarıda açıklandığı gibi bunu yapmaya gerek duymaz, ancak Drupal standartlarına uyan ve her şey değiştiğinde veya herhangi bir zamanda kırılmayacak kod yazmak istiyorsanız, bunun ne kadar önemli olduğu vurgulanamaz. Koddaki öğelere atıfta bulunarak $ object ['und'] [0] ['element'] son ​​derece kötü bir uygulamadır. Her zaman field_get_items veya eşdeğer kullanın. –

1

Ayrıca Image URL Formatter modülünü kullanabilirsiniz.

Drupal field settings

Bonus: Sadece URL almak için saha biçimini değiştirmek için izin verir buna da Görünümler çalışır:

enter image description here

0

görüntü tarzı url almak için:

$field = field_get_items('node', $node, 'field_image'); 
$image_url = image_style_url('landingpage_slider', $field[0]['uri']);