]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/noticestreamaction.php
Merge branch 'master' into mmn_fixes
[quix0rs-gnu-social.git] / lib / noticestreamaction.php
index 39c19d551f0500110f8c8d1520eb1a6233694d12..fb592915a7cd3ac9defdbbc7ba519021b3e04a5a 100644 (file)
@@ -4,13 +4,22 @@ if (!defined('GNUSOCIAL')) { exit(1); }
 
 abstract class NoticestreamAction extends ProfileAction
 {
+    protected $notice = null;   // holds the stream result
 
     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).
@@ -20,6 +29,11 @@ abstract class NoticestreamAction extends ProfileAction
         return true;
     }
 
+    protected function doStreamPreparation()
+    {
+        // pass by default
+    }
+
     // this fetches the NoticeStream
     abstract public function getStream();
 }