function better_statistics_handler_argument_path::query in Better Statistics 7
Build the query based upon the formula
Overrides views_handler_argument_string::query
File
- views/
better_statistics_handler_argument_path.inc, line 77 - Contains the path argument default plugin.
Class
- better_statistics_handler_argument_path
- Contextual filter for path.
Code
function query($group_by = FALSE) {
$this
->ensure_my_table();
$this->value = array(
$this->argument,
);
$placeholder = $this
->placeholder();
$prefix = empty($this->options['prefix']) ? '' : $this->options['prefix'];
$suffix = empty($this->options['suffix']) ? '' : $this->options['suffix'];
$where_group = empty($this->options['and_or']) ? 'AND' : 'OR';
switch ($this->options['operator']) {
case '=':
$value = $prefix . $this->argument . $suffix;
$operator = '=';
break;
case '!=':
$value = $prefix . $this->argument . $suffix;
$operator = '!=';
break;
case 'contains':
$value = '%' . db_like($value = $prefix . $this->argument . $suffix) . '%';
$operator = 'LIKE';
break;
case 'starts':
$value = db_like($value = $prefix . $this->argument . $suffix) . '%';
$operator = 'LIKE';
break;
case 'not_starts':
$value = db_like($value = $prefix . $this->argument . $suffix) . '%';
$operator = 'NOT LIKE';
break;
case 'ends':
$value = '%' . db_like($value = $prefix . $this->argument . $suffix);
$operator = 'LIKE';
break;
case 'not_ends':
$value = '%' . db_like($value = $prefix . $this->argument . $suffix);
$operator = 'NOT LIKE';
break;
case 'not':
$value = '%' . db_like($value = $prefix . $this->argument . $suffix) . '%';
$opterator = 'NOT LIKE';
break;
}
$this->query
->add_where_expression(0, "{$this->table_alias}.{$this->real_field} {$operator} {$placeholder}", array(
$placeholder => $value,
));
$this->query
->set_where_group($where_group, 0);
}