move inbox notice list to repeat plugin
This commit is contained in:
parent
144faade3b
commit
198e413a58
|
@ -144,7 +144,7 @@ class AllAction extends ProfileAction
|
||||||
|
|
||||||
function showContent()
|
function showContent()
|
||||||
{
|
{
|
||||||
$nl = new InboxNoticeList($this->notice, $this->user, $this);
|
$nl = new NoticeList($this->notice, $this->user, $this);
|
||||||
|
|
||||||
$cnt = $nl->show();
|
$cnt = $nl->show();
|
||||||
|
|
||||||
|
@ -168,87 +168,3 @@ class AllAction extends ProfileAction
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class InboxNoticeList extends NoticeList
|
|
||||||
{
|
|
||||||
var $owner = null;
|
|
||||||
|
|
||||||
function __construct($notice, $owner, $out=null)
|
|
||||||
{
|
|
||||||
parent::__construct($notice, $out);
|
|
||||||
$this->owner = $owner;
|
|
||||||
}
|
|
||||||
|
|
||||||
function newListItem($notice)
|
|
||||||
{
|
|
||||||
return new InboxNoticeListItem($notice, $this->owner, $this->out);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class InboxNoticeListItem extends NoticeListItem
|
|
||||||
{
|
|
||||||
var $owner = null;
|
|
||||||
var $ib = null;
|
|
||||||
|
|
||||||
function __construct($notice, $owner, $out=null)
|
|
||||||
{
|
|
||||||
parent::__construct($notice, $out);
|
|
||||||
$this->owner = $owner;
|
|
||||||
|
|
||||||
$this->ib = Notice_inbox::pkeyGet(array('user_id' => $owner->id,
|
|
||||||
'notice_id' => $notice->id));
|
|
||||||
}
|
|
||||||
|
|
||||||
function showAuthor()
|
|
||||||
{
|
|
||||||
parent::showAuthor();
|
|
||||||
if ($this->ib->source == NOTICE_INBOX_SOURCE_FORWARD) {
|
|
||||||
$this->out->element('span', 'forward', _('Fwd'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function showEnd()
|
|
||||||
{
|
|
||||||
if ($this->ib->source == NOTICE_INBOX_SOURCE_FORWARD) {
|
|
||||||
|
|
||||||
$forward = new Forward();
|
|
||||||
|
|
||||||
// FIXME: scary join!
|
|
||||||
|
|
||||||
$forward->query('SELECT profile_id '.
|
|
||||||
'FROM forward JOIN subscription ON forward.profile_id = subscription.subscribed '.
|
|
||||||
'WHERE subscription.subscriber = ' . $this->owner->id . ' '.
|
|
||||||
'AND forward.notice_id = ' . $this->notice->id . ' '.
|
|
||||||
'ORDER BY forward.created ');
|
|
||||||
|
|
||||||
$n = 0;
|
|
||||||
|
|
||||||
$firstForwarder = null;
|
|
||||||
|
|
||||||
while ($forward->fetch()) {
|
|
||||||
if (empty($firstForwarder)) {
|
|
||||||
$firstForwarder = Profile::staticGet('id', $forward->profile_id);
|
|
||||||
}
|
|
||||||
$n++;
|
|
||||||
}
|
|
||||||
|
|
||||||
$forward->free();
|
|
||||||
unset($forward);
|
|
||||||
|
|
||||||
$this->out->elementStart('span', 'forwards');
|
|
||||||
|
|
||||||
$link = XMLStringer::estring('a', array('href' => $firstForwarder->profileurl),
|
|
||||||
$firstForwarder->nickname);
|
|
||||||
|
|
||||||
if ($n == 1) {
|
|
||||||
$this->out->raw(sprintf(_('Forwarded by %s'), $link));
|
|
||||||
} else {
|
|
||||||
// XXX: use that cool ngettext thing
|
|
||||||
$this->out->raw(sprintf(_('Forwarded by %s and %d other(s)'), $link, $n - 1));
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->out->elementEnd('span');
|
|
||||||
}
|
|
||||||
parent::showEnd();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
85
plugins/Repeat/inboxnoticelist.php
Normal file
85
plugins/Repeat/inboxnoticelist.php
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class InboxNoticeList extends NoticeList
|
||||||
|
{
|
||||||
|
var $owner = null;
|
||||||
|
|
||||||
|
function __construct($notice, $owner, $out=null)
|
||||||
|
{
|
||||||
|
parent::__construct($notice, $out);
|
||||||
|
$this->owner = $owner;
|
||||||
|
}
|
||||||
|
|
||||||
|
function newListItem($notice)
|
||||||
|
{
|
||||||
|
return new InboxNoticeListItem($notice, $this->owner, $this->out);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class InboxNoticeListItem extends NoticeListItem
|
||||||
|
{
|
||||||
|
var $owner = null;
|
||||||
|
var $ib = null;
|
||||||
|
|
||||||
|
function __construct($notice, $owner, $out=null)
|
||||||
|
{
|
||||||
|
parent::__construct($notice, $out);
|
||||||
|
$this->owner = $owner;
|
||||||
|
|
||||||
|
$this->ib = Notice_inbox::pkeyGet(array('user_id' => $owner->id,
|
||||||
|
'notice_id' => $notice->id));
|
||||||
|
}
|
||||||
|
|
||||||
|
function showAuthor()
|
||||||
|
{
|
||||||
|
parent::showAuthor();
|
||||||
|
if ($this->ib->source == NOTICE_INBOX_SOURCE_FORWARD) {
|
||||||
|
$this->out->element('span', 'forward', _('Fwd'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function showEnd()
|
||||||
|
{
|
||||||
|
if ($this->ib->source == NOTICE_INBOX_SOURCE_FORWARD) {
|
||||||
|
|
||||||
|
$forward = new Forward();
|
||||||
|
|
||||||
|
// FIXME: scary join!
|
||||||
|
|
||||||
|
$forward->query('SELECT profile_id '.
|
||||||
|
'FROM forward JOIN subscription ON forward.profile_id = subscription.subscribed '.
|
||||||
|
'WHERE subscription.subscriber = ' . $this->owner->id . ' '.
|
||||||
|
'AND forward.notice_id = ' . $this->notice->id . ' '.
|
||||||
|
'ORDER BY forward.created ');
|
||||||
|
|
||||||
|
$n = 0;
|
||||||
|
|
||||||
|
$firstForwarder = null;
|
||||||
|
|
||||||
|
while ($forward->fetch()) {
|
||||||
|
if (empty($firstForwarder)) {
|
||||||
|
$firstForwarder = Profile::staticGet('id', $forward->profile_id);
|
||||||
|
}
|
||||||
|
$n++;
|
||||||
|
}
|
||||||
|
|
||||||
|
$forward->free();
|
||||||
|
unset($forward);
|
||||||
|
|
||||||
|
$this->out->elementStart('span', 'forwards');
|
||||||
|
|
||||||
|
$link = XMLStringer::estring('a', array('href' => $firstForwarder->profileurl),
|
||||||
|
$firstForwarder->nickname);
|
||||||
|
|
||||||
|
if ($n == 1) {
|
||||||
|
$this->out->raw(sprintf(_('Forwarded by %s'), $link));
|
||||||
|
} else {
|
||||||
|
// XXX: use that cool ngettext thing
|
||||||
|
$this->out->raw(sprintf(_('Forwarded by %s and %d other(s)'), $link, $n - 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->out->elementEnd('span');
|
||||||
|
}
|
||||||
|
parent::showEnd();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user