alecpl
2011-06-14 ecf295f6ef2b83c5e51cc74adf833fd8e18b6cfb
program/steps/addressbook/copy.inc
@@ -23,20 +23,37 @@
if (!$OUTPUT->ajax_call)
  return;
$cid = get_input_value('_cid', RCUBE_INPUT_POST);
$cids         = rcmail_get_cids();
$target = get_input_value('_to', RCUBE_INPUT_POST);
$target_group = get_input_value('_togid', RCUBE_INPUT_POST);
if ($cid && preg_match('/^[a-zA-Z0-9\+\/=_-]+(,[a-zA-Z0-9\+\/=_-]+)*$/', $cid) && strlen($target) && $target !== $source)
{
  $success = 0;
$maxnum  = $RCMAIL->config->get('max_group_members', 0);
foreach ($cids as $source => $cid)
{
    // Something wrong, target not specified
    if (!strlen($target)) {
        break;
    }
    // It maight happen when copying records from search result
    // Do nothing, go to next source
    if ($target == $source) {
        continue;
    }
    $CONTACTS = $RCMAIL->get_address_book($source);
  $TARGET = $RCMAIL->get_address_book($target);
  if ($TARGET && $TARGET->ready && !$TARGET->readonly) {
    $arr_cids = explode(',', $cid);
    if (!$TARGET || !$TARGET->ready || $TARGET->readonly) {
        break;
    }
    $ids = array();
    foreach ($arr_cids as $cid) {
    foreach ($cid as $cid) {
      $a_record = $CONTACTS->get_record($cid, true);
      // check if contact exists, if so, we'll need it's ID
@@ -73,7 +90,7 @@
        $TARGET->reset();
        $TARGET->set_group($target_group);
        if (($maxnum = $RCMAIL->config->get('max_group_members', 0)) && ($TARGET->count()->count + count($plugin['ids']) > $maxnum)) {
            if ($maxnum && ($TARGET->count()->count + count($plugin['ids']) > $maxnum)) {
          $OUTPUT->show_message('maxgroupmembersreached', 'warning', array('max' => $maxnum));
          $OUTPUT->send();
        }
@@ -81,8 +98,9 @@
        if (($cnt = $TARGET->add_to_group($target_group, $plugin['ids'])) && $cnt > $success)
          $success = $cnt;
      }
      else if ($plugin['result'])
        else if ($plugin['result']) {
        $success = $plugin['result'];
        }
    }
  }
@@ -90,8 +108,6 @@
    $OUTPUT->show_message('copyerror', 'error');
  else
    $OUTPUT->show_message('copysuccess', 'notice', array('nr' => $success));
}
// send response
$OUTPUT->send();