Como imprimo o corpo de um nó? [fechadas]

11

Estou lutando para descobrir como imprimir um corpo de nó em uma página.

Normalmente, uso algo assim, print $node->field_manufacturer[0]['view'];mas não tenho certeza de como imprimir o corpo de um nó.

Como posso conseguir isso?

Sam Warren
fonte

Respostas:

3

Você pode visualizar toda a estrutura e o conteúdo de um nó escrevendo:

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

E depois escolher o que considerar apropriado.

Para imprimir o corpo do nó, você deve usar $node->content['body']['#value'].

enfeitar
fonte
Eu tentei isso. Traz todas as informações. Especificamente, o campo personalizado que eu criei. Mas não sei exatamente como imprimir o corpo (um campo que está sempre lá).
Sam Warren
1
Eu responderia minhas próprias perguntas, mas restrições me parariam: # funcionou para mim: print $ node-> content ['body'] ['# value'];
Sam Warren
16

Para o Drupal 7, um estilo melhor é usar field_get_items. Por exemplo:

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

Apenas tente isso no Drupal 7

<?php print render($content['body'])?>
nxplace
fonte
Olá e bem-vindo. As respostas somente de código não são as melhores possíveis. Você poderia explicar como exatamente esse snippet deve responder à questão dos OPs?
Mołot
renderseria tipicamente usado dentro .tpl.phptemplates para formatar os elementos usando informações de layout na matriz render, ver, por exemplo themery.com/dgd7/advanced-theming/render
Maine
10

Se $nodeé um objeto de nó obtido, por exemplo node_load(), no Drupal 7, essa é a estrutura de $node->body.

captura de tela

O idioma definido para o nó que usei na captura de tela é inglês e o formato de entrada é HTML completo. Tanto quanto posso ver, o conteúdo do corpo está sempre contido no índice "und", independentemente do idioma definido para o nó.

No Drupal 6, $node->bodyé uma string.

Se você implementou hook_nodeapi('view')(Drupal 6) ou hook_node_view()(Drupal 7), o conteúdo do corpo é encontrado, respectivamente, com $node->content['body']['#value'], e $node->content['body'][0]['#markup'].

captura de tela

kiamlaluno
fonte
3

drupal 7:

 <?php print $node->body['und'][0]['value'] ?>
Matoeil
fonte
LANGUAGE_NONE em vez de und
GwenM 23/08
0

Normalmente, o seguinte funciona:

<?php print $node->body['value']; ?>
Sam152
fonte
Apenas tentei isso. Não são exibidos erros, mas também não há conteúdo, exceto um ">". Alguma idéia do que pode estar causando isso?
Sam Warren
0

Talvez um pouco tarde, mas tente o seguinte, se você estiver usando o Drupal 6.

     <?php print $node->content['body']['#value'] ?>
Mark Conroy
fonte