Fix: CS pagination not working for visitors due to caching error

This commit is contained in:
Drake 2006-09-01 03:54:51 +00:00
parent 58449bb158
commit 8045055d12
2 changed files with 20 additions and 4 deletions

View file

@ -1101,10 +1101,23 @@ sub unsubscribe {
#-------------------------------------------------------------------
sub _visitorCacheOk {
my $self = shift;
return ($self->session->user->userId eq '1'
&& !$self->session->form->process('sortBy'));
}
sub _visitorCacheKey {
my $self = shift;
my $pn = $self->session->form->process('pn');
return "view_".$self->getId."?pn=".$pn;
}
sub view {
my $self = shift;
if ($self->session->user->userId eq '1' && !$self->session->form->process("sortBy")) {
my $out = WebGUI::Cache->new($self->session,"view_".$self->getId)->get;
if ($self->_visitorCacheOk) {
my $out = WebGUI::Cache->new($self->session,$self->_visitorCacheKey)->get;
$self->session->errorHandler->debug("HIT") if $out;
return $out if $out;
}
my $scratchSortBy = $self->getId."_sortBy";
@ -1163,8 +1176,10 @@ sub view {
# is called through the api.
$self->prepareView unless ($self->{_viewTemplate});
my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate});
if ($self->session->user->userId eq '1' && !$self->session->form->process("sortBy")) {
WebGUI::Cache->new($self->session,"view_".$self->getId)->set($out,$self->get("visitorCacheTimeout"));
if ($self->_visitorCacheOk) {
WebGUI::Cache->new($self->session,$self->_visitorCacheKey)
->set($out,$self->get("visitorCacheTimeout"));
$self->session->errorHandler->debug("MISS");
}
return $out;
}