| | |
| | | |
| | | // use VLV pseudo-search for autocompletion |
| | | $rcube = rcube::get_instance(); |
| | | $list_fields = $rcube->config->get('contactlist_fields'); |
| | | |
| | | if ($this->prop['vlv_search'] && $this->conn && join(',', (array)$fields) == join(',', $rcube->config->get('contactlist_fields'))) |
| | | if ($this->prop['vlv_search'] && $this->conn && join(',', (array)$fields) == join(',', $list_fields)) |
| | | { |
| | | // add general filter to query |
| | | if (!empty($this->prop['filter']) && empty($this->filter)) |
| | |
| | | |
| | | for ($i = 0; $i < $entries['count']; $i++) { |
| | | $rec = $this->_ldap2result($entries[$i]); |
| | | foreach (array('email', 'name') as $f) { |
| | | $val = mb_strtolower($rec[$f]); |
| | | switch ($mode) { |
| | | case 1: |
| | | $got = ($val == $search); |
| | | break; |
| | | case 2: |
| | | $got = ($search == substr($val, 0, strlen($search))); |
| | | break; |
| | | default: |
| | | $got = (strpos($val, $search) !== false); |
| | | break; |
| | | } |
| | | foreach ($fields as $f) { |
| | | foreach ((array)$rec[$f] as $val) { |
| | | $val = mb_strtolower($val); |
| | | switch ($mode) { |
| | | case 1: |
| | | $got = ($val == $search); |
| | | break; |
| | | case 2: |
| | | $got = ($search == substr($val, 0, strlen($search))); |
| | | break; |
| | | default: |
| | | $got = (strpos($val, $search) !== false); |
| | | break; |
| | | } |
| | | |
| | | if ($got) { |
| | | $this->result->add($rec); |
| | | $this->result->count++; |
| | | break; |
| | | if ($got) { |
| | | $this->result->add($rec); |
| | | $this->result->count++; |
| | | break 2; |
| | | } |
| | | } |
| | | } |
| | | } |