X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fnoticelistitem.php;h=0231f3a57fa7deeea7868bcd05cb20344576f7cd;hb=7d64d8c78cfa102b91975598ef9e574d2ef14b8c;hp=5942415c51681e4af9229781d3e0d232f39ac9e2;hpb=674e3c2a0ef4d91f502974b34c8f58029accced7;p=quix0rs-gnu-social.git diff --git a/lib/noticelistitem.php b/lib/noticelistitem.php index 5942415c51..0231f3a57f 100644 --- a/lib/noticelistitem.php +++ b/lib/noticelistitem.php @@ -4,7 +4,7 @@ * Copyright (C) 2010, StatusNet, Inc. * * An item in a notice list - * + * * PHP version 5 * * This program is free software: you can redistribute it and/or modify @@ -167,6 +167,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)); @@ -202,20 +205,97 @@ class NoticeListItem extends Widget * * @return void */ + function showAuthor() { + $this->out->elementStart('div', 'author'); + $this->out->elementStart('span', 'vcard author'); + $attrs = array('href' => $this->profile->profileurl, - 'class' => 'url'); - if (!empty($this->profile->fullname)) { - $attrs['title'] = $this->profile->getFancyName(); - } + 'class' => 'url', + 'title' => $this->profile->nickname); + $this->out->elementStart('a', $attrs); $this->showAvatar(); $this->out->text(' '); - $this->showNickname(); + $this->out->element('span',array('class' => 'fn'), + $this->profile->getBestName()); $this->out->elementEnd('a'); + $this->out->elementEnd('span'); + + $this->showAddressees(); + + $this->out->elementEnd('div'); + } + + function showAddressees() + { + $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 getGroupAddressees() + { + $ga = array(); + + $groups = $this->getGroups(); + + foreach ($groups as $group) { + $ga[] = array('href' => $group->homeUrl(), + 'title' => $group->nickname, + 'class' => 'addressee group', + 'text' => $group->getBestName()); + } + + return $ga; + } + + function getGroups() + { + return $this->notice->getGroups(); + } + + function getProfileAddressees() + { + $pa = array(); + + $replies = $this->getReplyProfiles(); + + foreach ($replies as $reply) { + $pa[] = array('href' => $reply->profileurl, + 'title' => $reply->nickname, + 'class' => 'addressee account', + 'text' => $reply->getBestName()); + } + + return $pa; + } + + function getReplyProfiles() + { + return $this->notice->getReplyProfiles(); } /** @@ -348,15 +428,20 @@ class NoticeListItem extends Widget if (empty($name)) { $latdms = $this->decimalDegreesToDMS(abs($lat)); $londms = $this->decimalDegreesToDMS(abs($lon)); - // TRANS: Used in coordinates as abbreviation of north + // TRANS: Used in coordinates as abbreviation of north. $north = _('N'); - // TRANS: Used in coordinates as abbreviation of south + // TRANS: Used in coordinates as abbreviation of south. $south = _('S'); - // TRANS: Used in coordinates as abbreviation of east + // TRANS: Used in coordinates as abbreviation of east. $east = _('E'); - // TRANS: Used in coordinates as abbreviation of west + // TRANS: Used in coordinates as abbreviation of west. $west = _('W'); $name = sprintf( + // TRANS: Coordinates message. + // TRANS: %1$s is lattitude degrees, %2$s is lattitude minutes, + // TRANS: %3$s is lattitude seconds, %4$s is N (north) or S (south) depending on lattitude, + // TRANS: %5$s is longitude degrees, %6$s is longitude minutes, + // TRANS: %7$s is longitude seconds, %8$s is E (east) or W (west) depending on longitude, _('%1$u°%2$u\'%3$u"%4$s %5$u°%6$u\'%7$u"%8$s'), $latdms['deg'],$latdms['min'], $latdms['sec'],($lat>0? $north:$south), $londms['deg'],$londms['min'], $londms['sec'],($lon>0? $east:$west)); @@ -366,6 +451,7 @@ class NoticeListItem extends Widget $this->out->text(' '); $this->out->elementStart('span', array('class' => 'location')); + // TRANS: Followed by geo location. $this->out->text(_('at')); $this->out->text(' '); if (empty($url)) { @@ -414,10 +500,12 @@ class NoticeListItem extends Widget $ns = $this->notice->getSource(); if ($ns) { - $source_name = (empty($ns->name)) ? ($ns->code ? _($ns->code) : _('web')) : _($ns->name); + // TRANS: A possible notice source (web interface). + $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(' '); @@ -434,7 +522,6 @@ class NoticeListItem extends Widget // if $ns->name and $ns->url are populated we have // configured a source attr somewhere if (!empty($name) && !empty($url)) { - $this->out->elementStart('span', 'device'); $attrs = array( @@ -479,6 +566,7 @@ class NoticeListItem extends Widget array( 'href' => $convurl.'#notice-'.$this->notice->id, 'class' => 'response'), + // TRANS: Addition in notice list item if notice is part of a conversation. _('in context') ); } else { @@ -513,7 +601,9 @@ class NoticeListItem extends Widget $this->out->elementStart('span', 'repeat vcard'); + // 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); @@ -539,7 +629,9 @@ class NoticeListItem extends Widget array('replyto' => $this->profile->nickname, 'inreplyto' => $this->notice->id)); $this->out->elementStart('a', array('href' => $reply_url, 'class' => 'notice_reply', - 'title' => _('Reply to this notice'))); + // TRANS: Link title in notice list item to reply to a 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(' '); $this->out->element('span', 'notice_id', $this->notice->id); @@ -565,7 +657,10 @@ class NoticeListItem extends Widget array('notice' => $todel->id)); $this->out->element('a', array('href' => $deleteurl, 'class' => 'notice_delete', - 'title' => _('Delete this notice')), _('Delete')); + // TRANS: Link title in notice list item to delete a notice. + 'title' => _('Delete this notice from the timeline.')), + // TRANS: Link text in notice list item to delete a notice. + _('Delete')); } }