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ąć?

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'].


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'];
?>

14

Po prostu spróbuj tego dla Drupal 7

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

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



0

Zwykle działa:

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

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'] ?>
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.