public function ldap_views_plugin_query_ldap::build_condition in Lightweight Directory Access Protocol (LDAP) 7.2
Same name and namespace in other branches
- 8.2 ldap_views/plugins/ldap_views_plugin_query_ldap.inc \ldap_views_plugin_query_ldap::build_condition()
- 7 ldap_views/plugins/ldap_views_plugin_query_ldap.inc \ldap_views_plugin_query_ldap::build_condition()
Construct the filter.
Parameters
$where: 'where' or 'having'.
Return value
string
1 call to ldap_views_plugin_query_ldap::build_condition()
- ldap_views_plugin_query_ldap::build_ldap_filter in ldap_views/
plugins/ ldap_views_plugin_query_ldap.inc
File
- ldap_views/
plugins/ ldap_views_plugin_query_ldap.inc, line 154 - Defines the default query object which builds and execute a ldap query.
Class
Code
public function build_condition() {
$operator = [
'AND' => '&',
'OR' => '|',
];
$main_group = '';
if (!isset($this->where)) {
// Initialize where clause if not set.
$this->where = [];
}
foreach ($this->where as $group => $info) {
if (!empty($info['conditions'])) {
$sub_group = '';
foreach ($info['conditions'] as $key => $clause) {
$item = '(' . $clause['field'] . $clause['operator'] . $clause['value'] . ')';
$sub_group .= $clause['negate'] ? "(!{$item})" : $item;
}
$main_group .= count($info['conditions']) <= 1 ? $sub_group : '(' . $operator[$info['type']] . $sub_group . ')';
}
}
return count($this->where) <= 1 ? $main_group : '(' . $operator[$this->group_operator] . $main_group . ')';
}