function hook_search_api_views_query_alter in Search API 7
Alter the query before executing the query.
Parameters
view $view: The view object about to be processed.
SearchApiViewsQuery $query: The Search API Views query to be altered.
See also
1 invocation of hook_search_api_views_query_alter()
- SearchApiViewsQuery::alter in contrib/
search_api_views/ includes/ query.inc - Let modules modify the query just prior to finalizing it.
File
- contrib/
search_api_views/ search_api_views.api.php, line 18 - Hooks provided by the Search Views module.
Code
function hook_search_api_views_query_alter(view &$view, SearchApiViewsQuery &$query) {
// (Example assuming a view with an exposed filter on node title.)
// If the input for the title filter is a positive integer, filter against
// node ID instead of node title.
if ($view->name == 'my_view' && is_numeric($view->exposed_raw_input['title']) && $view->exposed_raw_input['title'] > 0) {
// Traverse through the 'where' part of the query.
foreach ($query->where as &$condition_group) {
foreach ($condition_group['conditions'] as &$condition) {
// If this is the part of the query filtering on title, chang the
// condition to filter on node ID.
if (reset($condition) == 'node.title') {
$condition = array(
'node.nid',
$view->exposed_raw_input['title'],
'=',
);
}
}
}
}
}