Don't show empty addressees in noticelistitem

This commit is contained in:
Evan Prodromou 2011-05-30 16:20:34 -04:00
parent d544c78276
commit ac55efeecf
1 changed files with 36 additions and 28 deletions

View File

@ -229,31 +229,44 @@ class NoticeListItem extends Widget
function showAddressees() function showAddressees()
{ {
$this->out->elementStart('span', 'addressees'); $ga = $this->getGroupAddressees();
$pa = $this->getProfileAddressees();
$cnt = $this->showGroupAddressees(true); $a = array_merge($ga, $pa);
$cnt = $this->showProfileAddressees($cnt == 0);
$this->out->elementEnd('span', 'addressees'); if (!empty($a)) {
$this->out->elementStart('span', 'addressees');
$first = true;
foreach ($a as $addr) {
if (!$first) {
// TRANS: Separator in profile addressees list.
$this->out->text(_m('SEPARATOR',', '));
} else {
// TRANS: Start of profile addressees list.
$first = false;
}
$text = $addr['text'];
unset($addr['text']);
$this->out->element('a', $addr, $text);
}
$this->out->elementEnd('span', 'addressees');
}
} }
function showGroupAddressees($first) function getGroupAddressees()
{ {
$ga = array();
$groups = $this->getGroups(); $groups = $this->getGroups();
foreach ($groups as $group) { foreach ($groups as $group) {
if (!$first) { $ga[] = array('href' => $group->homeUrl(),
$this->out->text( _m('SEPARATOR',', ')); 'title' => $group->nickname,
} else { 'class' => 'addressee group',
$first = false; 'text' => $group->getBestName());
}
$this->out->element('a', array('href' => $group->homeUrl(),
'title' => $group->nickname,
'class' => 'addressee group'),
$group->getBestName());
} }
return count($groups); return $ga;
} }
function getGroups() function getGroups()
@ -261,25 +274,20 @@ class NoticeListItem extends Widget
return $this->notice->getGroups(); return $this->notice->getGroups();
} }
function showProfileAddressees($first) function getProfileAddressees()
{ {
$pa = array();
$replies = $this->getReplyProfiles(); $replies = $this->getReplyProfiles();
foreach ($replies as $reply) { foreach ($replies as $reply) {
if (!$first) { $pa[] = array('href' => $reply->profileurl,
// TRANS: Separator in profile addressees list. 'title' => $reply->nickname,
$this->out->text(_m('SEPARATOR',', ')); 'class' => 'addressee account',
} else { 'text' => $reply->getBestName());
// TRANS: Start of profile addressees list.
$first = false;
}
$this->out->element('a', array('href' => $reply->profileurl,
'title' => $reply->nickname,
'class' => 'addressee account'),
$reply->getBestName());
} }
return count($replies); return $pa;
} }
function getReplyProfiles() function getReplyProfiles()