X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FNotice.php;h=8f4d63c8927a6a4e7e5809c4ea44a65b6b8bba43;hb=0f938ff23479d92113620552eab76b50613c87e3;hp=1b6edb4cd34e659f7bc715d7443ad968741a85d3;hpb=c950f1854623f0df2a50c193f624f0a0bf1fcbb3;p=quix0rs-gnu-social.git diff --git a/classes/Notice.php b/classes/Notice.php index 1b6edb4cd3..8f4d63c892 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -845,7 +845,6 @@ class Notice extends Managed_DataObject // If the original is private to a group, and notice has no group specified, // make it to the same group(s) if (empty($groups) && ($reply->scope & Notice::GROUP_SCOPE)) { - $groups = array(); $replyGroups = $reply->getGroups(); foreach ($replyGroups as $group) { if ($actor->isMember($group)) { @@ -958,11 +957,11 @@ class Notice extends Managed_DataObject // Save per-notice metadata... $mentions = array(); - $groups = array(); + $group_ids = array(); // This event lets plugins filter out non-local recipients (attentions we don't care about) // Used primarily for OStatus (and if we don't federate, all attentions would be local anyway) - Event::handle('GetLocalAttentions', array($actor, $act->context->attention, &$mentions, &$groups)); + Event::handle('GetLocalAttentions', array($actor, $act->context->attention, &$mentions, &$group_ids)); if (!empty($mentions)) { $stored->saveKnownReplies($mentions); @@ -980,7 +979,7 @@ class Notice extends Managed_DataObject // to avoid errors on duplicates. // Note: groups should always be set. - $stored->saveKnownGroups($groups); + $stored->saveKnownGroups($group_ids); if (!empty($urls)) { $stored->saveKnownUrls($urls); @@ -1505,13 +1504,8 @@ class Notice extends Managed_DataObject * best with generalizations on user_group to support * remote groups better. */ - function saveKnownGroups($group_ids) + function saveKnownGroups(array $group_ids) { - if (!is_array($group_ids)) { - // TRANS: Server exception thrown when no array is provided to the method saveKnownGroups(). - throw new ServerException(_('Bad type provided to saveKnownGroups.')); - } - $groups = array(); foreach (array_unique($group_ids) as $id) { $group = User_group::getKV('id', $id); @@ -2775,10 +2769,24 @@ class Notice extends Managed_DataObject public function getParent() { + $reply_to_id = null; + if (empty($this->reply_to)) { throw new NoParentNoticeException($this); } - return self::getByID($this->reply_to); + + // The reply_to ID in the table Notice could exist with a number + // however, the replied to notice might not exist in the database. + // Thus we need to catch the exception and throw the NoParentNoticeException else + // the timeline will not display correctly. + try { + $reply_to_id = self::getByID($this->reply_to); + } catch(Exception $e){ + throw new NoParentNoticeException($this); + } + + + return $reply_to_id; } /**