【问题标题】:Get the uri/path value of an image in the field template in Drupal 7在 Drupal 7 的字段模板中获取图像的 uri/path 值
【发布时间】:2013-07-05 00:37:28
【问题描述】:

我已经为图像创建了一个自定义字段模板 - field--field_images.tpl.php,代码如下:

<?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>

当前 $imglink 返回根文件夹“www”的值。我需要它来返回与字段关联的图像文件的路径,例如“http://www.mysite.com/sites/default/files/image.jpg”,对此的任何帮助将不胜感激。

更新:

我想我快到了。这是我的 field-field_images.tpl.php 文件中的代码: <?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; ?>

你可以在这里看到输出:http://www.kfpa.co.za/dev/?q=node/2

一个问题是它循环并为上传的图像创建正确数量的元素,但是当它创建 URL 时,它只为 &lt;?php $img_src = $element['#object']-&gt;field_images['und'][x]['uri']; 中的“x”指定的项目创建,即如果我改变'x' 到 '2' 第三张照片显示。如何更改此代码,以便在循环中找到对应图像的正确 URL?

【问题讨论】:

  • 你能告诉你在回显$field_images['uri']后得到什么吗?
  • 它输出http://mydomain.co.za/,其中'mydomain'是域名
  • 我刚刚意识到 var $field_images 没有定义。我会再试一次,让你知道它是否有效。
  • 啊,这可能是问题所在。我的回答假设您想要获得“风格化”的图像。所以 file_create_url "IS" 是你工作的函数。整个事情失败了,因为你的 $field_images 首先没有 uri。
  • 你搞定了吗?我想知道您如何使用 file_create_url($uri) 来获取您的字段图像 src。

标签: image drupal-7 uri field


【解决方案1】:

如果你有一个 uri,你可以使用 image_style_path() 来创建图像路径(如果需要,特定于样式)。

编辑: 要获取原始图像路径,请使用file_create_url($uri)

【讨论】:

  • 再次感谢您抽出宝贵时间回复,我确实尝试过,但是它会输出这样的路径 http://mydomain.co.za/?q=sites/media/styles/thumbnail/public&amp;itok=Q4Jh-VWn 而我需要像这样的原始路径 http://mydomain.co.za/?q=sites/media/myimage.jpg 任何建议将不胜感激.
  • 我看到您在代码中使用了 data-thumb,因此假设您想使用图像的缩略图大小。我已经使用一个函数更新了答案,您可以使用该函数从 uri 获取原始 url。
猜你喜欢
  • 2011-12-28
  • 2016-02-13
  • 2011-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多