* 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
* @see NoticeList
* @see ProfileNoticeListItem
*/
-
class NoticeListItem extends Widget
{
/** The notice this item will show. */
-
var $notice = null;
/** The notice that was repeated. */
-
var $repeat = null;
/** The profile of the author of the notice, extracted once for convenience. */
-
var $profile = null;
/**
*
* @param Notice $notice The notice we'll display
*/
-
function __construct($notice, $out=null)
{
parent::__construct($out);
*
* @return void
*/
-
function show()
{
if (empty($this->notice)) {
*
* @return void
*/
-
function showStart()
{
if (Event::handle('StartOpenNoticeListItemElement', array($this))) {
*
* @return void
*/
-
function showFaveForm()
{
if (Event::handle('StartShowFaveForm', array($this))) {
*
* @return void
*/
-
function showAuthor()
{
$this->out->elementStart('span', 'vcard author');
*
* @return void
*/
-
function showAvatar()
{
$avatar_size = $this->avatarSize();
*
* @return void
*/
-
function showNickname()
{
$this->out->raw('<span class="nickname fn">' .
*
* @return void
*/
-
function showContent()
{
// FIXME: URL, image, video, audio
*
* @return void
*/
-
function showNoticeLink()
{
$noticeurl = $this->notice->bestUrl();
*
* @return void
*/
-
function showNoticeLocation()
{
$id = $this->notice->id;
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));
$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)) {
*
* @return void
*/
-
function showNoticeSource()
{
$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).
+ // TRANS: Followed by notice source.
$this->out->text(_('from'));
$this->out->text(' ');
// 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(
*
* @return void
*/
-
function showContext()
{
if ($this->notice->hasConversation()) {
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 {
*
* @return void
*/
-
function showRepeat()
{
if (!empty($this->repeat)) {
$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->elementStart('a', $attrs);
*
* @return void
*/
-
function showReplyLink()
{
if (common_logged_in()) {
array('replyto' => $this->profile->nickname, 'inreplyto' => $this->notice->id));
$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')));
+ // 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);
*
* @return void
*/
-
function showDeleteLink()
{
$user = common_current_user();
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')),
+ // TRANS: Link text in notice list item to delete a notice.
+ _('Delete'));
}
}
*
* @return void
*/
-
function showRepeatForm()
{
- $user = common_current_user();
- if ($user && $user->id != $this->notice->profile_id) {
- $this->out->text(' ');
- $profile = $user->getProfile();
- if ($profile->hasRepeated($this->notice->id)) {
- $this->out->element('span', array('class' => 'repeated',
- 'title' => _('Notice repeated')),
- _('Repeated'));
- } else {
- $rf = new RepeatForm($this->out, $this->notice);
- $rf->show();
+ if ($this->notice->scope == Notice::PUBLIC_SCOPE ||
+ $this->notice->scope == Notice::SITE_SCOPE) {
+ $user = common_current_user();
+ if (!empty($user) &&
+ $user->id != $this->notice->profile_id) {
+ $this->out->text(' ');
+ $profile = $user->getProfile();
+ if ($profile->hasRepeated($this->notice->id)) {
+ $this->out->element('span', array('class' => 'repeated',
+ // TRANS: Title for repeat form status in notice list when a notice has been repeated.
+ 'title' => _('Notice repeated.')),
+ // TRANS: Repeat form status in notice list when a notice has been repeated.
+ _('Repeated'));
+ } else {
+ $rf = new RepeatForm($this->out, $this->notice);
+ $rf->show();
+ }
}
}
}
*
* @return void
*/
-
function showEnd()
{
if (Event::handle('StartCloseNoticeListItemElement', array($this))) {