diff options
Diffstat (limited to 'program/steps/addressbook')
-rw-r--r-- | program/steps/addressbook/copy.inc | 11 | ||||
-rw-r--r-- | program/steps/addressbook/import.inc | 24 |
2 files changed, 21 insertions, 14 deletions
diff --git a/program/steps/addressbook/copy.inc b/program/steps/addressbook/copy.inc index 268903bf5..db407497e 100644 --- a/program/steps/addressbook/copy.inc +++ b/program/steps/addressbook/copy.inc @@ -26,8 +26,13 @@ if ($cid && preg_match('/^[a-z0-9\-_=]+(,[a-z0-9\-_=]+)*$/i', $cid) && strlen($t $success = false; $TARGET = $RCMAIL->get_address_book($target); - if ($TARGET && $TARGET->ready && !$TARGET->readonly) - $success = $TARGET->insert($CONTACTS->search($CONTACTS->primary_key, $cid), true); + if ($TARGET && $TARGET->ready && !$TARGET->readonly) { + $plugin = $RCMAIL->plugins->exec_hook('create_contact', array('record' => $CONTACTS->search($CONTACTS->primary_key, $cid), 'source' => $target)); + $a_record = $plugin['record']; + + if (!$plugin['abort']) + $success = $TARGET->insert($CONTACTS->search($a_record, true); + } if (empty($success)) $OUTPUT->show_message('copyerror', 'error'); @@ -41,4 +46,4 @@ if ($cid && preg_match('/^[a-z0-9\-_=]+(,[a-z0-9\-_=]+)*$/i', $cid) && strlen($t // send response $OUTPUT->send(); -?>
\ No newline at end of file +?> diff --git a/program/steps/addressbook/import.inc b/program/steps/addressbook/import.inc index 8140a8526..1d5b00e1a 100644 --- a/program/steps/addressbook/import.inc +++ b/program/steps/addressbook/import.inc @@ -75,18 +75,18 @@ function rcmail_import_buttons($attrib) { global $IMPORT_STATS, $OUTPUT; - $attrib += array('type' => "input"); + $attrib += array('type' => 'input'); unset($attrib['name']); if (is_object($IMPORT_STATS)) { $attrib['class'] = trim($attrib['class'] . ' mainaction'); - $out = $OUTPUT->button(array('command' => "list", 'label' => "done") + $attrib); + $out = $OUTPUT->button(array('command' => 'list', 'label' => 'done') + $attrib); } else { - $out = $OUTPUT->button(array('command' => "list", 'label' => "cancel") + $attrib); + $out = $OUTPUT->button(array('command' => 'list', 'label' => 'cancel') + $attrib); $out .= ' '; $attrib['class'] = trim($attrib['class'] . ' mainaction'); - $out .= $OUTPUT->button(array('command' => "import", 'label' => "import") + $attrib); + $out .= $OUTPUT->button(array('command' => 'import', 'label' => 'import') + $attrib); } return $out; @@ -142,19 +142,22 @@ if ($_FILES['_file']['tmp_name'] && is_uploaded_file($_FILES['_file']['tmp_name' } } - $success = $CONTACTS->insert(array( + $a_record = array( 'name' => $vcard->displayname, 'firstname' => $vcard->firstname, 'surname' => $vcard->surname, 'email' => $email, 'vcard' => $vcard->export(), - )); + ); - if ($success) { + $plugin = $RCMAIL->plugins->exec_hook('create_contact', array('record' => $a_record, 'source' => null)); + $a_record = $plugin['record']; + + // insert record and send response + if (!$plugin['abort'] && ($success = $CONTACTS->insert($a_record))) { $IMPORT_STATS->inserted++; $IMPORT_STATS->names[] = $vcard->displayname; - } - else { + } else { $IMPORT_STATS->errors++; } } @@ -165,8 +168,7 @@ if ($_FILES['_file']['tmp_name'] && is_uploaded_file($_FILES['_file']['tmp_name' else if ($err = $_FILES['_file']['error']) { if ($err == UPLOAD_ERR_INI_SIZE || $err == UPLOAD_ERR_FORM_SIZE) { $OUTPUT->show_message('filesizeerror', 'error', array('size' => show_bytes(parse_bytes(ini_get('upload_max_filesize'))))); - } - else { + } else { $OUTPUT->show_message('fileuploaderror', 'error'); } } |