2012-05-23 3 views
2

J'ai une vue qui imprime les champs titre, corps et image. Maintenant, je veux être en mesure d'imprimer un attribut de données au balisage d'image. Pour le moment, il produit le code HTML suivant:Ajouter un attribut de données à Drupal Views image

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

Mais je veux fournir l'URL d'une plus grande image comme un attribut de données. Comme ceci:

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

Comment peut-on y parvenir? Puis-je le faire à l'intérieur des vues ou dois-je faire des changements pour voir le modèle?

Répondre

0

un moyen facile d'accéder à la charge l'ensemble des données est d'ajouter un champ id de noeud dans les vues ui puis dans votre fichier modèle avant la boucle, vous pouvez entrer les éléments suivants:

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

Faites un var_dump() du noeud $ pour voir à quelles données vous pouvez jouer.

Par exemple, l'obtention de votre chemin d'image serait quelque chose de similaire à ce qui suit:

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

Vous pouvez le faire complètement dans l'interface utilisateur en utilisant Vues Views PHP champs. Vous devez d'abord ajouter des champs d'image petits et grands, puis les exclure de l'affichage, vous pouvez donc facilement les consulter à l'aide de l'objet $ data plus tard.

Ajoutez un champ PHP, laissez le 'code de valeur' ​​vide. Dans le « code de sortie », il suffit de construire le code HTML que vous voulez:

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

Faites un dsm($data); (avec Devel activé) dans la zone de code de sortie pour trouver les clés du tableau exact à l'URL.