You are here

function nodequeue_apachesolr_query_alter in Nodequeue 7.2

Same name and namespace in other branches
  1. 7.3 nodequeue.module \nodequeue_apachesolr_query_alter()

Implements hook_apachesolr_query_alter().

File

./nodequeue.module, line 651
Maintains queues of nodes in arbitrary order.

Code

function nodequeue_apachesolr_query_alter(DrupalSolrQueryInterface $query) {
  $queues = nodequeue_load_subqueues_by_queue(array_keys(nodequeue_get_all_qids()));
  $added = FALSE;
  $env_id = $query
    ->solr('getId');
  foreach ($queues as $sqid => $queue) {
    $boost = apachesolr_environment_variable_get($env_id, "nodequeue_apachesolr_boost_{$sqid}", 0);
    if (!empty($boost)) {
      $query
        ->addParam('bq', _nodequeue_solr_qid_key() . ":{$sqid}^{$boost}");
      if (!$added) {

        // Only want to add the facet.field once. no need to repeat it.
        $query
          ->addParam('facet.field', _nodequeue_solr_qid_key());
        $added = TRUE;
      }
    }
  }
}