summaryrefslogtreecommitdiff
path: root/program/steps/addressbook
diff options
context:
space:
mode:
Diffstat (limited to 'program/steps/addressbook')
-rw-r--r--program/steps/addressbook/copy.inc11
-rw-r--r--program/steps/addressbook/import.inc24
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');
}
}