X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fshownotice.php;h=b2385ec1d7b71edcbe3f1ffbf07a0309ec1b412b;hb=4d17d9533552ea620b83109c550e250a5c236291;hp=4a1adfd7de938aac1061cb6d93c93e01363c736b;hpb=8fac7a9f6c01b2bb0033584d792296cc19b871d2;p=quix0rs-gnu-social.git diff --git a/actions/shownotice.php b/actions/shownotice.php index 4a1adfd7de..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,36 +214,35 @@ 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)')))); } /** * Extra content * - * We show the microid(s) for the author, if any. + * Facebook OpenGraph metadata. * * @return void */ function extraHead() { - $user = User::getKV($this->profile->id); - - if (!$user instanceof User) { - return; - } - - if ($user->emailmicroid && $user->email && $this->notice->uri) { - $id = new Microid('mailto:'. $user->email, - $this->notice->uri); - $this->element('meta', array('name' => 'microid', - 'content' => $id->toString())); - } - // Extras to aid in sharing notices to Facebook $avatarUrl = $this->profile->avatarUrl(AVATAR_PROFILE_SIZE); $this->element('meta', array('property' => 'og:image',