Multiple fixes:

- Probably fix "more-geturl-bugs", but hard to verify.
  - Fix "last-modified-problem", approximately.  (Difficult or impossible
    in the general case for externally-retrieved content.)
  - Fix "rss-syndication".
  - Fix unnamed bug where Database caches would try to Storable::freeze
    non-references and thereby crash.
  - Fix "apache-version-component-in-wrong-place".
This commit is contained in:
Drake 2006-08-29 16:44:41 +00:00
parent 6f86645097
commit 936054ba19
7 changed files with 112 additions and 23 deletions

View file

@ -273,6 +273,18 @@ sub www_setContentPositions {
return "Map set: ".$self->session->form->process("map");
}
#-------------------------------------------------------------------
sub getContentLastModified {
# Buggo: this is a little too conservative. Children that are hidden maybe shouldn't count. Hm.
my $self = shift;
my $mtime = $self->get("revisionDate");
foreach my $child (@{$self->getLineage(["children"],{returnObjects=>1, excludeClasses=>['WebGUI::Asset::Wobject::Layout']})}) {
my $child_mtime = $child->getContentLastModified;
$mtime = $child_mtime if ($child_mtime > $mtime);
}
return $mtime;
}
#-------------------------------------------------------------------
sub www_view {
my $self = shift;
@ -296,7 +308,7 @@ sub www_view {
my $ad = $adSpace->displayImpression if (defined $adSpace);
$out =~ s/\Q$code/$ad/ges;
}
$self->session->http->setLastModified($self->get("revisionDate"));
$self->session->http->setLastModified($self->getContentLastModified);
$self->session->http->sendHeader;
$self->session->output->print($out, 1);
return "chunked";