J'ai du mal à trouver comment imprimer un corps de nœud sur une page.
J'utilise normalement quelque chose comme ça, print $node->field_manufacturer[0]['view'];
mais je ne sais pas comment imprimer le corps d'un nœud.
Comment puis-je y parvenir?
J'ai du mal à trouver comment imprimer un corps de nœud sur une page.
J'utilise normalement quelque chose comme ça, print $node->field_manufacturer[0]['view'];
mais je ne sais pas comment imprimer le corps d'un nœud.
Comment puis-je y parvenir?
Réponses:
Vous pouvez afficher l'intégralité de la structure et du contenu d'un nœud en écrivant:
<pre><?php print_r($node); ?></pre>
Et puis choisir ce qui semble approprié.
Pour imprimer le corps du nœud, vous devez utiliser $node->content['body']['#value']
.
Essayez ceci pour Drupal 7
<?php print render($content['body'])?>
render
serait généralement utilisé dans des .tpl.php
modèles pour formater les éléments en utilisant les informations de disposition dans le tableau de rendu, voir par exemple themery.com/dgd7/advanced-theming/render
Si $node
est un objet nœud obtenu par exemple avec node_load()
, dans Drupal 7 c'est la structure de $node->body
.
La langue définie pour le nœud que j'ai utilisé dans la capture d'écran est l'anglais et le format d'entrée est entièrement HTML. Pour autant que je puisse voir, le contenu du corps est toujours contenu dans l'index "und", quelle que soit la langue définie pour le nœud.
Dans Drupal 6, $node->body
est une chaîne.
Si vous avez implémenté hook_nodeapi('view')
(Drupal 6) ou hook_node_view()
(Drupal 7), le contenu du corps se trouve, respectivement, avec $node->content['body']['#value']
et $node->content['body'][0]['#markup']
.
Les éléments suivants fonctionnent généralement:
<?php print $node->body['value']; ?>
Peut-être un peu tard, mais essayez ce qui suit, si vous utilisez Drupal 6.
<?php print $node->content['body']['#value'] ?>