| | |
| | | |
| | | */ |
| | | |
| | | // only process ajax requests |
| | | if (!$OUTPUT->ajax_call) |
| | | return; |
| | | |
| | | $cid = get_input_value('_cid', RCUBE_INPUT_POST); |
| | | $target = get_input_value('_to', RCUBE_INPUT_POST); |
| | | if ($cid && preg_match('/^[a-z0-9\-_=]+(,[a-z0-9\-_=]+)*$/i', $cid) && strlen($target) && $target != $source) |
| | | { |
| | | if ($target != '0') |
| | | $TARGET = new rcube_ldap($CONFIG['ldap_public'][$target]); |
| | | else |
| | | $TARGET = new rcube_contacts($DB, $_SESSION['user_id']); |
| | | |
| | | $success = false; |
| | | if ($TARGET && $TARGET->ready && !$TARGET->readonly) |
| | | $success = $TARGET->insert($CONTACTS->search($CONTACTS->primary_key, $cid), true); |
| | | |
| | | if (empty($success)) |
| | | if ($cid && preg_match('/^[a-z0-9\-_=]+(,[a-z0-9\-_=]+)*$/i', $cid) && strlen($target) && $target !== $source) |
| | | { |
| | | $success = 0; |
| | | $TARGET = $RCMAIL->get_address_book($target); |
| | | |
| | | if ($TARGET && $TARGET->ready && !$TARGET->readonly) { |
| | | $arr_cids = split(',', $cid); |
| | | foreach ($arr_cids as $cid) { |
| | | $plugin = $RCMAIL->plugins->exec_hook('create_contact', array('record' => $CONTACTS->get_record($cid, true), 'source' => $target)); |
| | | $a_record = $plugin['record']; |
| | | |
| | | if (!$plugin['abort']) |
| | | if ($TARGET->insert($a_record, true)) |
| | | $success++; |
| | | } |
| | | } |
| | | |
| | | if ($success == 0) |
| | | $OUTPUT->show_message('copyerror', 'error'); |
| | | else |
| | | $OUTPUT->show_message('copysuccess', 'notice', array('nr' => count($success))); |
| | | $OUTPUT->show_message('copysuccess', 'notice', array('nr' => $success)); |
| | | |
| | | // close connection to second address directory |
| | | $TARGET->close(); |
| | | } |
| | | |
| | | |
| | | // send response |
| | | $OUTPUT->send(); |
| | | |
| | | ?> |
| | | ?> |