Bonjour,
voila mon probleme..
J’ai placé le code pour afficher les vote (ou plutot notes)
dans node.tpl
J’ai fais des images pour 1/10, 2/10 ; 3/10 etc…
Ca donne ca :
<a href=""><img src="files/image-<?php print theme_nodevote_display_vote($node->nid); ?>.jpg"></a>
La, ca marche, pas de probleme.
Je souhaite, supprimer ce code du node.tpl et le placer dans un template d’un certain type de node, avec contemplate de ckk…
-Si je met le meme code ci dessus,
OU
-si je met le meme code sans image :
<?php print theme_nodevote_display_vote($node->nid); ?>
TOUT EST A ZERO sur 10.
-Si je met le code que me propose contemplate :
<?php print $nodevote->vote_display ?>
Ca me met TOUT A 1/10 !!
HELP !!
Merci
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

A mon avis c’est parce que dans contemplate tu ne dois pas avoir $node défini alors la valeur de $node->id est 0 ce qui t’affiche l’image zero, enfin quelque chose dans le genre car je parle sans savoir.
Essaie peut etre de rajouter GLOBAL $node ; avant d’utiliser le code avec $node->id
alliax@drupal.org
128
c’est une bonne idée mais ca ne marche toujours pas.
j’ai carrement mis
<?phpglobal $user;
?>
<?phpglobal $base_url;
?>
<?phpglobal $node;
?>
y’aurait-il un global autre ?
dans le module nodevote il y a que
<?phpglobal $user;
?>
!!!!!
http://www.direct-radio.fr
jubjub
349
Y a deux façons de faire, une bonne et une mauvaise, en sachant que la mauvaise est bcp plus facile et rapide. :)
Mauvaise façon
Pour récupérer le node en cours dans ton template, écris :
<?php$node = node_load($nid);
?>
Note que
$nidest une variable disponible dans tout template ; elle contient l’id du node affiché. Si tu as uniquement besoin de cet id, ce n’est même pas la peine de rajouter le code ci-dessus (utilise$niddirectement).Bonne façon
La façon la plus élégante de mettre des variables à disposition d’un template, c’est de passer par
_phptemplate_variables()(voir doc sur drupal.org) ou le hook_nodeapi() (case 'view').Vincent
Formations Drupal pour WEBMASTERS, DESIGNERS et DÉVELOPPEURS.
drupalfrance
1772
Ca marche !!!!!j’ai mis ce code
<?php$node = node_load($nid);
?>
T’es un chef !!
Merci !
http://www.direct-radio.fr
jubjub
349
Note que les appels à node_load() sont mis en cache mémoire à l’intérieur de la fonction. Donc en pratique, utiliser cette «mauvaise méthode» a un impact presque nul en terme de performances.
Damien Tournoud
808
OK damz, merci pour l’info, je ne savais pas.
Par «mauvaise méthode», je voulais surtout dire que ce genre de code (node_load()) n’a pas à se retrouver - a priori - dans un template, dont le rôle est essentiellement d’afficher des variables.
Vincent
Formations Drupal pour WEBMASTERS, DESIGNERS et DÉVELOPPEURS.
drupalfrance
1772