Я намагаюся розробити, як надрукувати тіло вузла на сторінці.
Я зазвичай використовую щось подібне, 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'] ?>