Распечатать тизер узла из nid - PullRequest
4 голосов
/ 20 февраля 2012

Как мне распечатать тизер с определенного nid?Это сводит меня с ума.

Я пробовал это:

$teaser = TRUE;
$page = FALSE;
$nid = 20;
print node_view(node_load(array('nid' => $nid)), $teaser, $page, FALSE); 

, но единственный выход - 'Array'.

Я также пробовал это:

$node = node_load(20);
$teaser_content = $node->body['und']['0']['summary'];
print $teaser_content;

Но это только дает мне сводку узла, а не тизер, заданный <!--break-->.

Ответы [ 3 ]

8 голосов
/ 20 февраля 2012

В Drupal 7 нет аргумента $teaser для функции node_view(), вместо этого есть аргумент $view_mode, который принимает строку (обычно teaser или full, по умолчаниюfull).Код, который вы используете в настоящее время, отлично подойдет для Drupal 6.

Этот код будет работать для Drupal 7:

$view_mode = 'teaser';
$nid = 20;

$node = node_load($nid);

print render(node_view($node, $view_mode)); 
1 голос
/ 20 февраля 2012

Используйте функцию render().

$teaser = TRUE;
$page = FALSE;
$nid = 20;
print render(node_view(node_load(array('nid' => $nid)), $teaser, $page, FALSE)); 

Будьте осторожны, используя node_view() непосредственно на node_load(), так как он будет белым экраном, если node_load() не удастся успешно загрузить узел.

0 голосов
/ 23 мая 2012

В Drupal 6 это просто

$node = node_load(20);
print node_view($node, 'teaser'); 
...