function rolereference_views_plugin_display::query in Role Reference 7
Inject anything into the query that the display handler needs.
Overrides views_plugin_display::query
File
- includes/
rolereference_views_plugin_display.inc, line 21 - Handler for node_reference_views_plugin_display.
Class
- rolereference_views_plugin_display
- @file Handler for node_reference_views_plugin_display.
Code
function query() {
$options = $this
->get_option('rolereference_options');
if ($options['string'] !== '') {
$like = db_driver() == 'pgsql' ? "ILIKE" : "LIKE";
$match_clauses = array(
'contains' => array(
'operator' => $like,
'value' => '%' . $options['string'] . '%',
),
'equals' => array(
'operator' => '=',
'value' => $options['string'],
),
'starts_with' => array(
'operator' => $like,
'value' => $options['string'] . '%',
),
);
$clause = isset($match_clauses[$options['match']]) ? $match_clauses[$options['match']] : $match_clauses['contains'];
$alias = $this->view->query
->ensure_table($options['table']);
$this->view->query
->add_where(NULL, "{$alias}.{$options['field_string']}", $clause['value'], $clause['operator']);
}
elseif ($options['ids']) {
$alias = $this->view->query
->ensure_table($options['table']);
$this->view->query
->add_where(NULL, "{$alias}.{$options['field_id']}", $options['ids'], 'IN');
}
}