如何在Drupal核心搜索结果页面中显示自定义CCK字段(文本或图像字段)?
答案 0 :(得分:2)
您需要在主题中覆盖search-result-tpl.php。将它从模块/搜索复制到您的主题目录,清除主题缓存,然后进行设置。你会看到主题文件有一个名为'result'的数组,它包含一堆数据,包括一个节点对象。所以你的文件变成了:
<dt class="title">
<a href="<?php print $url; ?>"><?php print $title; ?></a>
</dt>
<dd>
<?php
// Here is the change
print $result['node']->field_name_of_cck_field['view'];
?>
<?php if ($snippet) : ?>
<p class="search-snippet"><?php print $snippet; ?></p>
<?php endif; ?>
<?php if ($info) : ?>
<p class="search-info"><?php print $info; ?></p>
<?php endif; ?>
</dd>
祝你好运!
答案 1 :(得分:1)
1将 search-result.tpl.php 文件从modules / search复制到您的主题文件夹
2对于CCK文本字段添加:
<?php if ($result['node']->field_name[0]['value']): ?>
<h4><?php print($result['node']->field_name[0]['value']); ?></h4>
<?php endif; ?>
3对于带图像缓存的图像域:
<?php if ($result['node']->field_logo[0]['filename']): ?>
<img src="/sites/default/files/imagecache/path_to_file/<?php print $result['node']->field_logo[0]['filename']; ?>" />
<?php endif; ?>
下一步是CSS样式。
Thanx for cam8001&amp; googletorp!
答案 2 :(得分:0)
这取决于你如何进行搜索。
如果您使用视图来构建搜索,则可以自行决定要显示的内容。
如果你正在使用其他一些搜索机制,你可以使用proprocess hook,主题函数,模板的组合来获得你想要的输出。你应该有节点对象,所以显示CCK应该很容易。
修改强>
对于Drupal核心搜索模块,您需要覆盖主题中的search-result.tpl.php,以更改搜索结果的打印方式。您可以在此处添加或删除信息。如果您需要更多变量,可以创建它们以便在process hook中的模板中使用。这是Drupal的基本主题,请查看handbook。