2011-08-18 51 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; ?>