2011-08-18 69 views
1

我使用Drupal的7,使用Apache Solr实现...Drupal 7的打印内容领域的结果

我想打印在搜索结果内容字段......听起来很容易,

我把这个函数的自定义模块:

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

我核实,现场的名字是在/管理/报告/ apachesolr正确的。我启用了这个模块,到目前为止所有的东西看起来都正确。

然后在搜索result.tpl.php我已经做了一些变化,

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

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

回答

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