Revert "Revert "Return a 404 when a page is request that has no notices""

This reverts commit 1b204fde39.
This commit is contained in:
Evan Prodromou 2009-08-16 10:37:15 -04:00
parent e0815de960
commit b936a5166d
5 changed files with 65 additions and 37 deletions

View File

@ -25,11 +25,31 @@ require_once INSTALLDIR.'/lib/feedlist.php';
class AllAction extends ProfileAction class AllAction extends ProfileAction
{ {
var $notice;
function isReadOnly($args) function isReadOnly($args)
{ {
return true; return true;
} }
function prepare($args)
{
parent::prepare($args);
$cur = common_current_user();
if (!empty($cur) && $cur->id == $this->user->id) {
$this->notice = $this->user->noticeInbox(($this->page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
} else {
$this->notice = $this->user->noticesWithFriends(($this->page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
}
if($this->page > 1 && $this->notice->N == 0){
$this->serverError(_('No such page'),$code=404);
}
return true;
}
function handle($args) function handle($args)
{ {
parent::handle($args); parent::handle($args);
@ -100,15 +120,7 @@ class AllAction extends ProfileAction
function showContent() function showContent()
{ {
$cur = common_current_user(); $nl = new NoticeList($this->notice, $this);
if (!empty($cur) && $cur->id == $this->user->id) {
$notice = $this->user->noticeInbox(($this->page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
} else {
$notice = $this->user->noticesWithFriends(($this->page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
}
$nl = new NoticeList($notice, $this);
$cnt = $nl->show(); $cnt = $nl->show();

View File

@ -93,7 +93,7 @@ class PublicAction extends Action
return; return;
} }
if($this->page > 0 && $this->notice->N == 0){ if($this->page > 1 && $this->notice->N == 0){
$this->serverError(_('No such page'),$code=404); $this->serverError(_('No such page'),$code=404);
} }

View File

@ -48,6 +48,7 @@ require_once INSTALLDIR.'/lib/feedlist.php';
class RepliesAction extends OwnerDesignAction class RepliesAction extends OwnerDesignAction
{ {
var $page = null; var $page = null;
var $notice;
/** /**
* Prepare the object * Prepare the object
@ -84,6 +85,13 @@ class RepliesAction extends OwnerDesignAction
common_set_returnto($this->selfUrl()); common_set_returnto($this->selfUrl());
$this->notice = $this->user->getReplies(($this->page-1) * NOTICES_PER_PAGE,
NOTICES_PER_PAGE + 1);
if($this->page > 1 && $this->notice->N == 0){
$this->serverError(_('No such page'),$code=404);
}
return true; return true;
} }
@ -159,10 +167,7 @@ class RepliesAction extends OwnerDesignAction
function showContent() function showContent()
{ {
$notice = $this->user->getReplies(($this->page-1) * NOTICES_PER_PAGE, $nl = new NoticeList($this->notice, $this);
NOTICES_PER_PAGE + 1);
$nl = new NoticeList($notice, $this);
$cnt = $nl->show(); $cnt = $nl->show();
if (0 === $cnt) { if (0 === $cnt) {

View File

@ -114,6 +114,29 @@ class ShowfavoritesAction extends OwnerDesignAction
common_set_returnto($this->selfUrl()); common_set_returnto($this->selfUrl());
$cur = common_current_user();
if (!empty($cur) && $cur->id == $this->user->id) {
// Show imported/gateway notices as well as local if
// the user is looking at his own favorites
$this->notice = $this->user->favoriteNotices(($this->page-1)*NOTICES_PER_PAGE,
NOTICES_PER_PAGE + 1, true);
} else {
$this->notice = $this->user->favoriteNotices(($this->page-1)*NOTICES_PER_PAGE,
NOTICES_PER_PAGE + 1, false);
}
if (empty($this->notice)) {
$this->serverError(_('Could not retrieve favorite notices.'));
return;
}
if($this->page > 1 && $this->notice->N == 0){
$this->serverError(_('No such page'),$code=404);
}
return true; return true;
} }
@ -193,26 +216,7 @@ class ShowfavoritesAction extends OwnerDesignAction
function showContent() function showContent()
{ {
$cur = common_current_user(); $nl = new NoticeList($this->notice, $this);
if (!empty($cur) && $cur->id == $this->user->id) {
// Show imported/gateway notices as well as local if
// the user is looking at his own favorites
$notice = $this->user->favoriteNotices(($this->page-1)*NOTICES_PER_PAGE,
NOTICES_PER_PAGE + 1, true);
} else {
$notice = $this->user->favoriteNotices(($this->page-1)*NOTICES_PER_PAGE,
NOTICES_PER_PAGE + 1, false);
}
if (empty($notice)) {
$this->serverError(_('Could not retrieve favorite notices.'));
return;
}
$nl = new NoticeList($notice, $this);
$cnt = $nl->show(); $cnt = $nl->show();
if (0 == $cnt) { if (0 == $cnt) {

View File

@ -21,6 +21,9 @@ if (!defined('LACONICA')) { exit(1); }
class TagAction extends Action class TagAction extends Action
{ {
var $notice;
function prepare($args) function prepare($args)
{ {
parent::prepare($args); parent::prepare($args);
@ -42,6 +45,12 @@ class TagAction extends Action
common_set_returnto($this->selfUrl()); common_set_returnto($this->selfUrl());
$this->notice = Notice_tag::getStream($this->tag, (($this->page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE + 1);
if($this->page > 1 && $this->notice->N == 0){
$this->serverError(_('No such page'),$code=404);
}
return true; return true;
} }
@ -94,9 +103,7 @@ class TagAction extends Action
function showContent() function showContent()
{ {
$notice = Notice_tag::getStream($this->tag, (($this->page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE + 1); $nl = new NoticeList($this->notice, $this);
$nl = new NoticeList($notice, $this);
$cnt = $nl->show(); $cnt = $nl->show();