|
|
@ -755,20 +755,27 @@ function rcmail_get_cids($filter = null) |
|
|
|
return array(); |
|
|
|
} |
|
|
|
|
|
|
|
$cid = explode(',', $cid); |
|
|
|
$result = array(); |
|
|
|
$cid = explode(',', $cid); |
|
|
|
$got_source = strlen($source); |
|
|
|
$result = array(); |
|
|
|
|
|
|
|
// create per-source contact IDs array |
|
|
|
foreach ($cid as $id) { |
|
|
|
// get source from decoded ID |
|
|
|
if ($sep = strrpos($id, '-')) { |
|
|
|
$contact_id = substr($id, 0, $sep); |
|
|
|
$source_id = substr($id, $sep+1); |
|
|
|
if (strlen($source_id)) { |
|
|
|
$result[(string)$source_id][] = $contact_id; |
|
|
|
// extract source ID from contact ID (it's there in search mode) |
|
|
|
// see #1488959 and #1488862 for reference |
|
|
|
if (!$got_source) { |
|
|
|
if ($sep = strrpos($id, '-')) { |
|
|
|
$contact_id = substr($id, 0, $sep); |
|
|
|
$source_id = (string) substr($id, $sep+1); |
|
|
|
if (strlen($source_id)) { |
|
|
|
$result[$source_id][] = $contact_id; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
if (substr($id, -($got_source+1)) == "-$source") { |
|
|
|
$id = substr($id, 0, -($got_source+1)); |
|
|
|
} |
|
|
|
$result[$source][] = $id; |
|
|
|
} |
|
|
|
} |
|
|
|