Support rcube_addressbook::SEARCH_* constants in search mode
This commit is contained in:
parent
d0f7984aca
commit
f3a8729856
1 changed files with 12 additions and 5 deletions
|
@ -414,6 +414,7 @@ class rcube_kolab_contacts extends rcube_addressbook
|
|||
* 0 - partial (*abc*),
|
||||
* 1 - strict (=),
|
||||
* 2 - prefix (abc*)
|
||||
* 4 - include groups (if supported)
|
||||
* @param boolean $select True if results are requested, False if count only
|
||||
* @param boolean $nocount True to skip the count query (select only)
|
||||
* @param array $required List of fields that cannot be empty
|
||||
|
@ -436,7 +437,7 @@ class rcube_kolab_contacts extends rcube_addressbook
|
|||
return $result;
|
||||
}
|
||||
else if ($fields == '*') {
|
||||
$fields = $this->search_fields;
|
||||
$fields = $this->search_fields;
|
||||
}
|
||||
|
||||
if (!is_array($fields))
|
||||
|
@ -465,6 +466,8 @@ class rcube_kolab_contacts extends rcube_addressbook
|
|||
$squery[] = array('tags', '=', 'x-has-birthday');
|
||||
}
|
||||
|
||||
$squery[] = array('type', '=', 'contact');
|
||||
|
||||
// get all/matching records
|
||||
$this->_fetch_contacts($squery);
|
||||
|
||||
|
@ -1174,10 +1177,14 @@ class rcube_kolab_contacts extends rcube_addressbook
|
|||
}
|
||||
|
||||
if (count($cols) == count($fields)) {
|
||||
switch ($mode) {
|
||||
case 1: $prefix = '^'; $suffix = '$'; break; // strict
|
||||
case 2: $prefix = '^'; $suffix = ''; break; // prefix
|
||||
default: $prefix = ''; $suffix = ''; break; // substring
|
||||
if ($mode & rcube_addressbook::SEARCH_STRICT) {
|
||||
$prefix = '^'; $suffix = '$';
|
||||
}
|
||||
else if ($mode & rcube_addressbook::SEARCH_PREFIX) {
|
||||
$prefix = '^'; $suffix = '';
|
||||
}
|
||||
else {
|
||||
$prefix = ''; $suffix = '';
|
||||
}
|
||||
|
||||
$search_string = is_array($value) ? join(' ', $value) : $value;
|
||||
|
|
Loading…
Add table
Reference in a new issue