2012-05-23 4 views
2

У меня есть представление, которое печатает поля заголовка, тела и изображения. Теперь я хочу иметь возможность печатать атрибут данных для разметки изображения. На данный момент он производит следующий HTML:Добавить атрибут данных в Drupal Views image

<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" /> 

Как это можно достичь? Могу ли я сделать это внутри просмотров или сделать, чтобы внести изменения в шаблон просмотра?

ответ

0

Любого простой способ получить доступ ко всей загрузке данных, чтобы добавить поле идентификатора узла в воззрениях пользовательского интерфейса, то в файле шаблон перед циклом можно ввести следующее:

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

Делает var_dump() узла $, чтобы увидеть, с какими данными вы можете играть.

Например, получить свой путь к изображению будет что-то похожее на следующее:

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

Вы можете сделать это полностью в 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-адресу.