diff options
author | thomascube <thomas@roundcube.net> | 2011-05-12 20:18:19 +0000 |
---|---|---|
committer | thomascube <thomas@roundcube.net> | 2011-05-12 20:18:19 +0000 |
commit | e848180aaa9640de871796ca1a3e4f8110701fd6 (patch) | |
tree | 8691c816c9c8ddd4ad8ef733cc61a8bc52541cc3 /program/steps/addressbook | |
parent | caedd52361f8ba15aa6bfbc00cab7f55525f5edf (diff) |
Improve display name composition when saving contacts (#1487143), with plugin-support; allow empty names in sql address book, fall back to e-mail address in listing and vcard export
Diffstat (limited to 'program/steps/addressbook')
-rw-r--r-- | program/steps/addressbook/export.inc | 4 | ||||
-rw-r--r-- | program/steps/addressbook/func.inc | 7 | ||||
-rw-r--r-- | program/steps/addressbook/save.inc | 7 |
3 files changed, 10 insertions, 8 deletions
diff --git a/program/steps/addressbook/export.inc b/program/steps/addressbook/export.inc index 69f8e2e0b..bfe8e996c 100644 --- a/program/steps/addressbook/export.inc +++ b/program/steps/addressbook/export.inc @@ -5,7 +5,7 @@ | program/steps/addressbook/export.inc | | | | This file is part of the Roundcube Webmail client | - | Copyright (C) 2008-2009, The Roundcube Dev Team | + | Copyright (C) 2008-2011, The Roundcube Dev Team | | Licensed under the GNU GPL | | | | PURPOSE: | @@ -31,7 +31,7 @@ header('Content-Disposition: attachment; filename="rcube_contacts.vcf"'); while ($result && ($row = $result->next())) { // we already have a vcard record - if ($row['vcard']) { + if ($row['vcard'] && $row['name']) { echo rcube_vcard::rfc2425_fold($row['vcard']) . "\n"; } // copy values into vcard object diff --git a/program/steps/addressbook/func.inc b/program/steps/addressbook/func.inc index 837256f89..c36108784 100644 --- a/program/steps/addressbook/func.inc +++ b/program/steps/addressbook/func.inc @@ -346,10 +346,9 @@ function rcmail_contact_form($form, $record, $attrib = null) // render head section with name fields (not a regular list of rows) if ($section == 'head') { $content = ''; - - // TODO: use the save name composition function as in save.inc - $names_arr = array($record['prefix'], $record['firstname'], $record['middlename'], $record['surname'], $record['suffix']); - if ($record['name'] == join(' ', array_filter($names_arr))) + + // unset display name if it is composed from name parts (same composition function as in save.inc) + if ($record['name'] == rcube_addressbook::compose_display_name(array('name' => '') + $record)) unset($record['name']); // group fields diff --git a/program/steps/addressbook/save.inc b/program/steps/addressbook/save.inc index 88fe98cd1..253609780 100644 --- a/program/steps/addressbook/save.inc +++ b/program/steps/addressbook/save.inc @@ -129,9 +129,9 @@ foreach ($GLOBALS['CONTACT_COLTYPES'] as $col => $colprop) { } } +// let a dedicated function or a plugin compose the full name if empty if (empty($a_record['name'])) { - // TODO: let a dedicated function or a plugin compose the full name - $a_record['name'] = join(' ', array_filter(array($a_record['prefix'], $a_record['firstname'], $a_record['middlename'], $a_record['surname'], $a_record['suffix'],))); + $a_record['name'] = rcube_addressbook::compose_display_name($a_record); } @@ -185,6 +185,9 @@ if (!empty($cid)) // define list of cols to be displayed $a_js_cols = array(); $record = $CONTACTS->get_record($newcid ? $newcid : $cid, true); + $record['email'] = reset($CONTACTS->get_col_values('email', $record, true)); + if (!$record['name']) + $record['name'] = $record['email']; foreach (array('name', 'email') as $col) $a_js_cols[] = (string)$record[$col]; |