X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fshownotice.php;h=b2385ec1d7b71edcbe3f1ffbf07a0309ec1b412b;hb=4d17d9533552ea620b83109c550e250a5c236291;hp=23386868ddbc1b042b3151b29340b952c86cf35c;hpb=91c1ab601726d6dd1fc13236be7723929d7dad9a;p=quix0rs-gnu-social.git diff --git a/actions/shownotice.php b/actions/shownotice.php index 23386868dd..b2385ec1d7 100644 --- a/actions/shownotice.php +++ b/actions/shownotice.php @@ -74,6 +74,7 @@ class ShownoticeAction extends ManagedAction } $this->notice = $this->getNotice(); + $this->target = $this->notice; if (!$this->notice->inScope($this->scoped)) { // TRANS: Client exception thrown when trying a view a notice the user has no access to. @@ -113,20 +114,22 @@ class ShownoticeAction extends ManagedAction { $id = $this->arg('notice'); - $notice = Notice::getKV('id', $id); - if ($notice instanceof Notice) { + $notice = null; + try { + $notice = Notice::getByID($id); // Alright, got it! return $notice; - } - - // Did we use to have it, and it got deleted? - $deleted = Deleted_notice::getKV('id', $id); - if ($deleted instanceof Deleted_notice) { - // TRANS: Client error displayed trying to show a deleted notice. - $this->clientError(_('Notice deleted.'), 410); + } catch (NoResultException $e) { + // Hm, not found. + $deleted = null; + Event::handle('IsNoticeDeleted', array($id, &$deleted)); + if ($deleted === true) { + // TRANS: Client error displayed trying to show a deleted notice. + throw new ClientException(_('Notice deleted.'), 410); + } } // TRANS: Client error displayed trying to show a non-existing notice. - $this->clientError(_('No such notice.'), 404); + throw new ClientException(_('No such notice.'), 404); } /** @@ -211,12 +214,24 @@ class ShownoticeAction extends ManagedAction { } - /** - * Don't show aside - * - * @return void - */ - function showAside() { + function getFeeds() + { + return array(new Feed(Feed::JSON, + common_local_url('ApiStatusesShow', + array( + 'id' => $this->target->getID(), + 'format' => 'json')), + // TRANS: Title for link to single notice representation. + // TRANS: %s is a user nickname. + sprintf(_('Single notice (JSON)'))), + new Feed(Feed::ATOM, + common_local_url('ApiStatusesShow', + array( + 'id' => $this->target->getID(), + 'format' => 'atom')), + // TRANS: Title for link to notice feed. + // TRANS: %s is a user nickname. + sprintf(_('Single notice (Atom)')))); } /**