Jak wydrukować treść węzła? [Zamknięte]

11

Próbuję wypracować sposób drukowania treści węzła na stronie.

Zwykle używam czegoś takiego, print $node->field_manufacturer[0]['view'];ale nie jestem pewien, jak wydrukować ciało węzła.

Jak mogę to osiągnąć?

Sam Warren
źródło

Odpowiedzi:

3

Możesz wyświetlić całą strukturę i zawartość węzła, pisząc:

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

A następnie wybór tego, co uważa za właściwe.

Aby wydrukować treść węzła, należy użyć $node->content['body']['#value'].

crenate
źródło
Próbowałem tego. Przywołuje wszystkie informacje. W szczególności niestandardowe pole, które utworzyłem. Ale nie jestem pewien, jak dokładnie wydrukować ciało (pole, które zawsze tam jest).
Sam Warren
1
Odpowiadam na własne pytania, ale ograniczenia mnie powstrzymują: # to zadziałało dla mnie: print $ node-> content ['body'] ['# value'];
Sam Warren
16

W przypadku Drupala 7 lepszym stylem jest użycie field_get_items. Na przykład:

<?php
  $body = field_get_items('node',$node, 'body');
  print $body[0]['value'];
?>
Druvision
źródło
14

Po prostu spróbuj tego dla Drupal 7

<?php print render($content['body'])?>
nxplace
źródło
Cześć i witaj. Odpowiedzi zawierające tylko kod nie są najlepsze z możliwych. Czy możesz wyjaśnić, w jaki sposób ten fragment ma odpowiedzieć na problem z OP?
Mołot
renderbyłby zwykle używany w .tpl.phpszablonach do formatowania elementów przy użyciu informacji o układzie w tablicy renderowania, patrz np. themery.com/dgd7/advanced-theming/render
Maine
10

Jeśli $nodejest to obiekt węzła uzyskany na przykład za pomocą node_load(), w Drupal 7 jest to struktura $node->body.

zrzut ekranu

Językiem ustawionym dla węzła, którego użyłem na zrzucie ekranu, jest angielski, a formatem wejściowym jest pełny HTML. O ile widzę, zawartość ciała jest zawsze zawarta w indeksie „und”, niezależnie od tego, jaki język został ustawiony dla węzła.

W Drupal 6 $node->bodyjest ciąg.

Jeśli zaimplementowałeś hook_nodeapi('view')(Drupal 6) lub hook_node_view()(Drupal 7), zawartość ciała zostanie znaleziona odpowiednio za pomocą $node->content['body']['#value']i $node->content['body'][0]['#markup'].

zrzut ekranu

kiamlaluno
źródło
3

drupal 7:

 <?php print $node->body['und'][0]['value'] ?>
Matoeil
źródło
LANGUAGE_NONE zamiast und
GwenM
0

Zwykle działa:

<?php print $node->body['value']; ?>
Sam152
źródło
Właśnie tego spróbowałem. Nie pojawiają się żadne błędy, ale żadna treść nie jest z wyjątkiem „>”. Masz pojęcie, co może być przyczyną?
Sam Warren
0

Być może trochę za późno, ale wypróbuj poniższe, jeśli używasz Drupala 6.

     <?php print $node->content['body']['#value'] ?>
Mark Conroy
źródło