Як надрукувати тіло вузла? [зачинено]


11

Я намагаюся розробити, як надрукувати тіло вузла на сторінці.

Я зазвичай використовую щось подібне, print $node->field_manufacturer[0]['view'];але я не впевнений, як надрукувати тіло вузла.

Як я можу цього досягти?

Відповіді:


3

Ви можете переглянути всю структуру та вміст вузла, написавши:

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

А потім вибираючи те, що вважає за потрібне.

Щоб надрукувати тіло вузла, слід скористатися $node->content['body']['#value'].


Я спробував це. Він містить всю інформацію. Зокрема, створене мною поле користувача. Але я не впевнений, як саме роздрукувати тіло (поле, яке завжди є).
Сем Воррен

1
Я відповідаю на власні запитання, але обмеження зупиняють мене: # це працювало для мене: print $ node-> content ['body'] ['# value'];
Сем Уоррен

16

Для Drupal 7 кращим стилем є використання field_get_items. Наприклад:

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

14

Просто спробуйте це для Drupal 7

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

Привіт і ласкаво просимо. Відповіді, що стосуються лише коду, - не найкращі з можливих. Чи можете ви пояснити, як саме цей фрагмент повинен відповідати на питання ОП?
Молот

renderзазвичай використовуються всередині .tpl.phpшаблонів для форматування елементів, використовуючи інформацію про макет у масиві візуалізації, див., наприклад, themery.com/dgd7/advanced-theming/render
Мейн

10

Якщо $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'].

скріншот



0

Зазвичай працює таке:

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

Просто спробував це. Жодних помилок не з’являється, але жоден вміст взагалі не має, за винятком ">" будь-якої ідеї, що може спричинити це?
Сем Уоррен

0

Можливо, трохи пізно, але спробуйте наступне, якщо ви використовуєте Drupal 6.

     <?php print $node->content['body']['#value'] ?>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.