X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fnoticelistitem.php;h=f829f963ee3f8ddb30ab61a7158941625416b50f;hb=360492472c7f5424670b01541ebc4ddc87ff27e3;hp=2c746928fede2c9aa4e5e8ee3fc07f6d3c895f92;hpb=f548831eb1373840ac95a999db4fa7eceb112e40;p=quix0rs-gnu-social.git diff --git a/lib/noticelistitem.php b/lib/noticelistitem.php index 2c746928fe..f829f963ee 100644 --- a/lib/noticelistitem.php +++ b/lib/noticelistitem.php @@ -73,7 +73,7 @@ class NoticeListItem extends Widget { parent::__construct($out); if (!empty($notice->repeat_of)) { - $original = Notice::staticGet('id', $notice->repeat_of); + $original = Notice::getKV('id', $notice->repeat_of); if (empty($original)) { // could have been deleted $this->notice = $notice; } else { @@ -144,10 +144,13 @@ class NoticeListItem extends Widget $user = common_current_user(); if ($user) { $this->out->elementStart('div', 'notice-options'); - $this->showFaveForm(); - $this->showReplyLink(); - $this->showRepeatForm(); - $this->showDeleteLink(); + if (Event::handle('StartShowNoticeOptionItems', array($this))) { + $this->showFaveForm(); + $this->showReplyLink(); + $this->showRepeatForm(); + $this->showDeleteLink(); + Event::handle('EndShowNoticeOptionItems', array($this)); + } $this->out->elementEnd('div'); } Event::handle('EndShowNoticeOptions', array($this)); @@ -167,6 +170,9 @@ class NoticeListItem extends Widget if ($this->notice->scope != 0 && $this->notice->scope != 1) { $class .= ' limited-scope'; } + if (!empty($this->notice->source)) { + $class .= ' notice-source-'.$this->notice->source; + } $this->out->elementStart('li', array('class' => $class, 'id' => 'notice-' . $id)); Event::handle('EndOpenNoticeListItemElement', array($this)); @@ -216,8 +222,14 @@ class NoticeListItem extends Widget $this->out->elementStart('a', $attrs); $this->showAvatar(); $this->out->text(' '); - $this->out->element('span',array('class' => 'fn'), - $this->profile->getBestName()); + $user = common_current_user(); + if (!empty($user) && $user->streamNicknames()) { + $this->out->element('span',array('class' => 'fn'), + $this->profile->nickname); + } else { + $this->out->element('span',array('class' => 'fn'), + $this->profile->getBestName()); + } $this->out->elementEnd('a'); $this->out->elementEnd('span'); @@ -229,32 +241,48 @@ class NoticeListItem extends Widget function showAddressees() { - $this->out->elementStart('span', 'addressees'); - - $cnt = $this->showGroupAddressees(true); - $cnt = $this->showProfileAddressees($cnt == 0); - - $this->out->elementEnd('span', 'addressees'); + $ga = $this->getGroupAddressees(); + $pa = $this->getProfileAddressees(); + + $a = array_merge($ga, $pa); + + 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 { + // 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(); + $user = common_current_user(); + + $streamNicknames = !empty($user) && $user->streamNicknames(); + foreach ($groups as $group) { - if (!$first) { - $this->out->text(', '); - } else { - $this->out->text(' ▶ '); - $first = false; - } - $this->out->element('a', array('href' => $group->homeUrl(), - 'title' => $group->nickname, - 'class' => 'addressee group'), - $group->getBestName()); + $ga[] = array('href' => $group->homeUrl(), + 'title' => $group->nickname, + 'class' => 'addressee group', + 'text' => ($streamNicknames) ? $group->nickname : $group->getBestName()); } - return count($groups); + return $ga; } function getGroups() @@ -262,24 +290,24 @@ class NoticeListItem extends Widget return $this->notice->getGroups(); } - function showProfileAddressees($first) + function getProfileAddressees() { + $pa = array(); + $replies = $this->getReplyProfiles(); + $user = common_current_user(); + + $streamNicknames = !empty($user) && $user->streamNicknames(); + foreach ($replies as $reply) { - if (!$first) { - $this->out->text(', '); - } else { - $this->out->text(' ▶ '); - $first = false; - } - $this->out->element('a', array('href' => $reply->profileurl, - 'title' => $reply->nickname, - 'class' => 'addressee account'), - $reply->getBestName()); + $pa[] = array('href' => $reply->profileurl, + 'title' => $reply->nickname, + 'class' => 'addressee account', + 'text' => ($streamNicknames) ? $reply->nickname : $reply->getBestName()); } - return count($replies); + return $pa; } function getReplyProfiles() @@ -493,7 +521,7 @@ class NoticeListItem extends Widget $source_name = (empty($ns->name)) ? ($ns->code ? _($ns->code) : _m('SOURCE','web')) : _($ns->name); $this->out->text(' '); $this->out->elementStart('span', 'source'); - // FIXME: probably i18n issue. If "from" is followed by text, that should be a parameter to "from" (from %s). + // @todo FIXME: probably i18n issue. If "from" is followed by text, that should be a parameter to "from" (from %s). // TRANS: Followed by notice source. $this->out->text(_('from')); $this->out->text(' '); @@ -543,7 +571,7 @@ class NoticeListItem extends Widget function showContext() { if ($this->notice->hasConversation()) { - $conv = Conversation::staticGet( + $conv = Conversation::getKV( 'id', $this->notice->conversation ); @@ -579,7 +607,7 @@ class NoticeListItem extends Widget { if (!empty($this->repeat)) { - $repeater = Profile::staticGet('id', $this->repeat->profile_id); + $repeater = Profile::getKV('id', $this->repeat->profile_id); $attrs = array('href' => $repeater->profileurl, 'class' => 'url'); @@ -592,6 +620,7 @@ class NoticeListItem extends Widget // TRANS: Addition in notice list item if notice was repeated. Followed by a span with a nickname. $this->out->raw(_('Repeated by')); + $this->out->raw(' '); $this->out->elementStart('a', $attrs); $this->out->element('span', 'fn nickname', $repeater->nickname); @@ -618,7 +647,7 @@ class NoticeListItem extends Widget $this->out->elementStart('a', array('href' => $reply_url, 'class' => 'notice_reply', // TRANS: Link title in notice list item to reply to a notice. - 'title' => _('Reply to this notice'))); + 'title' => _('Reply to this notice.'))); // TRANS: Link text in notice list item to reply to a notice. $this->out->text(_('Reply')); $this->out->text(' '); @@ -646,7 +675,7 @@ class NoticeListItem extends Widget $this->out->element('a', array('href' => $deleteurl, 'class' => 'notice_delete', // TRANS: Link title in notice list item to delete a notice. - 'title' => _('Delete this notice')), + 'title' => _('Delete this notice from the timeline.')), // TRANS: Link text in notice list item to delete a notice. _('Delete')); } @@ -694,4 +723,17 @@ class NoticeListItem extends Widget Event::handle('EndCloseNoticeListItemElement', array($this)); } } + + /** + * Get the notice in question + * + * For hooks, etc., this may be useful + * + * @return Notice The notice we're showing + */ + + function getNotice() + { + return $this->notice; + } }