From 7e3298753a9f93405ef44b46ba4db4ca98553b51 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Sat, 14 Nov 2015 04:08:07 -0500 Subject: [PATCH] Use ternary operator where aplicable --- program/lib/Roundcube/rcube_addressbook.php | 104 ++++++++++++++++++++++++++++++--------------------- 1 files changed, 61 insertions(+), 43 deletions(-) diff --git a/program/lib/Roundcube/rcube_addressbook.php b/program/lib/Roundcube/rcube_addressbook.php index 7566d65..325b48a 100644 --- a/program/lib/Roundcube/rcube_addressbook.php +++ b/program/lib/Roundcube/rcube_addressbook.php @@ -1,6 +1,6 @@ <?php -/* +/** +-----------------------------------------------------------------------+ | This file is part of the Roundcube Webmail client | | Copyright (C) 2006-2013, The Roundcube Dev Team | @@ -16,7 +16,6 @@ +-----------------------------------------------------------------------+ */ - /** * Abstract skeleton of an address book/repository * @@ -26,27 +25,32 @@ abstract class rcube_addressbook { /** constants for error reporting **/ - const ERROR_READ_ONLY = 1; + const ERROR_READ_ONLY = 1; const ERROR_NO_CONNECTION = 2; - const ERROR_VALIDATE = 3; - const ERROR_SAVING = 4; - const ERROR_SEARCH = 5; + const ERROR_VALIDATE = 3; + const ERROR_SAVING = 4; + const ERROR_SEARCH = 5; /** public properties (mandatory) */ public $primary_key; - public $groups = false; + public $groups = false; public $export_groups = true; - public $readonly = true; - public $searchonly = false; - public $undelete = false; - public $ready = false; - public $group_id = null; - public $list_page = 1; - public $page_size = 10; - public $sort_col = 'name'; - public $sort_order = 'ASC'; - public $coltypes = array('name' => array('limit'=>1), 'firstname' => array('limit'=>1), 'surname' => array('limit'=>1), 'email' => array('limit'=>1)); - public $date_cols = array(); + public $readonly = true; + public $searchonly = false; + public $undelete = false; + public $ready = false; + public $group_id = null; + public $list_page = 1; + public $page_size = 10; + public $sort_col = 'name'; + public $sort_order = 'ASC'; + public $date_cols = array(); + public $coltypes = array( + 'name' => array('limit'=>1), + 'firstname' => array('limit'=>1), + 'surname' => array('limit'=>1), + 'email' => array('limit'=>1) + ); protected $error; @@ -146,7 +150,7 @@ /** * Setter for errors for internal use * - * @param int Error type (one of this class' error constants) + * @param int Error type (one of this class' error constants) * @param string Error message (name of a text label) */ protected function set_error($type, $message) @@ -163,8 +167,7 @@ /** * Set internal list page * - * @param number Page number to list - * @access public + * @param number Page number to list */ function set_page($page) { @@ -174,8 +177,7 @@ /** * Set internal page size * - * @param number Number of messages to display on one page - * @access public + * @param number Number of messages to display on one page */ function set_pagesize($size) { @@ -202,8 +204,9 @@ * Check the given data before saving. * If input isn't valid, the message to display can be fetched using get_error() * - * @param array Assoziative array with data to save + * @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, $autofix = false) @@ -292,10 +295,10 @@ /** * Mark one or more contact records as deleted * - * @param array Record identifiers - * @param bool Remove records irreversible (see self::undelete) + * @param array Record identifiers + * @param bool Remove records irreversible (see self::undelete) */ - function delete($ids, $force=true) + function delete($ids, $force = true) { /* empty for read-only address books */ } @@ -303,7 +306,7 @@ /** * Unmark delete flag on contact record(s) * - * @param array Record identifiers + * @param array Record identifiers */ function undelete($ids) { @@ -536,7 +539,7 @@ else if ($compose_mode == 1) $fn = join(' ', array($contact['firstname'], $contact['middlename'], $contact['surname'])); else if ($compose_mode == 0) - $fn = !empty($contact['name']) ? $contact['name'] : join(' ', array($contact['prefix'], $contact['firstname'], $contact['middlename'], $contact['surname'], $contact['suffix'])); + $fn = $contact['name'] ?: join(' ', array($contact['prefix'], $contact['firstname'], $contact['middlename'], $contact['surname'], $contact['suffix'])); else { $plugin = rcube::get_instance()->plugins->exec_hook('contact_listname', array('contact' => $contact)); $fn = $plugin['fn']; @@ -544,13 +547,20 @@ $fn = trim($fn, ', '); - // fallback to display name - if (empty($fn) && $contact['name']) - $fn = $contact['name']; - - // fallback to email address - if (empty($fn) && ($email = self::get_col_values('email', $contact, true)) && !empty($email)) { - return $email[0]; + // fallbacks... + if ($fn === '') { + // ... display name + if (!empty($contact['name'])) { + $fn = $contact['name']; + } + // ... organization + else if (!empty($contact['organization'])) { + $fn = $contact['organization']; + } + // ... email address + else if (($email = self::get_col_values('email', $contact, true)) && !empty($email)) { + $fn = $email[0]; + } } return $fn; @@ -562,29 +572,38 @@ * @param array Hash array with contact data as key-value pairs * @param string Optional email address * @param string Optional name (self::compose_list_name() result) + * @param string Optional template to use (defaults to the 'contact_search_name' config option) * * @return string Display name */ - public static function compose_search_name($contact, $email = null, $name = null) + public static function compose_search_name($contact, $email = null, $name = null, $templ = null) { static $template; - if (!isset($template)) { // cache this + if (empty($templ) && !isset($template)) { // cache this $template = rcube::get_instance()->config->get('contact_search_name'); if (empty($template)) { $template = '{name} <{email}>'; } } - $result = $template; + $result = $templ ?: $template; if (preg_match_all('/\{[a-z]+\}/', $result, $matches)) { foreach ($matches[0] as $key) { - $key = trim($key, '{}'); + $key = trim($key, '{}'); + $value = ''; switch ($key) { case 'name': $value = $name ?: self::compose_list_name($contact); + + // If name(s) are undefined compose_list_name() may return an email address + // here we prevent from returning the same name and email + if ($name === $email && strpos($result, '{email}') !== false) { + $value = ''; + } + break; case 'email': @@ -604,7 +623,8 @@ } $result = preg_replace('/\s+/', ' ', $result); - $result = trim($result); + $result = preg_replace('/\s*(<>|\(\)|\[\])/', '', $result); + $result = trim($result, '/ '); return $result; } @@ -668,6 +688,4 @@ return false; } - } - -- Gitblit v1.9.1