From c26e08d6a69ad4dee30d05ec63032fac7436f2f5 Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Fri, 5 Jun 2015 21:49:34 +0200 Subject: [PATCH] some more extensions of ShowstreamAction broke in last commit --- actions/all.php | 14 ++++---------- actions/replies.php | 34 +++------------------------------- actions/showstream.php | 13 ++++++++++++- lib/profileaction.php | 5 +++++ 4 files changed, 24 insertions(+), 42 deletions(-) diff --git a/actions/all.php b/actions/all.php index 9cab91264f..886117e6a4 100644 --- a/actions/all.php +++ b/actions/all.php @@ -35,13 +35,13 @@ * @link http://status.net */ -if (!defined('GNUSOCIAL') && !defined('STATUSNET')) { exit(1); } +if (!defined('GNUSOCIAL')) { exit(1); } -class AllAction extends ProfileAction +class AllAction extends ShowstreamAction { var $notice; - protected function profileActionPreparation() + protected function getStream() { if ($this->scoped instanceof Profile && $this->scoped->isLocal() && $this->scoped->getUser()->streamModeOnly()) { $stream = new InboxNoticeStream($this->target, $this->scoped); @@ -49,13 +49,7 @@ class AllAction extends ProfileAction $stream = new ThreadingInboxNoticeStream($this->target, $this->scoped); } - $this->notice = $stream->getNotices(($this->page-1)*NOTICES_PER_PAGE, - NOTICES_PER_PAGE + 1); - - if ($this->page > 1 && $this->notice->N == 0) { - // TRANS: Client error when page not found (404). - $this->clientError(_('No such page.'), 404); - } + return $stream; } function title() diff --git a/actions/replies.php b/actions/replies.php index 49098d0950..3c7e950d01 100644 --- a/actions/replies.php +++ b/actions/replies.php @@ -38,42 +38,14 @@ if (!defined('GNUSOCIAL')) { exit(1); } * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ -class RepliesAction extends ManagedAction +class RepliesAction extends ShowstreamAction { var $page = null; var $notice; - protected function doPreparation() + protected function getStream() { - $nickname = common_canonical_nickname($this->arg('nickname')); - - $this->user = User::getKV('nickname', $nickname); - - if (!$this->user instanceof User) { - // TRANS: Client error displayed when trying to reply to a non-exsting user. - $this->clientError(_('No such user.')); - } - - $this->target = $this->user->getProfile(); - - if (!$this->target instanceof Profile) { - // TRANS: Error message displayed when referring to a user without a profile. - $this->serverError(_('User has no profile.')); - } - - $this->page = $this->int('page') ?: 1; - - common_set_returnto($this->selfUrl()); - - $stream = new ReplyNoticeStream($this->target->getID(), $this->scoped); - - $this->notice = $stream->getNotices(($this->page-1) * NOTICES_PER_PAGE, - NOTICES_PER_PAGE + 1); - - if ($this->page > 1 && $this->notice->N == 0) { - // TRANS: Client error when page not found (404) - $this->clientError(_('No such page.'), 404); - } + return new ReplyNoticeStream($this->target->getID(), $this->scoped); } /** diff --git a/actions/showstream.php b/actions/showstream.php index ee9891092c..8e8b055b4b 100644 --- a/actions/showstream.php +++ b/actions/showstream.php @@ -79,6 +79,17 @@ class ShowstreamAction extends ProfileAction } protected function profileActionPreparation() + { + $stream = $this->getStream(); + $this->notice = $stream->getNotices(($this->page-1) * NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1); + + if ($this->page > 1 && $this->notice->N == 0) { + // TRANS: Client error when page not found (404). + $this->clientError(_('No such page.'), 404); + } + } + + protected function getStream() { if (empty($this->tag)) { $stream = new ProfileNoticeStream($this->target, $this->scoped); @@ -86,7 +97,7 @@ class ShowstreamAction extends ProfileAction $stream = new TaggedProfileNoticeStream($this->target, $this->tag, $this->scoped); } - $this->notice = $stream->getNotices(($this->page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1); + return $stream; } diff --git a/lib/profileaction.php b/lib/profileaction.php index b1a3b72a44..08e03bac5a 100644 --- a/lib/profileaction.php +++ b/lib/profileaction.php @@ -71,6 +71,11 @@ abstract class ProfileAction extends ManagedAction return true; } + protected function profileActionPreparation() + { + // Nothing to do by default. + } + public function getTarget() { return $this->target;