Drupal 6中的主题节点主体

时间:2011-03-09 10:20:54

标签: drupal-6 drupal-theming

我正在尝试让Drupal输出具有特定类名的div标签中特定内容类型的主体。

首先,我尝试覆盖node.tpl.php,但我发现这里的$ content变量已包含body以及其他自定义cck字段。而我正在努力做的就是将身体与其他领域分开。

之后我查看了content-field.tpl.php,发现它仅针对自定义cck字段执行。所以也不适合我。

那么..如何主题一个节点体字段?

3 个答案:

答案 0 :(得分:2)

首先致电

print_r($node);

这是您的节点对象包含的内容 - 您可以直接使用其任何成员,而不仅仅是打印内容。分析这个,你就会知道该怎么称呼;)

如果是正文,可以通过以下方式访问无格式内容:

$node->content['body']['#value']

对于其他字段,您可以:

$node->field_name[0]['view']

(其中[0]是数组中项目的索引 - 当您可以上传许多图片时对ImageField很有用。)

例如,这是我node-event.tpl.php的内容,显示有关事件的详细信息:

<div class="event clear-block">
<?php
    $class = (convert_datetime($node->field_event_date[0]['value']) < time()) ? 'past' : 'future';
    echo "<h3 class='header'>When?</h3><p class='$class'>".$node->field_event_date[0]['view']."</p>";
    echo "<h3 class='header'>Where?</h3><p>".$node->field_event_place[0]['view']."</p>";
    echo "<h3 class='header'>What?</h3>".$node->content['body']['#value'];
    echo "<h3 class='header'>How much?</h3><p>".$node->field_event_price[0]['view']."</p>";
    echo "<h3 class='header'>How to participate?</h3>".$node->field_event_subscribe[0]['view'];
?>
</div>

答案 1 :(得分:1)

答案 2 :(得分:0)

如果您需要非常灵活,对我来说最好的方法是转到此页面:

管理员/内容/节点型/ [ContentType的] /显示/基本

并将所有其他字段设置为“隐藏”。

然后,$content变量将仅包含body字段。 缺点是您需要逐个显示所有其他字段。 CCK通过为每个字段提供完全呈现的变量来提供一种简单的方法

print $field_FIELDNAME_rendered;

使用它,您可以轻松自定义内容类型的输出。