I have created a custom field template for an image - field--field_images.tpl.php with the following code:

$url = file_create_url($field_images['uri']);
$url = parse_url($url);
$imglink = $url['path'];
<div id="slideshow">
  <?php foreach ($items as $delta => $item): ?>    
    <div data-thumb="<?php print render($imglink); ?>" data-src="<?php print render($imglink); ?>" data-time="1500" data-trasPeriod="4000" data-target="_blank" ></div>           
  <?php endforeach; ?>

currently $imglink returns the value of the root folder "www". I need to find a way to get the path to the image file associated with the field e.g "http://www.example.com/sites/default/files/image.jpg" any help with this would be greatly appreciated.


I think I'm almost there. Here is the code in my field-field_images.tpl.php file:

<?php foreach ($items as $delta => $item): ?>    
  <div data-thumb="<?php $img_src = $element['#object']->field_images['und'][0]['uri']; $link = image_style_url('thumbnail', $img_src); print ($link); ?>" data-src="<?php $img_src = $element['#object']->field_images['und'][0]['uri']; $link = file_create_url($img_src); print ($link); ?>" data-time="1500" data-trasPeriod="4000" data-target="_blank" ><?php render($item); ?></div>   
<?php endforeach; ?>

and you can see the output here: http://www.kfpa.co.za/dev/?q=node/2

The one problem is that it loops through and creates the correct number of elements for the uploaded images, but when it creates the URLs it's only creating for the item as specified for by 'x' in <?php $img_src = $element['#object']->field_images['und'][x]['uri']; i.e if I change 'x' to '2' the third photo displays. How do I change this code so that it finds the correct URL for corresponding image in the loop?

2 Answers 2


you want file_create_url().

Note: Usage of drupal_realpath() is discouraged.

Similar question: What is the alternative to drupal_realpath()?


There is drupal_realpath

Returns the absolute local filesystem path of a stream URI.


Also there is image_style_url

image_style_url($style_name, $path)
  • $uri should be $url as per code of the OP
    – AgA
    Commented Jul 5, 2013 at 5:56
  • $uri is the stream wrapper right ?
    – niksmac
    Commented Jul 5, 2013 at 6:11
  • After days spent googling this I found this - jefflinwood.com/2011/01/… however when I use that code in my field template like this <div data-thumb="<?php print $element['#object']->field_url['und'][0]['value']; ?>" data-src="<?php print $element['#object']->field_url['und'][0]['value']; ?>" data-time="1500" data-trasPeriod="4000" data-target="_blank" ></div> to returns the following Commented Jul 21, 2013 at 13:18
  • <div data-target="_blank" data-trasperiod="4000" data-time="1500" data-src="" data-thumb=""></div> Commented Jul 21, 2013 at 13:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.