Я изо всех сил пытаюсь понять, как напечатать тело узла на странице.
Я обычно использую что-то вроде этого, print $node->field_manufacturer[0]['view'];
но я не уверен, как напечатать тело узла.
Как мне этого добиться?
Я изо всех сил пытаюсь понять, как напечатать тело узла на странице.
Я обычно использую что-то вроде этого, print $node->field_manufacturer[0]['view'];
но я не уверен, как напечатать тело узла.
Как мне этого добиться?
Ответы:
Вы можете просмотреть всю структуру и содержимое узла, написав:
<pre><?php print_r($node); ?></pre>
А затем выбираете то, что считаете целесообразным.
Чтобы напечатать тело узла, вы должны использовать $node->content['body']['#value']
.
Просто попробуйте это для Drupal 7
<?php print render($content['body'])?>
render
обычно используется внутри .tpl.php
шаблонов для форматирования элементов с использованием информации макета в массиве рендеринга, см., например, themery.com/dgd7/advanced-theming/render
Если $node
это объект узла, полученный, например node_load()
, в Drupal 7, это структура $node->body
.
Язык, установленный для узла, который я использовал на скриншоте, - английский, а формат ввода - полный HTML. Насколько я вижу, содержимое тела всегда содержится в индексе "und", независимо от того, какой язык был установлен для узла.
В Drupal 6 $node->body
есть строка.
Если вы реализовали hook_nodeapi('view')
(Drupal 6) или hook_node_view()
(Drupal 7), то содержимое тела найдено, соответственно, с помощью $node->content['body']['#value']
и $node->content['body'][0]['#markup']
.
Обычно работает следующее:
<?php print $node->body['value']; ?>
Возможно, немного поздно, но попробуйте следующее, если вы используете Drupal 6.
<?php print $node->content['body']['#value'] ?>