C'est en baillant que la loutre le dit:

Loutre avec écouteurs

Drupal 6 : Inserer une image avec un réglage imagecache dans un tpl.php

jeu, 26/05/2011 - 14:25 -- mzw

Problématique : J'ai un champ image et un champ URL. Je voudrais que lorsque je clique sur l'image, l'url renseignée dans l'autre champ se charge. Et en même temps, j'aimerais que l'image affichée soit générée via imagecache. Fastoche !

Première chose à faire, créer un fichier tpl.php en copiant node.tpl.php vers un autre fichier, par exemple :

$ cp node.tpl.php node-type_de_contenu.tpl.php

Ensuite, on modifie node-type_de_contenu.tpl.php en ajoutant, juste après <?php print $content ?>, les champs qu'on veut.

  • $node->field_champurl[0]['display_url'] va afficher l'url renseignée dans champurl
  • theme('imagecache', 'parametreimagecache', $field_champimage[0]['filepath']) va afficher l'image formatée avec le preset imagecache parametreimagecache.

Ça nous donne le résultat suivant :

<?php print '
    <a href="' . $node->field_champurl[0]['display_url'] . '">'. theme('imagecache', 'parametreimagecache', $field_champimage[0]['filepath']) . '</a>
'; ?>

On aurait la possibilité d'ajouter les attributs title, alt et autres, il suffit de fouiller en faisant un print_r($node); pour voir ce qui est disponible.

Ne pas oublier de désactiver l'affichage des champs en questions dans Content management -> Content types (surtout de l'image) pour éviter d'avoir du contenu dupliqué !