diff options
Diffstat (limited to 'program/lib/Roundcube/rcube_addressbook.php')
-rw-r--r-- | program/lib/Roundcube/rcube_addressbook.php | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/program/lib/Roundcube/rcube_addressbook.php b/program/lib/Roundcube/rcube_addressbook.php index 71d556234..69027b0e8 100644 --- a/program/lib/Roundcube/rcube_addressbook.php +++ b/program/lib/Roundcube/rcube_addressbook.php @@ -562,21 +562,22 @@ abstract class rcube_addressbook * @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) { @@ -605,7 +606,8 @@ abstract class rcube_addressbook } $result = preg_replace('/\s+/', ' ', $result); - $result = trim($result); + $result = preg_replace('/\s*(<>|\(\)|\[\])/', '', $result); + $result = trim($result, '/ '); return $result; } |