【问题标题】:How to show CCK field in search result?如何在搜索结果中显示 CCK 字段?
【发布时间】:2010-06-15 13:52:30
【问题描述】:

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

【问题讨论】:

    标签: search drupal cck


    【解决方案1】:

    您需要在您的主题中覆盖 search-result-tpl.php。将其从 modules/search 复制到您的主题目录,清除主题缓存,然后您就设置好了。您会看到主题文件中有一个名为“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>
    

    祝你好运!

    【讨论】:

    • 它可能只是 $node-> 而不是 $result['node']。我没有方便检查的安装。
    • 值是一个原始的用户输入字段,因此它可能包含不安全的数据。查看已处理并保证安全。
    【解决方案2】:

    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; ?>
    

    接下来是 4 个 CSS 样式。

    感谢 cam8001 和 googletorp!

    【讨论】:

      【解决方案3】:

      这取决于您如何进行搜索。

      如果您使用视图来构建搜索,您可以自行决定要显示的内容。

      如果您使用其他一些搜索机制,您可以结合使用 proprocess 挂钩、主题功能、模板来获得所需的输出。您应该有可用的节点对象,因此显示 CCK 应该很容易。

      编辑:
      对于 Drupal 核心搜索模块,您需要覆盖主题中的 search-result.tpl.php,以更改搜索结果的打印方式。您可以在此处添加或删除信息。如果您需要更多变量,您可以创建它们以在process hook 中的模板中使用。这是基本的 Drupal 主题,请查看 handbook

      【讨论】:

      • 谢谢! Views 没有问题,但是找不到 Drupal 核心搜索模块的解决方案。可以举个例子吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-05
      • 2020-07-08
      • 2016-12-11
      • 1970-01-01
      • 2013-01-25
      相关资源
      最近更新 更多