2009-03-25 1 views
1

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

Но когда я делаю:

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

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

Какую еще функцию прослушивания нужно мне позвонить?

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

ответ

5

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

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

Затем вы можете выбрать поля для отображения на Content Type> Display Поля после этого вы можете отредактировать тему этого тизера через contemplate module или node-content_type.tpl.php в папке темы.

0

Кроме того, используя 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.'; 
}?>