【发布时间】:2009-03-25 13:51:02
【问题描述】:
在我的一个模块中,我想输出节点预告片。该节点具有 CCK 字段,我希望它们根据您可以在内容类型/字段设置管理区域中选择的可见性设置进行显示。
但是当我这样做时:
$html = theme('node', $n);
生成的预告片不包含 CCK 字段,仅包含标题和正文。
我还需要调用什么其他主题函数?
节点包含图像和节点引用等字段。我想我可以手动编写 HTML,但在我看来最好使用提供的主题功能...
【问题讨论】:
在我的一个模块中,我想输出节点预告片。该节点具有 CCK 字段,我希望它们根据您可以在内容类型/字段设置管理区域中选择的可见性设置进行显示。
但是当我这样做时:
$html = theme('node', $n);
生成的预告片不包含 CCK 字段,仅包含标题和正文。
我还需要调用什么其他主题函数?
节点包含图像和节点引用等字段。我想我可以手动编写 HTML,但在我看来最好使用提供的主题功能...
【问题讨论】:
http://api.drupal.org/api/function/node_view/6
$node = node_load($n);
$html = node_view($node,TRUE);
然后您可以选择要在Content Type>Display Fields上显示的字段,然后您可以通过contemplate module或node-content_type.tpl.php编辑该预告片的主题 在主题文件夹上。
【讨论】:
http://drupal.org/node/362068#comment-1216250你可以使用views 2来实现
【讨论】:
另外在代码中使用 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.';
}?>
【讨论】: