From ecfaed571b2c38f4bcc2b6a0fa39fba15a5126ce Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Fri, 11 Nov 2011 10:04:45 -0500 Subject: [PATCH] - Apply fixes fom trunk up to r5414 --- program/include/rcube_addressbook.php | 27 ++++++++++++++++++++++----- 1 files changed, 22 insertions(+), 5 deletions(-) diff --git a/program/include/rcube_addressbook.php b/program/include/rcube_addressbook.php index 94a715b..5f17f4a 100644 --- a/program/include/rcube_addressbook.php +++ b/program/include/rcube_addressbook.php @@ -30,7 +30,7 @@ /** constants for error reporting **/ const ERROR_READ_ONLY = 1; const ERROR_NO_CONNECTION = 2; - const ERROR_INCOMPLETE = 3; + const ERROR_VALIDATE = 3; const ERROR_SAVING = 4; const ERROR_SEARCH = 5; @@ -96,12 +96,16 @@ * * @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 @@ -182,15 +186,16 @@ * If input isn't valid, the message to display can be fetched using get_error() * * @param array Assoziative array with data to save + * @param boolean Attempt to fix/complete record automatically * @return boolean True if input is valid, False if not. */ - public function validate($save_data) + public function validate(&$save_data, $autofix = false) { // check validity of email addresses foreach ($this->get_col_values('email', $save_data, true) as $email) { if (strlen($email)) { if (!check_email(rcube_idn_to_ascii($email))) { - $this->set_error('warning', rcube_label(array('name' => 'emailformaterror', 'vars' => array('email' => $email)))); + $this->set_error(self::ERROR_VALIDATE, rcube_label(array('name' => 'emailformaterror', 'vars' => array('email' => $email)))); return false; } } @@ -295,6 +300,18 @@ } /** + * Get group properties such as name and email address(es) + * + * @param string Group identifier + * @return array Group properties as hash array + */ + function get_group($group_id) + { + /* empty for address books don't supporting groups */ + return null; + } + + /** * Create a contact group with the given name * * @param string The group name @@ -386,7 +403,7 @@ { $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); } -- Gitblit v1.9.1