$text = '';
foreach ($addresses as $addr) {
- // Check for groups.
- if (empty($addr['groupname'])) {
- if (empty($addr['personal'])) {
+ $addrobs = empty($addr['groupname'])
+ ? array($addr)
+ : $addr['addresses'];
+ $addrlist = array();
+
+ foreach ($addrobs as $val) {
+ if (empty($val['personal'])) {
$personal = '';
} else {
- if (($addr['personal'][0] == '"') &&
- (substr($addr['personal'], -1) == '"')) {
- $addr['personal'] = stripslashes(substr($addr['personal'], 1, -1));
+ if (($val['personal'][0] == '"') &&
+ (substr($val['personal'], -1) == '"')) {
+ $addr['personal'] = stripslashes(substr($val['personal'], 1, -1));
}
- $personal = self::encode($addr['personal'], $charset);
+ $personal = self::encode($val['personal'], $charset);
}
- $text .= Horde_Mime_Address::writeAddress($addr['mailbox'], $addr['host'], $personal) . ', ';
+ $addrlist[] = Horde_Mime_Address::writeAddress($val['mailbox'], $val['host'], $personal);
+ }
+
+ if (empty($addr['groupname'])) {
+ $text .= reset($addrlist) . ', ';
} else {
- $text .= Horde_Mime_Address::writeGroupAddress($addr['groupname'], $addr['addresses']) . ' ';
+ $text .= Horde_Mime_Address::writeGroupAddress($addr['groupname'], $addrlist) . ' ';
}
}
*/
static public function writeGroupAddress($groupname, $addresses = array())
{
- return self::encode($groupname, 'address') . ':' . (empty($addresses) ? '' : implode(', ', $addresses)) . ';';
+ return self::encode($groupname, 'address') . ':' . (empty($addresses) ? '' : (' ' . implode(', ', $addresses)) . ';');
}
/**
/* Convert objects to arrays. */
foreach (array_keys($ret) as $key) {
$ret[$key] = (array) $ret[$key];
+ if (isset($ret[$key]['addresses'])) {
+ $ptr = &$ret[$key]['addresses'];
+ foreach (array_keys($ptr) as $key2) {
+ $ptr[$key2] = (array) $ptr[$key2];
+ }
+ }
}
return $ret;