fixed redirect bugs in file, image, and zip archive
added cache control headers to style added cache control headers to snippet added server side caching to snippet
This commit is contained in:
parent
404749e32b
commit
da9c26d72c
7 changed files with 45 additions and 4 deletions
|
|
@ -95,6 +95,7 @@ sub changeCache {
|
|||
$session->db->write("alter table Folder add column visitorCacheTimeout int not null default 3600");
|
||||
$session->db->write("alter table HttpProxy add column cacheTimeout int not null default 0");
|
||||
$session->db->write("alter table SQLReport add column cacheTimeout int not null default 0");
|
||||
$session->db->write("alter table Snippet add column cacheTimeout int not null default 3600");
|
||||
$session->db->write("alter table FileAsset add column cacheTimeout int not null default 3600");
|
||||
$session->db->write("alter table Product add column cacheTimeout int not null default 3600");
|
||||
$session->db->write("alter table SyndicatedContent add column cacheTimeout int not null default 3600");
|
||||
|
|
|
|||
|
|
@ -319,7 +319,7 @@ sub www_view {
|
|||
}
|
||||
my $storage = $self->getStorageLocation;
|
||||
$self->session->http->setRedirect($storage->getUrl($self->get("filename")));
|
||||
return "";
|
||||
return "1";
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -309,7 +309,7 @@ sub www_view {
|
|||
return $self->getContainer->www_view;
|
||||
}
|
||||
$self->session->http->setRedirect($self->getFileUrl($self->getValue("showPage")));
|
||||
return "";
|
||||
return "1";
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ use strict;
|
|||
use WebGUI::Asset;
|
||||
use WebGUI::Asset::Template;
|
||||
use WebGUI::Macro;
|
||||
use HTTP::Date;
|
||||
|
||||
our @ISA = qw(WebGUI::Asset);
|
||||
|
||||
|
|
@ -71,6 +72,14 @@ sub definition {
|
|||
fieldType=>'codearea',
|
||||
defaultValue=>undef
|
||||
},
|
||||
cacheTimeout => {
|
||||
tab => "display",
|
||||
fieldType => "interval",
|
||||
defaultValue => 3600,
|
||||
uiLevel => 8,
|
||||
label => $i18n->get("cache timeout"),
|
||||
hoverHelp => $i18n->get("cache timeout help")
|
||||
},
|
||||
processAsTemplate=>{
|
||||
fieldType=>'yesNo',
|
||||
defaultValue=>0
|
||||
|
|
@ -157,11 +166,20 @@ sub indexContent {
|
|||
sub view {
|
||||
my $self = shift;
|
||||
my $calledAsWebMethod = shift;
|
||||
if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) {
|
||||
my $out = WebGUI::Cache->new($self->session,"view_".$calledAsWebMethod."_".$self->getId)->get;
|
||||
return $out if $out;
|
||||
}
|
||||
my $output = $self->get("snippet");
|
||||
WebGUI::Macro::process($self->session,\$output);
|
||||
$output = $self->getToolbar.$output if ($self->session->var->get("adminOn") && !$calledAsWebMethod);
|
||||
return $output unless ($self->getValue("processAsTemplate"));
|
||||
return WebGUI::Asset::Template->processRaw($self->session, $output);
|
||||
unless ($self->getValue("processAsTemplate")) {
|
||||
$output = WebGUI::Asset::Template->processRaw($self->session, $output);
|
||||
}
|
||||
if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) {
|
||||
WebGUI::Cache->new($self->session,"view_".$calledAsWebMethod."_".$self->getId)->set($output,$self->get("cacheTimeout"));
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -185,6 +203,12 @@ sub www_view {
|
|||
my $self = shift;
|
||||
my $mimeType=$self->getValue('mimeType');
|
||||
$self->session->http->setMimeType($mimeType || 'text/html');
|
||||
my $request = $self->session->request;
|
||||
if (defined $request && $request->protocol =~ /(\d\.\d)/ && $1 >= 1.1){
|
||||
$request->header_out('Cache-Control', "max-age=" . $self->get("cacheTimeout"));
|
||||
} elsif (defined $request) {
|
||||
$request->header_out('Expires', HTTP::Date::time2str(time + $self->get("cacheTimeout")));
|
||||
}
|
||||
return $self->view(1);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,11 @@ our $HELP = {
|
|||
title => 'snippet add/edit title',
|
||||
body => 'snippet add/edit body',
|
||||
fields => [
|
||||
{
|
||||
title => 'cache timeout',
|
||||
namespace => 'Asset_File',
|
||||
description => 'cache timeout help'
|
||||
},
|
||||
{
|
||||
title => 'assetName',
|
||||
description => 'snippet description',
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ if ($self->session->user->isInGroup(2)) {
|
|||
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate, max-age=0" />
|
||||
<meta http-equiv="Expires" content="0" />
|
||||
';
|
||||
$self->session->request->no_cache(1) if ($self->session->request);
|
||||
}
|
||||
my $style = WebGUI::Asset::Template->new($self->session,$templateId);
|
||||
my $output;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,16 @@ package WebGUI::i18n::English::Asset_Snippet;
|
|||
|
||||
our $I18N = {
|
||||
|
||||
'cache timeout' => {
|
||||
message => q|Cache Timeout|,
|
||||
lastUpdated => 0
|
||||
},
|
||||
|
||||
'cache timeout help' => {
|
||||
message => q|Since all users will see this asset the same way, we can cache it for long periods of time to increase performance. How long should we cache it?<br /> <br /><b>UI Level: 8</b>|,
|
||||
lastUpdated => 0
|
||||
},
|
||||
|
||||
'assetName' => {
|
||||
message => q|Snippet|,
|
||||
lastUpdated => 1128830080,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue