Drupal 7在搜索结果中打印内容字段

时间:2011-08-18 16:27:00

标签: drupal solr drupal-7 drupal-theming

我正在使用drupal 7,使用apache solr ......

我想在搜索结果中打印一个内容字段......听起来很简单,

我将此功能放在自定义模块中:

function module_name_apachesolr_modify_query(&$query, &$params) { $query->params['fl'] .= ',im_field_name'; }

我在/ admin / reports / apachesolr中验证了字段名称是否正确。我启用了模块,到目前为止看起来都是正确的。

然后在search-result.tpl.php中我做了几个变种,

<?php print render($content['im_field_name']); ?>

没有成功......我想我可能会做一些愚蠢的事情。我会继续关注它,但任何帮助都非常感谢!谢谢!

2 个答案:

答案 0 :(得分:1)

目前正在学习这个,我正在寻找相同的东西,但设法让它工作。不幸的是,Drupal 7似乎没有太多文档,但是在 Drupal 7的权威指南一书中有一个小章节。

我使用 hook_apachesolr_query_alter(),例如:

function MODULE_apachesolr_query_alter(&$query, &$params, $caller) {
    $query->addParam('fl', 'im_field_name');
}

添加上述内容意味着它现在可以在模板的预处理功能中看到,所以我做了以下内容:

function THEME_preprocess_search_result(&$vars) {
    $vars['im_field_name'] = $vars['result']['fields']['im_field_name'][0];
}

然后它可用于模板:

<?php if ($im_field_name) : ?>
    <?php print $im_field_name; ?>
<?php endif; ?>

答案 1 :(得分:1)

我强烈建议您查看Display Suite模块,了解那些希望自定义Apache Solr显示搜索结果的方法。它提供了高级别的搜索页面自定义,包括Apache Solr生成的搜索页面。看看这个截屏视频:

Display Suite for Drupal 7 - Part 5: search display