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 , 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 :

field_champurl[0]['display_url'] . '">'. theme('imagecache', 'parametreimagecache', $field_champimage[0]['filepath']) . '
'; ?>

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é !

Retour à l'accueil