]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Return a 404 when a page is request that has no notices
authorCraig Andrews <candrews@integralblue.com>
Wed, 12 Aug 2009 02:09:02 +0000 (22:09 -0400)
committerCraig Andrews <candrews@integralblue.com>
Wed, 12 Aug 2009 02:09:02 +0000 (22:09 -0400)
actions/public.php

index dd128925b5eb2087159ce226970e692402413df3..ca352faf85a068ea20d79db458248f9348e381c2 100644 (file)
@@ -59,6 +59,7 @@ class PublicAction extends Action
      */
 
     var $page = null;
+    var $notice;
 
     function isReadOnly($args)
     {
@@ -84,6 +85,18 @@ class PublicAction extends Action
 
         common_set_returnto($this->selfUrl());
 
+        $this->notice = Notice::publicStream(($this->page-1)*NOTICES_PER_PAGE,
+                                       NOTICES_PER_PAGE + 1);
+
+        if (!$this->notice) {
+            $this->serverError(_('Could not retrieve public stream.'));
+            return;
+        }
+
+        if($this->page > 0 && $this->notice->N == 0){
+            $this->serverError(_('No such page'),$code=404);
+        }
+
         return true;
     }
 
@@ -204,15 +217,7 @@ class PublicAction extends Action
 
     function showContent()
     {
-        $notice = Notice::publicStream(($this->page-1)*NOTICES_PER_PAGE,
-                                       NOTICES_PER_PAGE + 1);
-
-        if (!$notice) {
-            $this->serverError(_('Could not retrieve public stream.'));
-            return;
-        }
-
-        $nl = new NoticeList($notice, $this);
+        $nl = new NoticeList($this->notice, $this);
 
         $cnt = $nl->show();