[PEIIIEHO] Как получить полностью обработанное тело ноды с CCK-полями?

Главные вкладки

Аватар пользователя echernyavskiy echernyavskiy 14 мая 2010 в 0:38

Бьюсь над следующей задачей: мне нужно в

аяксом загрузить тело ноды, в которой есть CCK-поля. Самого поля body нет, его заменяет одно из CCK полей.
Реально ли с помощью node_load или каким-то иным способом получить в конечном итоге весь контент ноды (кроме заголовка), полностью обработанный CCK, фильтрами и т.д.?

Комментарии

Аватар пользователя Xermit Xermit 14 мая 2010 в 1:20

может попробовать отсюда http://api.drupal.org/api/function/drupal_render

по идее можно загрузить ноду, а ее ['content'] скормить этой функции, или воспользоваться функцией node_view или theme('node')

Думаю еще будет очень интересен код функции
http://api.drupal.org/api/function/node_view/6

<?php
function node_view($node, $teaser = FALSE, $page = FALSE, $links = TRUE) {
  $node = (object)$node;

  $node = node_build_content($node, $teaser, $page);

  if ($links) {
    $node->links = module_invoke_all('link', 'node', $node, $teaser);
    drupal_alter('link', $node->links, $node);
  }

  // Set the proper node part, then unset unused $node part so that a bad
  // theme can not open a security hole.
  $content = drupal_render($node->content);
  if ($teaser) {
    $node->teaser = $content;
    unset($node->body);
  }
  else {
    $node->body = $content;
    unset($node->teaser);
  }

  // Allow modules to modify the fully-built node.
  node_invoke_nodeapi($node, 'alter', $teaser, $page);

  return theme('node', $node, $teaser, $page);
}
?>