AnswerBun.com

Get the uri/path value of an image in the field template

Drupal Answers Asked by flamesquirrel on December 7, 2020

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

<?php $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; ?>
</div>

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.

UPDATE:

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

you want file_create_url().

Note: Usage of drupal_realpath() is discouraged.

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

Answered by jonhattan on December 7, 2020

There is drupal_realpath

Returns the absolute local filesystem path of a stream URI.

drupal_realpath($uri)

Also there is image_style_url

image_style_url($style_name, $path)

Answered by niksmac on December 7, 2020

Add your own answers!

Related Questions

Changing library path with hook_library_info_alter

1  Asked on September 8, 2020 by extect

   

How can execute batch api over cron jobs

3  Asked on September 6, 2020 by johntang

     

How can I programatically add a shipping method to a store?

1  Asked on September 4, 2020 by vintorg

   

Local Dev .theme file not loading

1  Asked on September 4, 2020 by jmichael

   

Webform submitted data in views

5  Asked on August 31, 2020 by user3783391

 

Export and Import Taxonomies and Extra Fields

1  Asked on August 21, 2020 by monkeyuser

   

How to resolve lazy_builder error?

1  Asked on August 19, 2020 by usernameabc

     

redirect whole site to HTTPS

3  Asked on August 11, 2020 by naomisl

     

Ask a Question

Get help from others!

© 2022 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP, SolveDir