X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=program%2Fsteps%2Faddressbook%2Fmailto.inc;h=5996b9da7645e5d7c1ef55416ca59a9894d543d0;hb=a2dd2e41259a5e90016efcd7d083020b95e25527;hp=a1b1f3165e95f55e4cf288d9a8e475927084028c;hpb=fe4a852cd4335d3d2089b13e10d409fa2fa816d8;p=roundcube.git diff --git a/program/steps/addressbook/mailto.inc b/program/steps/addressbook/mailto.inc index a1b1f31..5996b9d 100644 --- a/program/steps/addressbook/mailto.inc +++ b/program/steps/addressbook/mailto.inc @@ -5,7 +5,7 @@ | program/steps/addressbook/mailto.inc | | | | This file is part of the Roundcube Webmail client | - | Copyright (C) 2007, Roundcube Dev. - Switzerland | + | Copyright (C) 2007, The Roundcube Dev Team | | Licensed under the GNU GPL | | | | PURPOSE: | @@ -19,31 +19,36 @@ */ -$cid = get_input_value('_cid', RCUBE_INPUT_GET); -$recipients = null; +$cids = rcmail_get_cids(); $mailto = array(); -if ($cid && preg_match('/^[a-z0-9\+\/=_-]+(,[a-z0-9\+\/=_-]+)*$/i', $cid) && $CONTACTS->ready) +foreach ($cids as $source => $cid) { - $CONTACTS->set_page(1); - $CONTACTS->set_pagesize(100); - $recipients = $CONTACTS->search($CONTACTS->primary_key, $cid); - - while (is_object($recipients) && ($rec = $recipients->iterate())) - $mailto[] = format_email_recipient($rec['email'], $rec['name']); + $CONTACTS = $RCMAIL->get_address_book($source); + + if ($CONTACTS->ready) + { + $CONTACTS->set_page(1); + $CONTACTS->set_pagesize(count($cid) + 2); // +2 to skip counting query + $recipients = $CONTACTS->search($CONTACTS->primary_key, $cid, false, true, true, 'email'); + + while (is_object($recipients) && ($rec = $recipients->iterate())) { + $emails = $CONTACTS->get_col_values('email', $rec, true); + $mailto[] = format_email_recipient($emails[0], $rec['name']); + } + } } if (!empty($mailto)) { - $mailto_str = join(', ', $mailto); - $mailto_id = substr(md5($mailto_str), 0, 16); - $_SESSION['mailto'][$mailto_id] = urlencode($mailto_str); - $OUTPUT->redirect(array('task' => 'mail', '_action' => 'compose', '_mailto' => $mailto_id)); + $mailto_str = join(', ', $mailto); + $mailto_id = substr(md5($mailto_str), 0, 16); + $_SESSION['mailto'][$mailto_id] = urlencode($mailto_str); + $OUTPUT->redirect(array('task' => 'mail', '_action' => 'compose', '_mailto' => $mailto_id)); +} +else { + $OUTPUT->show_message('nocontactsfound', 'warning'); } -else - $OUTPUT->show_message('nocontactsfound', 'warning'); - // send response $OUTPUT->send(); -