Index: branches/5.2.x/core/units/helpers/mailing_list_helper.php =================================================================== diff -u -N -r14861 -r14870 --- branches/5.2.x/core/units/helpers/mailing_list_helper.php (.../mailing_list_helper.php) (revision 14861) +++ branches/5.2.x/core/units/helpers/mailing_list_helper.php (.../mailing_list_helper.php) (revision 14870) @@ -1,6 +1,6 @@ groupRecipientsByType(explode(';', $fields_hash['To'])); - // 1. group recipients by types + foreach ($recipients_grouped as $recipient_type => $group_recipients) { + $recipient_emails = array_merge($recipient_emails, $this->_getRecipientEmails($recipient_type, $group_recipients)); + } + + $recipient_emails = array_unique($recipient_emails); + + return Array ( + 'ToParsed' => serialize($recipient_emails), + 'EmailsTotal' => count($recipient_emails), + ); + } + + /** + * Groups recipients by type + * + * @param Array $recipients + * @return Array + * @access public + */ + public function groupRecipientsByType($recipients) + { $recipients_grouped = Array (); + foreach ($recipients as $recipient) { - if (strpos($recipient, '_') !== false) { + if ( strpos($recipient, '_') !== false ) { list ($recipient_type, $recipient_id) = explode('_', $recipient); } else { $recipient_type = 'direct'; $recipient_id = $recipient; } - if (!array_key_exists($recipient_type, $recipients_grouped)) { + if ( !array_key_exists($recipient_type, $recipients_grouped) ) { $recipients_grouped[$recipient_type] = Array (); } $recipients_grouped[$recipient_type][] = $recipient_id; } - // for each group convert ids to names - $recpient_emails = Array (); - foreach ($recipients_grouped as $recipient_type => $group_recipients) { - $recpient_emails = array_merge($recpient_emails, $this->_getRecipientEmails($recipient_type, $group_recipients)); - } - - $recpient_emails = array_unique($recpient_emails); - - return Array ( - 'ToParsed' => serialize($recpient_emails), - 'EmailsTotal' => count($recpient_emails), - ); + return $recipients_grouped; } function _getRecipientEmails($recipient_type, $recipient_ids)