summaryrefslogtreecommitdiff
path: root/program/include/rcube_addressbook.php
diff options
context:
space:
mode:
Diffstat (limited to 'program/include/rcube_addressbook.php')
-rw-r--r--program/include/rcube_addressbook.php8
1 files changed, 6 insertions, 2 deletions
diff --git a/program/include/rcube_addressbook.php b/program/include/rcube_addressbook.php
index 7270f42fd..5f17f4a8a 100644
--- a/program/include/rcube_addressbook.php
+++ b/program/include/rcube_addressbook.php
@@ -96,12 +96,16 @@ abstract class rcube_addressbook
*
* @param array List of fields to search in
* @param string Search value
+ * @param int Matching mode:
+ * 0 - partial (*abc*),
+ * 1 - strict (=),
+ * 2 - prefix (abc*)
* @param boolean True if results are requested, False if count only
* @param boolean True to skip the count query (select only)
* @param array List of fields that cannot be empty
* @return object rcube_result_set List of contact records and 'count' value
*/
- abstract function search($fields, $value, $strict=false, $select=true, $nocount=false, $required=array());
+ abstract function search($fields, $value, $mode=0, $select=true, $nocount=false, $required=array());
/**
* Count number of available contacts in database
@@ -399,7 +403,7 @@ abstract class rcube_addressbook
{
$out = array();
foreach ($data as $c => $values) {
- if (strpos($c, $col) === 0) {
+ if ($c === $col || strpos($c, $col.':') === 0) {
if ($flat) {
$out = array_merge($out, (array)$values);
}