X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fthreadednoticelist.php;h=ebf0a460897069db61f43398e403e5905ee3b932;hb=8b78e01d4c4b9512a7b74efa52fcaf37de0dc6f1;hp=62099e91555ba8897f116972b79313379f253e4e;hpb=fcdd061b4f89d04889025c516f98c9eead53ad1a;p=quix0rs-gnu-social.git diff --git a/lib/threadednoticelist.php b/lib/threadednoticelist.php index 62099e9155..ebf0a46089 100644 --- a/lib/threadednoticelist.php +++ b/lib/threadednoticelist.php @@ -27,7 +27,7 @@ * @link http://status.net/ */ -if (!defined('GNUSOCIAL') && !defined('STATUSNET')) { exit(1); } +if (!defined('GNUSOCIAL')) { exit(1); } /** * widget for displaying a list of notices @@ -50,7 +50,7 @@ class ThreadedNoticeList extends NoticeList { protected $userProfile; - function __construct(Notice $notice, HTMLOutputter $out=null, $profile=-1) + function __construct(Notice $notice, Action $out=null, $profile=-1) { parent::__construct($notice, $out); if (is_int($profile) && $profile == -1) { @@ -174,7 +174,7 @@ class ThreadedNoticeListItem extends NoticeListItem { protected $userProfile = null; - function __construct(Notice $notice, HTMLOutputter $out=null, $profile=null) + function __construct(Notice $notice, Action $out=null, $profile=null) { parent::__construct($notice, $out); $this->userProfile = $profile; @@ -185,11 +185,6 @@ class ThreadedNoticeListItem extends NoticeListItem return 3; } - function showContext() - { - // Silence! - } - /** * finish the notice * @@ -200,7 +195,7 @@ class ThreadedNoticeListItem extends NoticeListItem function showEnd() { $max = $this->initialItems(); - if (!$this->repeat) { + if (!$this->repeat instanceof Notice) { $stream = new ConversationNoticeStream($this->notice->conversation, $this->userProfile); $notice = $stream->getNotices(0, $max + 2); $notices = array(); @@ -234,13 +229,7 @@ class ThreadedNoticeListItem extends NoticeListItem $this->out->elementStart('ul', 'notices threaded-replies xoxo'); if (Event::handle('StartShowThreadedNoticeTailItems', array($this, $this->notice, &$threadActive))) { - - // Show the repeats-button for this notice. If there are repeats, - // the show() function will return true, definitely setting our - // $threadActive flag, which will be used later to show a reply box. - $item = new ThreadedNoticeListRepeatsItem($this->notice, $this->out); - $threadActive = $item->show() || $threadActive; - + // Repeats and Faves/Likes are handled in plugins. Event::handle('EndShowThreadedNoticeTailItems', array($this, $this->notice, &$threadActive)); } @@ -258,14 +247,8 @@ class ThreadedNoticeListItem extends NoticeListItem } } - if ($threadActive && Profile::current() instanceof Profile) { - // @fixme do a proper can-post check that's consistent - // with the JS side - $item = new ThreadedNoticeListReplyItem($this->notice, $this->out); - $item->show(); - } - $this->out->elementEnd('ul'); Event::handle('EndShowThreadedNoticeTail', array($this, $this->notice, $notices)); + $this->out->elementEnd('ul'); } } @@ -299,11 +282,6 @@ class ThreadedNoticeListSubItem extends NoticeListItem // } - function showContext() - { - // - } - function getReplyProfiles() { $all = parent::getReplyProfiles(); @@ -325,8 +303,7 @@ class ThreadedNoticeListSubItem extends NoticeListItem { $threadActive = null; // unused here for now, but maybe in the future? if (Event::handle('StartShowThreadedNoticeTailItems', array($this, $this->notice, &$threadActive))) { - $item = new ThreadedNoticeListInlineRepeatsItem($this->notice, $this->out); - $hasRepeats = $item->show(); + // Repeats and Faves/Likes are handled in plugins. Event::handle('EndShowThreadedNoticeTailItems', array($this, $this->notice, &$threadActive)); } parent::showEnd(); @@ -340,7 +317,7 @@ class ThreadedNoticeListMoreItem extends NoticeListItem { protected $cnt; - function __construct(Notice $notice, HTMLOutputter $out, $cnt) + function __construct(Notice $notice, Action $out, $cnt) { parent::__construct($notice, $out); $this->cnt = $cnt; @@ -371,6 +348,11 @@ class ThreadedNoticeListMoreItem extends NoticeListItem $this->out->elementStart('li', array('class' => 'notice-reply-comments')); } + function showEnd() + { + $this->out->elementEnd('li'); + } + function showMiniForm() { $id = $this->notice->conversation; @@ -385,119 +367,3 @@ class ThreadedNoticeListMoreItem extends NoticeListItem $this->out->element('a', array('href' => $url), $msg); } } - -/** - * Placeholder for reply form... - * Same as get added at runtime via SN.U.NoticeInlineReplyPlaceholder - */ -class ThreadedNoticeListReplyItem extends NoticeListItem -{ - /** - * recipe function for displaying a single notice. - * - * This uses all the other methods to correctly display a notice. Override - * it or one of the others to fine-tune the output. - * - * @return void - */ - function show() - { - $this->showStart(); - $this->showMiniForm(); - $this->showEnd(); - } - - /** - * start a single notice. - * - * @return void - */ - function showStart() - { - $this->out->elementStart('li', array('class' => 'notice-reply-placeholder')); - } - - function showMiniForm() - { - $this->out->element('input', array('class' => 'placeholder', - // TRANS: Field label for reply mini form. - 'value' => _('Write a reply...'))); - } -} - -/** - * Placeholder for showing repeats... - */ -class ThreadedNoticeListRepeatsItem extends NoticeListActorsItem -{ - function getProfiles() - { - $repeats = $this->notice->getRepeats(); - - $profiles = array(); - - foreach ($repeats as $rep) { - $profiles[] = $rep->profile_id; - } - - return $profiles; - } - - function magicList($items) - { - if (count($items) > 4) { - return parent::magicList(array_slice($items, 0, 3)); - } else { - return parent::magicList($items); - } - } - - function getListMessage($count, $you) - { - if ($count == 1 && $you) { - // darn first person being different from third person! - // TRANS: List message for notice repeated by logged in user. - return _m('REPEATLIST', 'You repeated this.'); - } else if ($count > 4) { - // TRANS: List message for when more than 4 people repeat something. - // TRANS: %%s is a list of users liking a notice, %d is the number over 4 that like the notice. - // TRANS: Plural is decided on the total number of users liking the notice (count of %%s + %d). - return sprintf(_m('%%s and %d other repeated this.', - '%%s and %d others repeated this.', - $count - 3), - $count - 3); - } else { - // TRANS: List message for favoured notices. - // TRANS: %%s is a list of users liking a notice. - // TRANS: Plural is based on the number of of users that have favoured a notice. - return sprintf(_m('%%s repeated this.', - '%%s repeated this.', - $count), - $count); - } - } - - function showStart() - { - $this->out->elementStart('li', array('class' => 'notice-data notice-repeats')); - } - - function showEnd() - { - $this->out->elementEnd('li'); - } -} - -// @todo FIXME: needs documentation. -class ThreadedNoticeListInlineRepeatsItem extends ThreadedNoticeListRepeatsItem -{ - function showStart() - { - $this->out->elementStart('div', array('class' => 'notice-repeats')); - } - - function showEnd() - { - $this->out->elementEnd('div'); - } -}