function mvf_handler_filter_mvf::op_simple in Measured Value Field 7
Overrides views_handler_filter_numeric::op_simple
File
- views/
mvf_handler_filter_mvf.inc, line 214
Class
- mvf_handler_filter_mvf
- Base Views Filter Handler for field types defined in MVF module.
Code
function op_simple($field) {
$field = array(
'value' => $this->table_alias . '.' . $this->definition['field_name'] . '_' . mvf_subfield_to_column('value'),
'unit' => $this->table_alias . '.' . $this->definition['field_name'] . '_' . mvf_subfield_to_column('unit'),
);
$measure = array_pop($this->options['field_definition']['settings']['unit']['handler_settings']['target_bundles']);
$from_unit = units_unit_load($this->value['value'][mvf_subfield_to_column('unit')]);
$where = db_or();
foreach (units_unit_by_measure_load_multiple($measure) as $to_unit) {
$converted_value = units_convert($this->value['value'][mvf_subfield_to_column('value')], $from_unit->machine_name, $to_unit->machine_name);
$unit_id = entity_extract_ids('units_unit', $to_unit);
$unit_id = array_shift($unit_id);
$where
->condition(db_and()
->condition($field['value'], $converted_value, $this->operator)
->condition($field['unit'], $unit_id));
}
$this->query
->add_where($this->options['group'], $where);
}