Come si stampa il corpo di un nodo? [chiuso]


11

Sto lottando per capire come stampare un corpo di nodo su una pagina.

Normalmente uso qualcosa del genere print $node->field_manufacturer[0]['view'];ma non sono sicuro di come stampare il corpo di un nodo.

Come posso raggiungerlo?

Risposte:


3

È possibile visualizzare l'intera struttura e il contenuto di un nodo scrivendo:

<pre><?php print_r($node); ?></pre>

E quindi scegliere ciò che ritiene appropriato.

Per stampare il corpo del nodo, è necessario utilizzare $node->content['body']['#value'].


Ci ho provato. Fa apparire tutte le informazioni. In particolare il campo personalizzato che ho creato. Ma non sono sicuro di come stampare il corpo (un campo che è sempre lì).
Sam Warren,

1
Id risponderò alle mie domande ma le restrizioni mi fermano: # questo ha funzionato per me: print $ node-> content ['body'] ['# value'];
Sam Warren,

16

Per Drupal 7, uno stile migliore è usare field_get_items. Per esempio:

<?php
  $body = field_get_items('node',$node, 'body');
  print $body[0]['value'];
?>

14

Prova questo per Drupal 7

<?php print render($content['body'])?>

Ciao e Benvenuto. Le risposte di solo codice non sono le migliori possibili. Potresti spiegare in che modo questo frammento dovrebbe rispondere esattamente al problema dei PO?
Mołot,

renderverrebbero generalmente utilizzati all'interno dei .tpl.phpmodelli per formattare gli elementi utilizzando le informazioni di layout nell'array di rendering, vedere ad esempio themery.com/dgd7/advanced-theming/render
Maine,

10

Se $nodeè un oggetto nodo ottenuto ad esempio con node_load(), in Drupal 7 questa è la struttura di $node->body.

immagine dello schermo

La lingua impostata per il nodo che ho usato nello screenshot è l'inglese e il formato di input è HTML completo. Per quanto posso vedere, il contenuto del corpo è sempre contenuto nell'indice "und", qualunque sia la lingua impostata per il nodo.

In Drupal 6, $node->bodyè una stringa.

Se hai implementato hook_nodeapi('view')(Drupal 6) o hook_node_view()(Drupal 7), il contenuto del corpo viene trovato, rispettivamente, con $node->content['body']['#value']e $node->content['body'][0]['#markup'].

immagine dello schermo



0

Di solito funziona come segue:

<?php print $node->body['value']; ?>

Ci ho appena provato. Non vengono visualizzati errori ma non viene visualizzato alcun contenuto ad eccezione di ">" Hai idea di cosa potrebbe causare questo?
Sam Warren,

0

Forse un po 'in ritardo, ma prova quanto segue, se stai usando Drupal 6.

     <?php print $node->content['body']['#value'] ?>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.