diff options
author | thomascube <thomas@roundcube.net> | 2011-02-27 13:30:34 +0000 |
---|---|---|
committer | thomascube <thomas@roundcube.net> | 2011-02-27 13:30:34 +0000 |
commit | 0fbadebe13b13d6da470731df1f055df595c6a89 (patch) | |
tree | 203572c30219b15ca41679cf1087fe161b032cfb /program/steps/addressbook | |
parent | ec6c39776959f2ed6c8f21cd7539e3f4a5f84d93 (diff) |
Improve vcard import: map more fields, support photo urls, better UTF-16 charset detection
Diffstat (limited to 'program/steps/addressbook')
-rw-r--r-- | program/steps/addressbook/func.inc | 8 | ||||
-rw-r--r-- | program/steps/addressbook/import.inc | 2 |
2 files changed, 8 insertions, 2 deletions
diff --git a/program/steps/addressbook/func.inc b/program/steps/addressbook/func.inc index 336dd44ff..ed87cb150 100644 --- a/program/steps/addressbook/func.inc +++ b/program/steps/addressbook/func.inc @@ -365,6 +365,10 @@ function rcmail_contact_form($form, $record, $attrib = null) // skip cols unknown to the backend if (!$coltypes[$col]) continue; + + // only string values are expected here + if (is_array($record[$col])) + $record[$col] = join(' ', $record[$col]); if ($RCMAIL->action == 'show') { if (!empty($record[$col])) @@ -563,7 +567,9 @@ function rcmail_contact_photo($attrib) if ($CONTACT_COLTYPES['photo']) { $RCMAIL->output->set_env('photo_placeholder', $photo_img); - if ($record['photo']) + if (strpos($record['photo'], 'http:') === 0) + $photo_img = $record['photo']; + else if ($record['photo']) $photo_img = $RCMAIL->url(array('_action' => 'photo', '_cid' => $record['ID'], '_source' => $_REQUEST['_source'])); $img = html::img(array('src' => $photo_img, 'border' => 1, 'alt' => '')); $content = html::div($attrib, $img); diff --git a/program/steps/addressbook/import.inc b/program/steps/addressbook/import.inc index af6f67dd8..7300e3370 100644 --- a/program/steps/addressbook/import.inc +++ b/program/steps/addressbook/import.inc @@ -138,7 +138,7 @@ if ($_FILES['_file']['tmp_name'] && is_uploaded_file($_FILES['_file']['tmp_name' // We're using UTF8 internally $email = rcube_idn_to_utf8($email); - if (!$replace) { + if (!$replace && $email) { // compare e-mail address $existing = $CONTACTS->search('email', $email, false, false); if (!$existing->count) { // compare display name |