function _node_rankings

Gathers the rankings from the hook_ranking() implementations.

Parameters

$query: A query object that has been extended with the Search DB Extender.

2 calls to _node_rankings()
hook_search_execute in modules/search/search.api.php
Execute a search for a set of key words.
node_search_execute in modules/node/node.module
Implements hook_search_execute().

File

modules/node/node.module, line 1617

Code

function _node_rankings(SelectQueryExtender $query) {
    if ($ranking = module_invoke_all('ranking')) {
        $tables =& $query->getTables();
        foreach ($ranking as $rank => $values) {
            if ($node_rank = variable_get('node_rank_' . $rank, 0)) {
                // If the table defined in the ranking isn't already joined, then add it.
                if (isset($values['join']) && !isset($tables[$values['join']['alias']])) {
                    $query->addJoin($values['join']['type'], $values['join']['table'], $values['join']['alias'], $values['join']['on']);
                }
                $arguments = isset($values['arguments']) ? $values['arguments'] : array();
                $query->addScore($values['score'], $arguments, $node_rank);
            }
        }
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.