function oa_core_view_query_modify_condition_object in Open Atrium Core 7.2
1 call to oa_core_view_query_modify_condition_object()
- oa_core_view_query_modify_condition in ./
oa_core.module - Modify the views query where condition for the specified columns to include the $ids
File
- ./
oa_core.module, line 1820
Code
function oa_core_view_query_modify_condition_object(&$condition, $column, $ids) {
if (is_object($condition['field']) && is_a($condition['field'], 'DatabaseCondition')) {
$conditions = $condition['field']
->conditions();
// cannot modify conditions directly in a DatabaseCondition object
// so we need to create a new one.
$new_subquery = new DatabaseCondition($conditions['#conjunction']);
foreach ($conditions as $key => $inner_condition) {
if (is_numeric($key)) {
oa_core_view_query_modify_condition_object($inner_condition, $column, $ids);
$new_subquery
->condition($inner_condition['field'], $inner_condition['value'], $inner_condition['operator']);
}
}
$condition['field'] = $new_subquery;
}
elseif ($condition['field'] === $column || is_string($condition['field']) && substr($condition['field'], -strlen($column) - 2) === "__{$column}") {
$value = $condition['value'];
if (!is_array($value)) {
$value = array(
$value,
);
$condition['operator'] = 'IN';
}
$condition['value'] = array_merge($value, $ids);
}
}