如何在搜索结果中显示CCK字段?

时间:2010-06-15 13:52:30

标签: search drupal cck

如何在Drupal核心搜索结果页面中显示自定义CCK字段(文本或图像字段)?

3 个答案:

答案 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