2

我有一个打印标题、正文和图像字段的视图。现在我希望能够将数据属性打印到图像标记中。目前它生成以下 HTML:

<img width="578" height="472" src="http://mydomain.com/sites/mydomain.com/files/image-small.jpg" typeof="foaf:Image">

但我想提供更大图像的 URL 作为数据属性。像这样:

<img width="578" height="472" src="http://mydomain.com/sites/mydomain.com/files/image-small.jpg" typeof="foaf:Image" data-big-image="http://mydomain.com/sites/mydomain.com/files/image-big.jpg" />

怎样才能做到这一点?我可以在视图中执行此操作还是需要更改视图模板?

4

2 回答 2

0

您可以使用Views PHP字段在 Views UI 中完成此操作。

您需要先添加大图像字段和小图像字段,然后将它们从显示中排除,以便稍后使用 $data 对象轻松引用它们。

添加一个 PHP 字段,将“值代码”留空。在“输出代码”中,只需构建您想要的 HTML:

<?php
print '<img src="' . $data->field_your_small_image_field['some']['array'] .
 '" data-big-image="' . $data->field_your_big_image_field['some']['array'] . '" />';
?>`

在输出代码区域中执行dsm($data);(启用Devel)以找到 URL 的确切数组键。

于 2012-05-24T14:07:49.787 回答
0

访问整个数据负载的任何简单方法是在视图 ui 中添加一个节点 id 字段,然后在循环之前的模板文件中添加以下内容:

  $nid = strip_tags($fields['nid']->content);
  $node = node_load($nid);

执行 $node 的 var_dump() 以查看您可以使用哪些数据。

例如,获取图像路径类似于以下内容:

$node->field_cl_image['und'][0]['uri']
于 2012-05-24T08:28:38.747 回答