Aleksander Machniak
2012-09-17 32ba62889c1def94f555c3e683fc8087ee16c9b3
program/steps/addressbook/import.inc
@@ -189,32 +189,36 @@
        $IMPORT_STATS->names = array();
        $IMPORT_STATS->skipped_names = array();
        $IMPORT_STATS->count = count($vcards);
        $IMPORT_STATS->inserted = $IMPORT_STATS->skipped = $IMPORT_STATS->nomail = $IMPORT_STATS->errors = 0;
        $IMPORT_STATS->inserted = $IMPORT_STATS->skipped = $IMPORT_STATS->invalid = $IMPORT_STATS->errors = 0;
        if ($replace) {
            $CONTACTS->delete_all();
        }
        foreach ($vcards as $vcard) {
            $email    = $vcard->email[0];
            $a_record = $vcard->get_assoc();
            // skip entries without an e-mail address or invalid
            if (empty($email) || !$CONTACTS->validate($a_record, true)) {
                $IMPORT_STATS->nomail++;
            // skip invalid (incomplete) entries
            if (!$CONTACTS->validate($a_record, true)) {
                $IMPORT_STATS->invalid++;
                continue;
            }
            // We're using UTF8 internally
            $email = $vcard->email[0];
            $email = rcube_idn_to_utf8($email);
            if (!$replace && $email) {
            if (!$replace) {
                $existing = null;
                // compare e-mail address
                $existing = $CONTACTS->search('email', $email, 1, false);
                if (!$existing->count && $vcard->displayname) {  // compare display name
                if ($email) {
                    $existing = $CONTACTS->search('email', $email, 1, false);
                }
                // compare display name if email not found
                if ((!$existing || !$existing->count) && $vcard->displayname) {
                    $existing = $CONTACTS->search('name', $vcard->displayname, 1, false);
                }
                if ($existing->count) {
                if ($existing && $existing->count) {
                    $IMPORT_STATS->skipped++;
                    $IMPORT_STATS->skipped_names[] = $vcard->displayname ? $vcard->displayname : $email;
                    continue;