Drupal CCK: как вывести тизер узла с его полями? - PullRequest
1 голос
/ 25 марта 2009

В моем модуле я хотел бы вывести тизер узла. Узел имеет поля CCK, и я хотел бы, чтобы они отображались в соответствии с настройками видимости, которые вы можете выбрать в области администрирования параметров типов контента / полей.

Но когда я это сделаю:

$html = theme('node', $n);

полученный тизер не будет содержать поля CCK, только заголовок и текст.

Какую другую тематическую функцию мне нужно вызвать?

Узел содержит такие поля, как изображение и ссылка на узел. Я полагаю, что я мог бы написать HTML вручную, но мне кажется, лучше использовать предоставленные функции темы ...

Ответы [ 3 ]

5 голосов
/ 25 марта 2009

http://api.drupal.org/api/function/node_view/6

$node = node_load($n);
$html = node_view($node,TRUE);

Затем вы можете выбрать поля для отображения на Тип содержимого> Поля отображения , после чего вы можете редактировать тему этого тизера с помощью созерцайте модуль или node-content_type .tpl.php в папке темы.

0 голосов
/ 04 мая 2011

Кроме того, использование node_view из кода позволяет в общей сложности 4 режима шаблона узла.

node_view($node, $teaser = FALSE, $page = FALSE, $links = TRUE)

Для сумасшедших узлов у меня был такой шаблон ...

<?php
switch(true){
case($page && $teaser): ?>

  <div class="content">
    <?=$content?>
  </div>

<?php
break;
case($page && !$teaser): ?>

  <div class="content">
    <?=$content?>
  </div>

<?php
break;
case(!$page && $teaser): ?>

  <div class="content">
    <?=$content?>
  </div>

<?php
break;
case(!$page && !$teaser): ?>

  <div class="content">
    <?=$content?>
  </div>

<?php
break;
default: print 'this should never happen.';
}?>
0 голосов
/ 02 июня 2009

http://drupal.org/node/362068#comment-1216250 Вы можете достичь этого, используя представления 2

...