You are here

public function ldap_views_plugin_query_ldap::build_condition in Lightweight Directory Access Protocol (LDAP) 7.2

Same name and namespace in other branches
  1. 8.2 ldap_views/plugins/ldap_views_plugin_query_ldap.inc \ldap_views_plugin_query_ldap::build_condition()
  2. 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

ldap_views_plugin_query_ldap

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 . ')';
}