added page caching

This commit is contained in:
JT Smith 2003-06-22 20:18:58 +00:00
parent 5567669b4f
commit 1eb72cc633
6 changed files with 74 additions and 25 deletions

View file

@ -277,11 +277,15 @@ sub page {
$content = WebGUI::Macro::process(WebGUI::Template::process(WebGUI::Style::get($pageEdit.WebGUI::Page::getTemplate($template)), $positions));
my $ttl;
if ($session{user}{userId} == 1) {
$ttl = $session{setting}{cachePagesVisitor};
$ttl = $session{page}{cacheTimeoutVisitor};
WebGUI::ErrorHandler::warn("setting visitor cache");
} else {
$ttl = $session{setting}{cachePages};
$ttl = $session{page}{cacheTimeout};
WebGUI::ErrorHandler::warn("setting user cache");
}
$cache->set($content, $ttl) if ($useCache);
} else {
WebGUI::ErrorHandler::warn("using cache");
}
$debug = _generateDebug();
WebGUI::Session::close();

View file

@ -32,7 +32,6 @@ our @EXPORT = qw(&www_viewPageTree &www_movePageUp &www_movePageDown
&www_editPageSave &www_pastePage &www_moveTreePageUp
&www_moveTreePageDown &www_moveTreePageLeft &www_moveTreePageRight);
#Method Added By Frank Dillon - Changes Wobject Privileges on a page
#-------------------------------------------------------------------
sub _changeWobjectPrivileges {
my($wobject,$sth);
@ -48,9 +47,7 @@ sub _changeWobjectPrivileges {
sub _recursivelyChangePrivileges {
my ($sth, $pageId);
$sth = WebGUI::SQL->read("select pageId from page where parentId=$_[0]");
#--Added By Frank Dillon - Change the Wobject Privileges on the current page
_changeWobjectPrivileges($_[0]);
#--End Changes
_changeWobjectPrivileges($_[0]);
while (($pageId) = $sth->array) {
if (WebGUI::Privilege::canEditPage($pageId)) {
WebGUI::SQL->write("update page set startDate=$session{form}{startDate},
@ -343,6 +340,22 @@ sub www_editPage {
-value=>$page{defaultMetaTags},
-uiLevel=>5
);
my @data = WebGUI::DateTime::secondsToInterval($page{cacheTimeout});
$f->getTab("properties")->interval(
-name=>"cacheTimeout",
-label=>WebGUI::International::get(895),
-intervalValue=>$data[0],
-unitsValue=>$data[1],
-uiLevel=>8
);
@data = WebGUI::DateTime::secondsToInterval($page{cacheTimeoutVisitor});
$f->getTab("properties")->interval(
-name=>"cacheTimeoutVisitor",
-label=>WebGUI::International::get(896),
-intervalValue=>$data[0],
-unitsValue=>$data[1],
-uiLevel=>8
);
%hash = WebGUI::SQL->buildHash("select styleId,name from style where name<>'Reserved' order by name");
if (WebGUI::Privilege::isInGroup(5)) {
$subtext = ' &nbsp; <a href="'.WebGUI::URL::page('op=listStyles')
@ -470,8 +483,6 @@ sub www_editPageSave {
$session{form}{menuTitle} = $session{form}{title} if ($session{form}{menuTitle} eq "");
$session{form}{urlizedTitle} = $session{form}{menuTitle} if ($session{form}{urlizedTitle} eq "");
$session{form}{urlizedTitle} = WebGUI::Page::makeUnique(WebGUI::URL::urlize($session{form}{urlizedTitle}),$session{form}{pageId});
$session{form}{startDate} = WebGUI::FormProcessor::dateTime("startDate");
$session{form}{endDate} = WebGUI::FormProcessor::dateTime("endDate");
WebGUI::SQL->write("update page set
title=".quote($session{form}{title}).",
styleId=$session{form}{styleId},
@ -480,8 +491,10 @@ sub www_editPageSave {
groupIdEdit=$session{form}{groupIdEdit},
newWindow=$session{form}{newWindow},
hideFromNavigation=$session{form}{hideFromNavigation},
startDate=$session{form}{startDate},
endDate=$session{form}{endDate},
startDate=".WebGUI::FormProcessor::dateTime("startDate").",
endDate=".WebGUI::FormProcessor::dateTime("endDate").",
cacheTimeout=".WebGUI::FormProcessor::interval("cacheTimeout").",
cacheTimeoutVisitor=".WebGUI::FormProcessor::interval("cacheTimeoutVisitor").",
metaTags=".quote($session{form}{metaTags}).",
urlizedTitle='$session{form}{urlizedTitle}',
redirectURL='$session{form}{redirectURL}',

View file

@ -109,21 +109,7 @@ sub www_editContentSettings {
$f->integer("textAreaRows",WebGUI::International::get(463),$session{setting}{textAreaRows});
$f->integer("textAreaCols",WebGUI::International::get(464),$session{setting}{textAreaCols});
$f->integer("textBoxSize",WebGUI::International::get(465),$session{setting}{textBoxSize});
my @data = WebGUI::DateTime::secondsToInterval($session{setting}{cachePages});
$f->interval(
-name=>"cachePages",
-label=>WebGUI::International::get(895),
-intervalValue=>$data[0],
-unitsValue=>$data[1]
);
@data = WebGUI::DateTime::secondsToInterval($session{setting}{cachePagesVisitor});
$f->interval(
-name=>"cachePagesVisitor",
-label=>WebGUI::International::get(896),
-intervalValue=>$data[0],
-unitsValue=>$data[1]
);
$f->yesNo("wobjectPrivileges",WebGUI::International::get(979),$session{setting}{wobjectPrivileges});
$f->yesNo("wobjectPrivileges",WebGUI::International::get(979),$session{setting}{wobjectPrivileges});
$f->submit;
$output .= $f->print;
return _submenu($output);

View file

@ -120,6 +120,28 @@ sub countTemplatePositions {
#-------------------------------------------------------------------
=head2 deCache ( [ pageId ] )
Deletes the cached version of a specified page.
=over
=item pageId
The id of the page to decache. Defaults to the current page id.
=back
=cut
sub deCache {
my $cache = WebGUI::Cache->new;
my $pageId = $_[0] || $session{page}{pageId};
$cache->deleteByRegex("m/^page_".$pageId."_\\d+\$/");
}
#-------------------------------------------------------------------
=head2 drawTemplate ( templateId )
Returns an HTML string containing a small representation of the page template.