getObject($params); /* @var $object kDBItem */ $recipients = explode(';', $object->GetDBField('To')); // 1. group recipients by types $recipients_grouped = Array (); foreach ($recipients as $recipient) { 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)) { $recipients_grouped[$recipient_type] = Array (); } $recipients_grouped[$recipient_type][] = $recipient_id; } $mailing_list_helper =& $this->Application->recallObject('MailingListHelper'); /* @var $mailing_list_helper MailingListHelper */ // for each group convert ids to names $recpient_names = Array (); foreach ($recipients_grouped as $recipient_type => $group_recipients) { $recpient_names = array_merge($recpient_names, $mailing_list_helper->getRecipientNames($recipient_type, $group_recipients)); } $ret = ''; $recipient_count = count($recpient_names); $block_params = $this->prepareTagParams($params); $block_params['name'] = $params['render_as']; foreach ($recpient_names as $recipient_index => $recipient_name) { $block_params['recipient_name'] = $recipient_name; $block_params['not_last'] = $recipient_index < $recipient_count - 1; $ret .= $this->Application->ParseBlock($block_params); } return $ret; } function IsManualRecipient($params) { $external_call = $this->Application->GetVar('mailing_recipient_type'); if ($external_call) { return false; } $object =& $this->getObject($params); /* @var $object kDBItem */ return $object->IsNewItem(); } }