From 07b95dc49b31d131b1fecdabf2059a447935c196 Mon Sep 17 00:00:00 2001 From: thomascube Date: Sun, 6 Feb 2011 22:21:23 +0000 Subject: Delegate contact input validation to rcube_addressbook instance; accept already localized texts in rcube_output::show_message() --- program/include/rcube_addressbook.php | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'program/include/rcube_addressbook.php') diff --git a/program/include/rcube_addressbook.php b/program/include/rcube_addressbook.php index c3c8e9271..648ef838e 100644 --- a/program/include/rcube_addressbook.php +++ b/program/include/rcube_addressbook.php @@ -168,6 +168,35 @@ abstract class rcube_addressbook $this->page_size = (int)$size; } + + /** + * Check the given data before saving. + * If input not valid, the message to display can be fetched using get_error() + * + * @param array Assoziative array with data to save + * @return boolean True if input is valid, False if not. + */ + public function validate($save_data) + { + if (empty($save_data['name'])) { + $this->set_error('warning', 'nonamewarning'); + return 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)))); + return false; + } + } + } + + return true; + } + + /** * Create a new contact record * -- cgit v1.2.3