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.