X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fnoticestreamaction.php;h=e668a27daf23830788c4a7d4e2c0f8e3a5eb1a78;hb=586fb5a5175d7a10f5f78dd026434e48202e5451;hp=ed8921860efa40744845d6d5f0c32ed01b15d7bf;hpb=c10a4cf6d2ea3f45622674a555898229ea99962c;p=quix0rs-gnu-social.git diff --git a/lib/noticestreamaction.php b/lib/noticestreamaction.php index ed8921860e..e668a27daf 100644 --- a/lib/noticestreamaction.php +++ b/lib/noticestreamaction.php @@ -9,9 +9,17 @@ abstract class NoticestreamAction extends ProfileAction protected function prepare(array $args=array()) { parent::prepare($args); + // In case we need more info than ProfileAction->doPreparation() gives us + $this->doStreamPreparation(); + // fetch the actual stream stuff - $stream = $this->getStream(); - $this->notice = $stream->getNotices(($this->page-1) * NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1); + try { + $stream = $this->getStream(); + $this->notice = $stream->getNotices(($this->page-1) * NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1); + } catch (PrivateStreamException $e) { + $this->notice = new Notice(); + $this->notice->whereAdd('FALSE'); + } if ($this->page > 1 && $this->notice->N == 0) { // TRANS: Client error when page not found (404). @@ -21,6 +29,23 @@ abstract class NoticestreamAction extends ProfileAction return true; } + protected function doStreamPreparation() + { + // pass by default + } + + public function extraHeaders() + { + parent::extraHeaders(); + foreach ($this->getFeeds() as $feed) { + header('Link: <'.htmlspecialchars($feed->getUrl()).'>;' . + ' rel="'.htmlspecialchars($feed->rel()).'";' . + ' type="'.htmlspecialchars($feed->mimeType()).'"', + false // don't overwrite previous headers of this sort + ); + } + } + // this fetches the NoticeStream abstract public function getStream(); }