public function Score::query in Drupal 9
Same name in this branch
- 9 core/modules/search/src/Plugin/views/sort/Score.php \Drupal\search\Plugin\views\sort\Score::query()
- 9 core/modules/search/src/Plugin/views/field/Score.php \Drupal\search\Plugin\views\field\Score::query()
Same name and namespace in other branches
- 8 core/modules/search/src/Plugin/views/sort/Score.php \Drupal\search\Plugin\views\sort\Score::query()
Called to add the sort to a query.
Overrides SortPluginBase::query
File
- core/
modules/ search/ src/ Plugin/ views/ sort/ Score.php, line 19
Class
- Score
- Sort handler for sorting by search score.
Namespace
Drupal\search\Plugin\views\sortCode
public function query() {
// Check to see if the search filter/argument added 'score' to the table.
// Our filter stores it as $handler->search_score -- and we also
// need to check its relationship to make sure that we're using the same
// one or obviously this won't work.
foreach ([
'filter',
'argument',
] as $type) {
foreach ($this->view->{$type} as $handler) {
if (isset($handler->search_score) && $handler->relationship == $this->relationship) {
$this->query
->addOrderBy(NULL, NULL, $this->options['order'], $handler->search_score);
$this->tableAlias = $handler->tableAlias;
return;
}
}
}
// Do nothing if there is no filter/argument in place. There is no way
// to sort on scores.
}