【问题标题】:Add data attribute to Drupal Views image将数据属性添加到 Drupal Views 图像
【发布时间】:2012-05-23 10:35:38
【问题描述】:

我有一个打印标题、正文和图像字段的视图。现在我希望能够将数据属性打印到图像标记中。目前它生成以下 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" />

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

【问题讨论】:

    标签: image drupal drupal-views


    【解决方案1】:

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

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

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

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

    $node->field_cl_image['und'][0]['uri']
    

    【讨论】:

      【解决方案2】:

      您可以在 Views UI 中使用 Views PHP 字段完全做到这一点。

      您需要先添加大图像字段和小图像字段,然后将它们从显示中排除,以便稍后使用 $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的确切数组键。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-02-02
        • 2015-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-11
        • 1970-01-01
        相关资源
        最近更新 更多