X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fatomnoticefeed.php;h=b7e1ed1b41c1178cb8b1ff1f44c4b670f3f06f19;hb=3251ef3b518ef9db55fbab0693d8b0f654dcda58;hp=6ed803ce4ebb35a0350f669b26fc098b896a3585;hpb=d9e56e15cc3174093fc994e524d1d9cf402ae8a3;p=quix0rs-gnu-social.git diff --git a/lib/atomnoticefeed.php b/lib/atomnoticefeed.php index 6ed803ce4e..b7e1ed1b41 100644 --- a/lib/atomnoticefeed.php +++ b/lib/atomnoticefeed.php @@ -45,6 +45,7 @@ if (!defined('STATUSNET')) class AtomNoticeFeed extends Atom10Feed { var $cur; + protected $scoped=null; /** * Constructor - adds a bunch of XML namespaces we need in our @@ -58,7 +59,8 @@ class AtomNoticeFeed extends Atom10Feed function __construct($cur = null, $indent = true) { parent::__construct($indent); - $this->cur = $cur; + $this->cur = $cur ?: common_current_user(); + $this->scoped = !is_null($this->cur) ? $this->cur->getProfile() : null; // Feeds containing notice info use these namespaces @@ -111,10 +113,12 @@ class AtomNoticeFeed extends Atom10Feed foreach ($notices as $notice) { $this->addEntryFromNotice($notice); } - } else { + } elseif ($notices instanceof Notice) { while ($notices->fetch()) { $this->addEntryFromNotice($notices); } + } else { + throw new ServerException('addEntryFromNotices got neither an array nor a Notice object'); } } @@ -123,14 +127,17 @@ class AtomNoticeFeed extends Atom10Feed * * @param Notice $notice a Notice to add */ - function addEntryFromNotice($notice) + function addEntryFromNotice(Notice $notice) { - $source = $this->showSource(); - $author = $this->showAuthor(); - - $cur = empty($this->cur) ? common_current_user() : $this->cur; - - $this->addEntryRaw($notice->asAtomEntry(false, $source, $author, $cur)); + try { + $source = $this->showSource(); + $author = $this->showAuthor(); + + $this->addEntryRaw($notice->asAtomEntry(false, $source, $author, $this->scoped)); + } catch (Exception $e) { + common_log(LOG_ERR, $e->getMessage()); + // we continue on exceptions + } } function showSource()