style and page template migrations complete
This commit is contained in:
parent
de758d8dfe
commit
5d0faf0e3f
12 changed files with 354 additions and 409 deletions
|
|
@ -7,6 +7,15 @@ upgrading from one version to the next, or even between multiple
|
|||
versions. Be sure to heed the warnings contained herein as they will
|
||||
save you many hours of grief.
|
||||
|
||||
6.0.0
|
||||
--------------------------------------------------------------------
|
||||
* You MUST clear your filesystem cache or WebGUI will crash. It is
|
||||
typically in /tmp/FileCache. A command like the following
|
||||
run as the super user will do the job nicely:
|
||||
|
||||
rm -Rf /tmp/FileCache
|
||||
|
||||
|
||||
5.5.0
|
||||
--------------------------------------------------------------------
|
||||
* If you have any custom Message Board templates they will be
|
||||
|
|
|
|||
3
docs/temp.sql
Normal file
3
docs/temp.sql
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# add this stuff to previousVersion.sql just before 6.0 release
|
||||
|
||||
delete from style where styleId < 0;
|
||||
126
docs/upgrades/upgrade_5.5.3-6.0.0.pl
Normal file
126
docs/upgrades/upgrade_5.5.3-6.0.0.pl
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
use lib "../../lib";
|
||||
use Getopt::Long;
|
||||
use Parse::PlainConfig;
|
||||
use strict;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::SQL;
|
||||
|
||||
my $configFile;
|
||||
my $quiet;
|
||||
GetOptions(
|
||||
'configFile=s'=>\$configFile,
|
||||
'quiet'=>\$quiet
|
||||
);
|
||||
WebGUI::Session::open("../..",$configFile);
|
||||
|
||||
|
||||
#--------------------------------------------
|
||||
print "\tMigrating styles.\n" unless ($quiet);
|
||||
my $sth = WebGUI::SQL->read("select * from style");
|
||||
while (my $style = $sth->hashRef) {
|
||||
my ($header,$footer) = split(/\^\-\;/,$style->{body});
|
||||
my ($newStyleId) = WebGUI::SQL->quickArray("select max(templateId) from template where namespace='style'");
|
||||
if ($style->{styleId} > 0 && $style->{styleId} < 25) {
|
||||
$newStyleId = $style->{styleId};
|
||||
} elsif ($newStyleId > 999) {
|
||||
$newStyleId++;
|
||||
} else {
|
||||
$newStyleId = 1000;
|
||||
}
|
||||
my $newStyle = $session{setting}{docTypeDec}.'
|
||||
<html>
|
||||
<head>
|
||||
<title><tmpl_var session.page.title> - <tmpl_var session.setting.companyName></title>
|
||||
<tmpl_var head.tags>
|
||||
'.$style->{styleSheet}.'
|
||||
</head>
|
||||
'.$header.'
|
||||
<tmpl_var body.content>
|
||||
'.$footer.'
|
||||
</html>
|
||||
';
|
||||
WebGUI::SQL->write("insert into template (templateId, name, template, namespace) values (".$newStyleId.",
|
||||
".quote($style->{name}).", ".quote($newStyle).", 'style')");
|
||||
WebGUI::SQL->write("update page set styleId=".$newStyleId." where styleId=".$style->{styleId});
|
||||
WebGUI::SQL->write("update themeComponent set id=".$newStyleId.", type='template' where id=".$style->{styleId}." and type='style'");
|
||||
}
|
||||
$sth->finish;
|
||||
WebGUI::SQL->write("delete from incrementer where incrementerId='styleId'");
|
||||
WebGUI::SQL->write("delete from settings where name='docTypeDec'");
|
||||
WebGUI::SQL->write("drop table style");
|
||||
|
||||
|
||||
#--------------------------------------------
|
||||
print "\tMigrating page templates.\n" unless ($quiet);
|
||||
my $sth = WebGUI::SQL->read("select * from template where namespace='Page'");
|
||||
while (my $template = $sth->hashRef) {
|
||||
#eliminate the need for compatibility with old-style page templates
|
||||
$template->{template} =~ s/\^(\d+)\;/_positionFormat5x($1)/eg;
|
||||
$template->{template} = '
|
||||
<tmpl_if session.var.adminOn>
|
||||
<style>
|
||||
div.wobject:hover {
|
||||
border: 1px outset #cccccc;
|
||||
}
|
||||
</style>
|
||||
</tmpl_if>
|
||||
<tmpl_if session.var.adminOn> <tmpl_if page.canEdit>
|
||||
<tmpl_var page.toolbar>
|
||||
</tmpl_if> </tmpl_if>
|
||||
'.$template->{template};
|
||||
$template->{template} =~ s/\<tmpl_var page\.position(\d+)\>/_positionFormat6x($1)/eg;
|
||||
WebGUI::SQL->write("update template set namespace='page', template=".quote($template->{template})
|
||||
." where templateId=".$template->{templateId}." and namespace='Page'");
|
||||
}
|
||||
$sth->finish;
|
||||
|
||||
#--------------------------------------------
|
||||
#print "\tUpdating config file.\n" unless ($quiet);
|
||||
#my $pathToConfig = '../../etc/'.$configFile;
|
||||
#my $conf = Parse::PlainConfig->new('DELIM' => '=', 'FILE' => $pathToConfig);
|
||||
#my $wobjects = $conf->get("wobjects");
|
||||
#$conf->set("wobjects"=>$wobjects);
|
||||
#$conf->write;
|
||||
|
||||
|
||||
|
||||
#--------------------------------------------
|
||||
print "\tRemoving unneeded files.\n" unless ($quiet);
|
||||
unlink("../../lib/WebGUI/Operation/Style.pm");
|
||||
#unlink("../../lib/WebGUI/Wobject/LinkList.pm");
|
||||
#unlink("../../lib/WebGUI/Wobject/FAQ.pm");
|
||||
|
||||
|
||||
|
||||
|
||||
WebGUI::Session::close();
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub _positionFormat5x {
|
||||
return "<tmpl_var page.position".($_[0]+1).">";
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub _positionFormat6x {
|
||||
my $newPositionCode = '
|
||||
<tmpl_loop position'.$_[0].'_loop>
|
||||
<tmpl_if wobject.canView>
|
||||
<div class="wobject"> <div class="wobject<tmpl_var wobject.namespace>" id="wobjectId<tmpl_var wobject.id>">
|
||||
<tmpl_if session.var.adminOn> <tmpl_if wobject.canEdit>
|
||||
<tmpl_var wobject.toolbar>
|
||||
</tmpl_if> </tmpl_if>
|
||||
<tmpl_if wobject.isInDateRange>
|
||||
<a name="<tmpl_var wobject.id>"></a>
|
||||
<tmpl_var wobject.content>
|
||||
</tmpl_if wobject.isInDateRange>
|
||||
</div> </div>
|
||||
</tmpl_if>
|
||||
</tmpl_loop>
|
||||
';
|
||||
return $newPositionCode;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1,2 +1,14 @@
|
|||
insert into webguiVersion values ('6.0.0','upgrade',unix_timestamp());
|
||||
|
||||
delete from international where internationalId=158 and namespace='WebGUI';
|
||||
delete from international where internationalId=803 and namespace='WebGUI';
|
||||
delete from international where internationalId=804 and namespace='WebGUI';
|
||||
delete from international where internationalId=805 and namespace='WebGUI';
|
||||
delete from international where internationalId=814 and namespace='WebGUI';
|
||||
delete from international where internationalId=156 and namespace='WebGUI';
|
||||
delete from international where internationalId=155 and namespace='WebGUI';
|
||||
delete from international where internationalId=380 and namespace='WebGUI';
|
||||
delete from international where internationalId=151 and namespace='WebGUI';
|
||||
delete from international where internationalId=501 and namespace='WebGUI';
|
||||
delete from international where internationalId=154 and namespace='WebGUI';
|
||||
delete from international where internationalId=157 and namespace='WebGUI';
|
||||
delete from style where name='Reserved';
|
||||
|
|
|
|||
161
lib/WebGUI.pm
161
lib/WebGUI.pm
|
|
@ -16,7 +16,6 @@ use Tie::CPHash;
|
|||
use WebGUI::Affiliate;
|
||||
use WebGUI::Cache;
|
||||
use WebGUI::ErrorHandler;
|
||||
use WebGUI::Icon;
|
||||
use WebGUI::International;
|
||||
use WebGUI::Macro;
|
||||
use WebGUI::Operation;
|
||||
|
|
@ -25,110 +24,28 @@ use WebGUI::Session;
|
|||
use WebGUI::SQL;
|
||||
use WebGUI::Style;
|
||||
use WebGUI::Page;
|
||||
use WebGUI::Template;
|
||||
use WebGUI::URL;
|
||||
use WebGUI::Utility;
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub _generateDebug {
|
||||
if ($session{setting}{showDebug} || ($session{form}{debug}==1 && WebGUI::Privilege::isInGroup(3))) {
|
||||
return WebGUI::ErrorHandler::showDebug();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub _generatePage {
|
||||
my ($canEdit, $pageEdit, $sth, $wobject, %contentHash, $originalWobject, $sql, $extra, %hash, $cmd, $w, $template,$canEditWobject);
|
||||
if (WebGUI::Privilege::canViewPage()) {
|
||||
if ($session{var}{adminOn}) {
|
||||
$canEdit = WebGUI::Privilege::canEditPage();
|
||||
if ($canEdit) {
|
||||
$pageEdit = "\n<br>"
|
||||
.pageIcon()
|
||||
.deleteIcon('op=deletePage')
|
||||
.editIcon('op=editPage')
|
||||
.moveUpIcon('op=movePageUp')
|
||||
.moveDownIcon('op=movePageDown')
|
||||
.cutIcon('op=cutPage')
|
||||
."\n";
|
||||
}
|
||||
}
|
||||
$sth = WebGUI::SQL->read("select * from wobject where pageId=$session{page}{pageId}
|
||||
order by sequenceNumber, wobjectId");
|
||||
while ($wobject = $sth->hashRef) {
|
||||
$canEditWobject = WebGUI::Privilege::canEditWobject($wobject->{wobjectId});
|
||||
if ($session{var}{adminOn} && $canEditWobject) {
|
||||
$contentHash{"page.position".${$wobject}{templatePosition}} .= "\n<hr>"
|
||||
.wobjectIcon()
|
||||
.deleteIcon('func=delete&wid='.${$wobject}{wobjectId})
|
||||
.editIcon('func=edit&wid='.${$wobject}{wobjectId})
|
||||
.moveUpIcon('func=moveUp&wid='.${$wobject}{wobjectId})
|
||||
.moveDownIcon('func=moveDown&wid='.${$wobject}{wobjectId})
|
||||
.moveTopIcon('func=moveTop&wid='.${$wobject}{wobjectId})
|
||||
.moveBottomIcon('func=moveBottom&wid='.${$wobject}{wobjectId})
|
||||
.cutIcon('func=cut&wid='.${$wobject}{wobjectId})
|
||||
.copyIcon('func=copy&wid='.${$wobject}{wobjectId});
|
||||
if (${$wobject}{namespace} ne "WobjectProxy" && isIn("WobjectProxy",@{$session{config}{wobjects}})) {
|
||||
$contentHash{"page.position".${$wobject}{templatePosition}} .=
|
||||
shortcutIcon('func=createShortcut&wid='.${$wobject}{wobjectId})
|
||||
}
|
||||
$contentHash{"page.position".${$wobject}{templatePosition}} .= '<br>';
|
||||
}
|
||||
|
||||
if(!WebGUI::Privilege::canViewWobject($wobject->{wobjectId})){ next; }
|
||||
if (${$wobject}{namespace} eq "WobjectProxy") {
|
||||
$originalWobject = $wobject;
|
||||
my ($wobjectProxy) = WebGUI::SQL->quickHashRef("select * from WobjectProxy where wobjectId=".${$wobject}{wobjectId});
|
||||
$wobject = WebGUI::SQL->quickHashRef("select * from wobject where wobject.wobjectId=".$wobjectProxy->{proxiedWobjectId});
|
||||
if (${$wobject}{namespace} eq "") {
|
||||
$wobject = $originalWobject;
|
||||
} else {
|
||||
${$wobject}{startDate} = ${$originalWobject}{startDate};
|
||||
${$wobject}{endDate} = ${$originalWobject}{endDate};
|
||||
${$wobject}{templatePosition} = ${$originalWobject}{templatePosition};
|
||||
${$wobject}{_WobjectProxy} = ${$originalWobject}{wobjectId};
|
||||
if ($wobjectProxy->{overrideTitle}) {
|
||||
${$wobject}{title} = ${$originalWobject}{title};
|
||||
}
|
||||
if ($wobjectProxy->{overrideDisplayTitle}) {
|
||||
${$wobject}{displayTitle} = ${$originalWobject}{displayTitle};
|
||||
}
|
||||
if ($wobjectProxy->{overrideDescription}) {
|
||||
${$wobject}{description} = ${$originalWobject}{description};
|
||||
}
|
||||
if ($wobjectProxy->{overrideTemplate}) {
|
||||
${$wobject}{templateId} = $wobjectProxy->{proxiedTemplateId};
|
||||
}
|
||||
}
|
||||
}
|
||||
$extra = WebGUI::SQL->quickHashRef("select * from ".$wobject->{namespace}."
|
||||
where wobjectId=".$wobject->{wobjectId});
|
||||
tie %hash, 'Tie::CPHash';
|
||||
%hash = (%{$wobject},%{$extra});
|
||||
$wobject = \%hash;
|
||||
$cmd = "WebGUI::Wobject::".${$wobject}{namespace};
|
||||
$w = eval{$cmd->new($wobject)};
|
||||
WebGUI::ErrorHandler::fatalError("Couldn't instanciate wobject: ${$wobject}{namespace}. Root cause: ".$@) if($@);
|
||||
if ($w->inDateRange) {
|
||||
$contentHash{"page.position".${$wobject}{templatePosition}} .= '<div class="wobject"><div class="wobject'
|
||||
.${$wobject}{namespace}.'" id="wobjectId'.${$wobject}{wobjectId}.'">';
|
||||
$contentHash{"page.position".${$wobject}{templatePosition}} .= '<a name="'
|
||||
.${$wobject}{wobjectId}.'"></a>';
|
||||
$contentHash{"page.position".${$wobject}{templatePosition}} .= eval{$w->www_view};
|
||||
WebGUI::ErrorHandler::fatalError("Wobject runtime error: ${$wobject}{namespace}. Root cause: ".$@) if($@);
|
||||
$contentHash{"page.position".${$wobject}{templatePosition}} .= "</div></div>\n\n";
|
||||
}
|
||||
}
|
||||
$sth->finish;
|
||||
$template = $session{page}{templateId};
|
||||
} else {
|
||||
$contentHash{"page.position1"} = WebGUI::Privilege::noAccess();
|
||||
my $content = shift;
|
||||
if ($session{form}{op} eq "" && $session{setting}{trackPageStatistics} && $session{form}{wid} ne "new") {
|
||||
WebGUI::SQL->write("insert into pageStatistics (dateStamp, userId, username, ipAddress, userAgent, referer,
|
||||
pageId, pageTitle, wobjectId, wobjectFunction) values (".time().",".$session{user}{userId}
|
||||
.",".quote($session{user}{username}).",
|
||||
".quote($session{env}{REMOTE_ADDR}).", ".quote($session{env}{HTTP_USER_AGENT}).",
|
||||
".quote($session{env}{HTTP_REFERER}).", ".$session{page}{pageId}.",
|
||||
".quote($session{page}{title}).", ".quote($session{form}{wid}).", ".quote($session{form}{func}).")");
|
||||
}
|
||||
my $output = WebGUI::Macro::process(WebGUI::Style::process($content));
|
||||
if ($session{setting}{showDebug} || ($session{form}{debug}==1 && WebGUI::Privilege::isInGroup(3))) {
|
||||
$output .= WebGUI::ErrorHandler::showDebug();
|
||||
}
|
||||
return (\%contentHash,$template,$pageEdit);
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub _processAction {
|
||||
my ($urlString, %form, $pair, @pairs, @param);
|
||||
|
|
@ -223,64 +140,48 @@ sub _processOperations {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
sub page {
|
||||
my ($cache, $debug, $positions, $wobjectOutput, $pageEdit, $httpHeader, $content, $operationOutput, $template);
|
||||
WebGUI::Session::open($_[0],$_[1]);
|
||||
my $useCache = ($session{form}{op} eq "" && $session{form}{wid} eq "" && $session{form}{makePrintable} eq ""
|
||||
&& (($session{page}{cacheTimeout} > 10 && $session{user}{userId} !=1) || ($session{page}{cacheTimeout} > 10 && $session{user}{userId} == 1))
|
||||
&& not $session{var}{adminOn});
|
||||
my ($output, $cache);
|
||||
if ($useCache) {
|
||||
$cache = WebGUI::Cache->new("page_".$session{page}{pageId}."_".$session{user}{userId});
|
||||
$content = $cache->get;
|
||||
$output = $cache->get;
|
||||
}
|
||||
$operationOutput = _processOperations();
|
||||
my $operationOutput = _processOperations();
|
||||
WebGUI::Affiliate::grabReferral();
|
||||
$wobjectOutput = _processFunctions();
|
||||
my $wobjectOutput = _processFunctions();
|
||||
if ($operationOutput eq "" && $wobjectOutput eq "" && $session{form}{action2} ne "") {
|
||||
_processAction($session{form}{action2});
|
||||
$operationOutput = _processOperations();
|
||||
$wobjectOutput = _processFunctions();
|
||||
}
|
||||
if ($operationOutput eq "" && $session{setting}{trackPageStatistics} && $session{form}{wid} ne "new" && $session{header}{mimetype} eq "text/html") {
|
||||
WebGUI::SQL->write("insert into pageStatistics (dateStamp, userId, username, ipAddress, userAgent, referer,
|
||||
pageId, pageTitle, wobjectId, wobjectFunction) values (".time().",".$session{user}{userId}
|
||||
.",".quote($session{user}{username}).",
|
||||
".quote($session{env}{REMOTE_ADDR}).", ".quote($session{env}{HTTP_USER_AGENT}).",
|
||||
".quote($session{env}{HTTP_REFERER}).", ".$session{page}{pageId}.",
|
||||
".quote($session{page}{title}).", ".quote($session{form}{wid}).", ".quote($session{form}{func}).")");
|
||||
}
|
||||
if ($session{header}{mimetype} ne "text/html") {
|
||||
$httpHeader = WebGUI::Session::httpHeader();
|
||||
WebGUI::Session::close();
|
||||
return $httpHeader.$operationOutput.$wobjectOutput;
|
||||
if ($output ne "") {
|
||||
$output = WebGUI::Session::httpHeader().$output;
|
||||
} elsif ($session{header}{mimetype} ne "text/html") {
|
||||
$output = WebGUI::Session::httpHeader().$operationOutput.$wobjectOutput;
|
||||
} elsif ($operationOutput ne "") {
|
||||
$positions->{"page.position1"} = $operationOutput;
|
||||
$output = WebGUI::Session::httpHeader()._generatePage($operationOutput);
|
||||
} elsif ($session{page}{redirectURL} && !$session{var}{adminOn}) {
|
||||
$httpHeader = WebGUI::Session::httpRedirect(WebGUI::Macro::process($session{page}{redirectURL}));
|
||||
WebGUI::Session::close();
|
||||
return $httpHeader;
|
||||
$output = WebGUI::Session::httpRedirect(WebGUI::Macro::process($session{page}{redirectURL}));
|
||||
} elsif ($session{header}{redirect} ne "") {
|
||||
$httpHeader = $session{header}{redirect};
|
||||
WebGUI::Session::close();
|
||||
return $httpHeader;
|
||||
$output = $session{header}{redirect};
|
||||
} elsif ($wobjectOutput ne "") {
|
||||
$positions->{"page.position1"} = $wobjectOutput;
|
||||
} elsif (!($useCache && defined $content)) {
|
||||
($positions, $template, $pageEdit) = _generatePage();
|
||||
}
|
||||
$httpHeader = WebGUI::Session::httpHeader();
|
||||
unless ($useCache && defined $content) {
|
||||
$content = WebGUI::Macro::process(WebGUI::Template::process(WebGUI::Style::get($pageEdit.WebGUI::Page::getTemplate($template)), $positions));
|
||||
$output = WebGUI::Session::httpHeader()._generatePage($wobjectOutput);
|
||||
} else {
|
||||
$output = _generatePage(WebGUI::Page::generate());
|
||||
my $ttl;
|
||||
if ($session{user}{userId} == 1) {
|
||||
$ttl = $session{page}{cacheTimeoutVisitor};
|
||||
} else {
|
||||
$ttl = $session{page}{cacheTimeout};
|
||||
}
|
||||
$cache->set($content, $ttl) if ($useCache);
|
||||
$cache->set($output, $ttl) if ($useCache);
|
||||
$output = WebGUI::Session::httpHeader().$output;
|
||||
}
|
||||
$debug = _generateDebug();
|
||||
WebGUI::Session::close();
|
||||
return $httpHeader.$content.$debug;
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@ use WebGUI::Operation::Scratch;
|
|||
use WebGUI::Operation::Search;
|
||||
use WebGUI::Operation::Settings;
|
||||
use WebGUI::Operation::Statistics;
|
||||
use WebGUI::Operation::Style;
|
||||
use WebGUI::Operation::Template;
|
||||
use WebGUI::Operation::Theme;
|
||||
use WebGUI::Operation::Trash;
|
||||
|
|
|
|||
|
|
@ -24,16 +24,12 @@ our @EXPORT = qw(&www_deployPackage &www_selectPackageToDeploy);
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
sub _duplicateWobjects {
|
||||
my ($sth, $wobject, $cmd, %hash, $extra, $w, %properties);
|
||||
my (%properties);
|
||||
tie %properties, 'Tie::CPHash';
|
||||
$sth = WebGUI::SQL->read("select * from wobject where pageId=$_[0] order by sequenceNumber");
|
||||
while ($wobject = $sth->hashRef) {
|
||||
$extra = WebGUI::SQL->quickHashRef("select * from ${$wobject}{namespace} where wobjectId=${$wobject}{wobjectId}");
|
||||
tie %hash, 'Tie::CPHash';
|
||||
%hash = (%{$wobject},%{$extra});
|
||||
$wobject = \%hash;
|
||||
$cmd = "WebGUI::Wobject::".${$wobject}{namespace};
|
||||
$w = $cmd->new($wobject);
|
||||
my $sth = WebGUI::SQL->read("select * from wobject where pageId=$_[0] order by sequenceNumber");
|
||||
while (my $wobject = $sth->hashRef) {
|
||||
my $cmd = "WebGUI::Wobject::".${$wobject}{namespace};
|
||||
my $w = $cmd->new($wobject);
|
||||
$w->duplicate($_[1]);
|
||||
}
|
||||
$sth->finish;
|
||||
|
|
|
|||
|
|
@ -365,19 +365,18 @@ sub www_editPage {
|
|||
-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 = ' <a href="'.WebGUI::URL::page('op=listStyles')
|
||||
.'">'.WebGUI::International::get(6).'</a>';
|
||||
} else {
|
||||
$subtext = "";
|
||||
}
|
||||
$f->getTab("layout")->select(
|
||||
$f->getTab("layout")->template(
|
||||
-name=>"styleId",
|
||||
-options=>\%hash,
|
||||
-label=>WebGUI::International::get(105),
|
||||
-value=>[$page{styleId}],
|
||||
-value=>$page{styleId},
|
||||
-subtext=>$subtext,
|
||||
-namespace=>'style',
|
||||
-uiLevel=>5
|
||||
);
|
||||
if ($childCount) {
|
||||
|
|
|
|||
|
|
@ -1,202 +0,0 @@
|
|||
package WebGUI::Operation::Style;
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2003 Plain Black LLC.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
use Exporter;
|
||||
use strict;
|
||||
use Tie::CPHash;
|
||||
use WebGUI::HTMLForm;
|
||||
use WebGUI::Icon;
|
||||
use WebGUI::International;
|
||||
use WebGUI::Operation::Shared;
|
||||
use WebGUI::Paginator;
|
||||
use WebGUI::Privilege;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::SQL;
|
||||
use WebGUI::URL;
|
||||
use WebGUI::Utility;
|
||||
|
||||
our @ISA = qw(Exporter);
|
||||
our @EXPORT = qw(&www_copyStyle &www_deleteStyle &www_deleteStyleConfirm &www_editStyle &www_editStyleSave &www_listStyles);
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub _submenu {
|
||||
my (%menu);
|
||||
tie %menu, 'Tie::IxHash';
|
||||
$menu{WebGUI::URL::page('op=editStyle&sid=new')} = WebGUI::International::get(158);
|
||||
if (($session{form}{op} eq "editStyle" && $session{form}{sid} ne "new") || $session{form}{op} eq "deleteStyleConfirm") {
|
||||
$menu{WebGUI::URL::page('op=editStyle&sid='.$session{form}{sid})} = WebGUI::International::get(803);
|
||||
$menu{WebGUI::URL::page('op=copyStyle&sid='.$session{form}{sid})} = WebGUI::International::get(804);
|
||||
$menu{WebGUI::URL::page('op=deleteStyle&sid='.$session{form}{sid})} = WebGUI::International::get(805);
|
||||
$menu{WebGUI::URL::page('op=listStyles')} = WebGUI::International::get(814);
|
||||
}
|
||||
return menuWrapper($_[0],\%menu);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_copyStyle {
|
||||
return WebGUI::Privilege::insufficient unless (WebGUI::Privilege::isInGroup(5));
|
||||
my (%style);
|
||||
tie %style, 'Tie::CPHash';
|
||||
%style = WebGUI::SQL->quickHash("select * from style where styleId=$session{form}{sid}");
|
||||
WebGUI::SQL->write("insert into style (styleId,name,body,styleSheet) values (".getNextId("styleId").",
|
||||
".quote('Copy of '.$style{name}).", ".quote($style{body}).", ".quote($style{styleSheet}).")");
|
||||
return www_listStyles();
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_deleteStyle {
|
||||
return WebGUI::Privilege::insufficient unless (WebGUI::Privilege::isInGroup(5));
|
||||
return WebGUI::Privilege::vitalComponent() if ($session{form}{sid} < 1000 && $session{form}{sid} > 0);
|
||||
my ($output);
|
||||
$output .= helpIcon(4);
|
||||
$output .= '<h1>'.WebGUI::International::get(42).'</h1>';
|
||||
$output .= WebGUI::International::get(155).'<p>';
|
||||
$output .= '<div align="center"><a href="'.
|
||||
WebGUI::URL::page('op=deleteStyleConfirm&sid='.$session{form}{sid})
|
||||
.'">'.WebGUI::International::get(44).'</a>';
|
||||
$output .= ' <a href="'.WebGUI::URL::page('op=listStyles').
|
||||
'">'.WebGUI::International::get(45).'</a></div>';
|
||||
return _submenu($output);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_deleteStyleConfirm {
|
||||
return WebGUI::Privilege::insufficient unless (WebGUI::Privilege::isInGroup(5));
|
||||
return WebGUI::Privilege::vitalComponent() if ($session{form}{sid} < 1000 && $session{form}{sid} > 0);
|
||||
WebGUI::SQL->write("delete from style where styleId=".$session{form}{sid});
|
||||
WebGUI::SQL->write("update page set styleId=2 where styleId=".$session{form}{sid});
|
||||
return www_listStyles();
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_editStyle {
|
||||
return WebGUI::Privilege::insufficient unless (WebGUI::Privilege::isInGroup(5));
|
||||
my ($output, %style, $f);
|
||||
tie %style, 'Tie::CPHash';
|
||||
if ($session{form}{sid} eq "new") {
|
||||
$style{body} = "^AdminBar;\n\n<body>\n\n^-;\n\n</body>";
|
||||
$style{styleSheet} = '
|
||||
<style>
|
||||
.content{
|
||||
font-family: helvetica, arial;
|
||||
font-size: 10pt;
|
||||
}
|
||||
.adminBar {
|
||||
background-color: #dddddd;
|
||||
font-family: helvetica, arial;
|
||||
}
|
||||
.tableMenu {
|
||||
background-color: #dddddd;
|
||||
font-size: 8pt;
|
||||
font-family: Helvetica, Arial;
|
||||
}
|
||||
.tableMenu a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.tableHeader {
|
||||
background-color: #dddddd;
|
||||
font-size: 10pt;
|
||||
font-family: Helvetica, Arial;
|
||||
}
|
||||
.tableData {
|
||||
font-size: 10pt;
|
||||
font-family: Helvetica, Arial;
|
||||
}
|
||||
.pollColor {
|
||||
background-color: #cccccc;
|
||||
border: thin solid #aaaaaa;
|
||||
}
|
||||
.pagination {
|
||||
font-family: helvetica, arial;
|
||||
font-size: 8pt;
|
||||
text-align: center;
|
||||
}
|
||||
.tab {
|
||||
border: 1px solid black;
|
||||
background-color: #eeeeee;
|
||||
}
|
||||
.tabBody {
|
||||
border: 1px solid black;
|
||||
border-top: 1px solid black;
|
||||
border-left: 1px solid black;
|
||||
background-color: #dddddd;
|
||||
}
|
||||
div.tabs {
|
||||
line-height: 15px;
|
||||
font-size: 14px;
|
||||
}
|
||||
.tabHover {
|
||||
background-color: #cccccc;
|
||||
}
|
||||
.tabActive {
|
||||
background-color: #dddddd;
|
||||
}
|
||||
</style>
|
||||
';
|
||||
} else {
|
||||
%style = WebGUI::SQL->quickHash("select * from style where styleId=$session{form}{sid}");
|
||||
}
|
||||
$output .= helpIcon(16);
|
||||
$output .= '<h1>'.WebGUI::International::get(156).'</h1>';
|
||||
$f = WebGUI::HTMLForm->new;
|
||||
$f->hidden("op","editStyleSave");
|
||||
$f->hidden("sid",$session{form}{sid});
|
||||
$f->readOnly($session{form}{sid},WebGUI::International::get(380));
|
||||
$f->text("name",WebGUI::International::get(151),$style{name});
|
||||
$f->textarea("body",WebGUI::International::get(501),$style{body},'','','',(5+$session{setting}{textAreaRows}));
|
||||
$f->textarea("styleSheet",WebGUI::International::get(154),$style{styleSheet},'','','',(5+$session{setting}{textAreaRows}));
|
||||
$f->submit;
|
||||
$output .= $f->print;
|
||||
return _submenu($output);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_editStyleSave {
|
||||
return WebGUI::Privilege::insufficient unless (WebGUI::Privilege::isInGroup(5));
|
||||
if ($session{form}{sid} eq "new") {
|
||||
$session{form}{sid} = getNextId("styleId");
|
||||
WebGUI::SQL->write("insert into style (styleId) values ($session{form}{sid})");
|
||||
}
|
||||
$session{form}{body} = "^AdminBar;\n\n<body>\n\n^-;\n\n</body>" if ($session{form}{body} eq "");
|
||||
WebGUI::SQL->write("update style set name=".quote($session{form}{name}).", body=".quote($session{form}{body}).",
|
||||
styleSheet=".quote($session{form}{styleSheet})." where styleId=".$session{form}{sid});
|
||||
return www_listStyles();
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_listStyles {
|
||||
return WebGUI::Privilege::insufficient unless (WebGUI::Privilege::isInGroup(5));
|
||||
my ($output, $sth, @data, @row, $i, $p);
|
||||
$output = helpIcon(9);
|
||||
$output .= '<h1>'.WebGUI::International::get(157).'</h1>';
|
||||
$sth = WebGUI::SQL->read("select styleId,name from style order by name");
|
||||
while (@data = $sth->array) {
|
||||
$row[$i] = '<tr><td valign="top" class="tableData">'
|
||||
.deleteIcon('op=deleteStyle&sid='.$data[0])
|
||||
.editIcon('op=editStyle&sid='.$data[0])
|
||||
.copyIcon('op=copyStyle&sid='.$data[0])
|
||||
.'</td>';
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.$data[1].'</td></tr>';
|
||||
$i++;
|
||||
}
|
||||
$sth->finish;
|
||||
$p = WebGUI::Paginator->new(WebGUI::URL::page('op=listStyles'),\@row);
|
||||
$output .= '<table border=1 cellpadding=5 cellspacing=0 align="center">';
|
||||
$output .= $p->getPage($session{form}{pn});
|
||||
$output .= '</table>';
|
||||
$output .= $p->getBarTraditional($session{form}{pn});
|
||||
return _submenu($output);
|
||||
}
|
||||
|
||||
|
||||
|
||||
1;
|
||||
|
|
@ -20,10 +20,12 @@ use strict;
|
|||
use Tie::IxHash;
|
||||
use WebGUI::ErrorHandler;
|
||||
use WebGUI::HTMLForm;
|
||||
use WebGUI::Icon;
|
||||
use WebGUI::Persistent::Tree;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::SQL;
|
||||
use WebGUI::Template;
|
||||
use WebGUI::Persistent::Tree;
|
||||
use WebGUI::Utility;
|
||||
|
||||
our @ISA = qw(WebGUI::Persistent::Tree);
|
||||
|
||||
|
|
@ -40,8 +42,9 @@ This package provides utility functions for WebGUI's page system.
|
|||
use WebGUI::Page;
|
||||
$integer = WebGUI::Page::countTemplatePositions($templateId);
|
||||
$html = WebGUI::Page::drawTemplate($templateId);
|
||||
$html = WebGUI::Page::generate();
|
||||
$hashRef = WebGUI::Page::getTemplateList();
|
||||
$template = WebGUI::Page::getTemplate($templateId);
|
||||
$template = WebGUI::Page::getTemplate();
|
||||
$hashRef = WebGUI::Page::getTemplatePositions($templateId);
|
||||
$url = WebGUI::Page::makeUnique($url,$pageId);
|
||||
|
||||
|
|
@ -53,12 +56,6 @@ These functions are available from this package:
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
sub _newPositionFormat {
|
||||
return "<tmpl_var page.position".($_[0]+1).">";
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
sub classSettings {
|
||||
return {
|
||||
properties => {
|
||||
|
|
@ -112,7 +109,7 @@ sub countTemplatePositions {
|
|||
my ($template, $i);
|
||||
$template = getTemplate($_[0]);
|
||||
$i = 1;
|
||||
while ($template =~ m/page\.position$i/) {
|
||||
while ($template =~ m/position$i\_loop/) {
|
||||
$i++;
|
||||
}
|
||||
return $i-1;
|
||||
|
|
@ -164,10 +161,87 @@ sub drawTemplate {
|
|||
$template = WebGUI::Macro::negate($template);
|
||||
$template =~ s/\<script.*?\>.*?\<\/script\>//gi;
|
||||
$template =~ s/\<table.*?\>/\<table cellspacing=0 cellpadding=3 width=100 height=80 border=1\>/ig;
|
||||
$template =~ s/\<tmpl_var\s+page\.position(\d+)\>/$1/ig;
|
||||
$template =~ s/\<tmpl_loop\s+position(\d+)\_loop\>.*?\<\/tmpl\_loop\>/$1/ig;
|
||||
return $template;
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 generate ( )
|
||||
|
||||
Generates the content of the page.
|
||||
|
||||
=cut
|
||||
|
||||
sub generate {
|
||||
return WebGUI::Privilege::noAccess() unless (WebGUI::Privilege::canViewPage());
|
||||
my %var;
|
||||
$var{'page.canEdit'} = WebGUI::Privilege::canEditPage();
|
||||
$var{'page.toolbar'} = pageIcon()
|
||||
.deleteIcon('op=deletePage')
|
||||
.editIcon('op=editPage')
|
||||
.moveUpIcon('op=movePageUp')
|
||||
.moveDownIcon('op=movePageDown')
|
||||
.cutIcon('op=cutPage');
|
||||
my $sth = WebGUI::SQL->read("select * from wobject where pageId=".$session{page}{pageId}." order by sequenceNumber, wobjectId");
|
||||
while (my $wobject = $sth->hashRef) {
|
||||
my $wobjectToolbar = wobjectIcon()
|
||||
.deleteIcon('func=delete&wid='.${$wobject}{wobjectId})
|
||||
.editIcon('func=edit&wid='.${$wobject}{wobjectId})
|
||||
.moveUpIcon('func=moveUp&wid='.${$wobject}{wobjectId})
|
||||
.moveDownIcon('func=moveDown&wid='.${$wobject}{wobjectId})
|
||||
.moveTopIcon('func=moveTop&wid='.${$wobject}{wobjectId})
|
||||
.moveBottomIcon('func=moveBottom&wid='.${$wobject}{wobjectId})
|
||||
.cutIcon('func=cut&wid='.${$wobject}{wobjectId})
|
||||
.copyIcon('func=copy&wid='.${$wobject}{wobjectId});
|
||||
if (${$wobject}{namespace} ne "WobjectProxy" && isIn("WobjectProxy",@{$session{config}{wobjects}})) {
|
||||
$wobjectToolbar .= shortcutIcon('func=createShortcut&wid='.${$wobject}{wobjectId});
|
||||
}
|
||||
if (${$wobject}{namespace} eq "WobjectProxy") {
|
||||
my $originalWobject = $wobject;
|
||||
my ($wobjectProxy) = WebGUI::SQL->quickHashRef("select * from WobjectProxy where wobjectId=".${$wobject}{wobjectId});
|
||||
$wobject = WebGUI::SQL->quickHashRef("select * from wobject where wobject.wobjectId=".$wobjectProxy->{proxiedWobjectId});
|
||||
if (${$wobject}{namespace} eq "") {
|
||||
$wobject = $originalWobject;
|
||||
} else {
|
||||
${$wobject}{startDate} = ${$originalWobject}{startDate};
|
||||
${$wobject}{endDate} = ${$originalWobject}{endDate};
|
||||
${$wobject}{templatePosition} = ${$originalWobject}{templatePosition};
|
||||
${$wobject}{_WobjectProxy} = ${$originalWobject}{wobjectId};
|
||||
if ($wobjectProxy->{overrideTitle}) {
|
||||
${$wobject}{title} = ${$originalWobject}{title};
|
||||
}
|
||||
if ($wobjectProxy->{overrideDisplayTitle}) {
|
||||
${$wobject}{displayTitle} = ${$originalWobject}{displayTitle};
|
||||
}
|
||||
if ($wobjectProxy->{overrideDescription}) {
|
||||
${$wobject}{description} = ${$originalWobject}{description};
|
||||
}
|
||||
if ($wobjectProxy->{overrideTemplate}) {
|
||||
${$wobject}{templateId} = $wobjectProxy->{proxiedTemplateId};
|
||||
}
|
||||
}
|
||||
}
|
||||
my $cmd = "WebGUI::Wobject::".${$wobject}{namespace};
|
||||
my $w = eval{$cmd->new($wobject)};
|
||||
WebGUI::ErrorHandler::fatalError("Couldn't instanciate wobject: ${$wobject}{namespace}. Root cause: ".$@) if($@);
|
||||
push(@{$var{'position'.$wobject->{templatePosition}.'_loop'}},{
|
||||
'wobject.canView'=>WebGUI::Privilege::canViewWobject($wobject->{wobjectId}),
|
||||
'wobject.canEdit'=>WebGUI::Privilege::canEditWobject($wobject->{wobjectId}),
|
||||
'wobject.toolbar'=>$wobjectToolbar,
|
||||
'wobject.namespace'=>$wobject->{namespace},
|
||||
'wobject.id'=>$wobject->{wobjectId},
|
||||
'wobject.isInDateRange'=>$w->inDateRange,
|
||||
'wobject.content'=>eval{$w->www_view}
|
||||
});
|
||||
WebGUI::ErrorHandler::fatalError("Wobject runtime error: ${$wobject}{namespace}. Root cause: ".$@) if($@);
|
||||
}
|
||||
$sth->finish;
|
||||
return WebGUI::Template::process(getTemplate(),\%var);
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getTemplateList
|
||||
|
|
@ -177,12 +251,12 @@ Returns a hash reference containing template ids and template titles for all the
|
|||
=cut
|
||||
|
||||
sub getTemplateList {
|
||||
return WebGUI::Template::getList("Page");
|
||||
return WebGUI::Template::getList("page");
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 getTemplate ( templateId )
|
||||
=head2 getTemplate ( [ templateId ] )
|
||||
|
||||
Returns an HTML template.
|
||||
|
||||
|
|
@ -190,16 +264,15 @@ Returns an HTML template.
|
|||
|
||||
=item templateId
|
||||
|
||||
The id of the page template you wish to retrieve.
|
||||
The id of the page template you wish to retrieve. Defaults to the current page's template id.
|
||||
|
||||
=back
|
||||
|
||||
=cut
|
||||
|
||||
sub getTemplate {
|
||||
my $template = WebGUI::Template::get($_[0],"Page");
|
||||
$template =~ s/\^(\d+)\;/_newPositionFormat($1)/eg; #compatibility with old-style templates
|
||||
return $template;
|
||||
my $templateId = $_[0] || $session{page}{templateId};
|
||||
return WebGUI::Template::get($templateId,"page");
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -33,9 +33,10 @@ This package contains utility methods for WebGUI's style system.
|
|||
=head1 SYNOPSIS
|
||||
|
||||
use WebGUI::Style;
|
||||
$style = WebGUI::Style::get();
|
||||
$template = WebGUI::Style::getTemplate();
|
||||
$html = WebGUI::Style::process($content);
|
||||
|
||||
=head1 METHODS
|
||||
=head1 SUBROUTINES
|
||||
|
||||
These subroutines are available from this package:
|
||||
|
||||
|
|
@ -44,56 +45,80 @@ These subroutines are available from this package:
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 get ( )
|
||||
=head2 getTemplate ( [ templateId ] )
|
||||
|
||||
Returns a style based upon the current WebGUI session information.
|
||||
Retrieves the template for this style.
|
||||
|
||||
=over
|
||||
|
||||
=item templateId
|
||||
|
||||
The unique identifier for the template to retrieve. Defaults to the style template tied to the current page.
|
||||
|
||||
=back
|
||||
|
||||
=cut
|
||||
|
||||
sub get {
|
||||
my ($header, $footer, %style, $styleId, @body);
|
||||
tie %style, 'Tie::CPHash';
|
||||
if ($session{form}{makePrintable}) {
|
||||
$styleId = $session{form}{style} || 3;
|
||||
} else {
|
||||
$styleId = $session{page}{styleId} || 2;
|
||||
}
|
||||
%style = WebGUI::SQL->quickHash("select * from style where styleId=$styleId");
|
||||
@body = split(/\^\-\;/,$style{body});
|
||||
my $type = lc($session{setting}{siteicon});
|
||||
$type =~ s/.*\.(.*?)$/$1/;
|
||||
$header = $session{setting}{docTypeDec}.'
|
||||
<!-- WebGUI '.$WebGUI::VERSION.' -->
|
||||
<html> <head>
|
||||
<title>'.$session{page}{title}.' - '.$session{setting}{companyName}.'</title>
|
||||
';
|
||||
$header .= $style{styleSheet}.$session{page}{metaTags};
|
||||
if ($session{var}{adminOn}) {
|
||||
# This "triple incantation" panders to the delicate tastes of various browsers for reliable cache suppression.
|
||||
$header .= '<meta http-equiv="Pragma" content="no-cache" />';
|
||||
$header .= '<meta http-equiv="Cache-Control" content="no-cache, must-revalidate, max_age=0" />';
|
||||
$header .= '<meta http-equiv="Expires" content="0" />';
|
||||
}
|
||||
if ($session{page}{defaultMetaTags}) {
|
||||
$header .= '<meta http-equiv="Keywords" name="Keywords" content="'.$session{page}{title}
|
||||
.', '.$session{setting}{companyName}.'" />';
|
||||
if ($session{page}{synopsis}) {
|
||||
$header .= '<meta http-equiv="Description" name="Description" content="'.$session{page}{synopsis}.'" />';
|
||||
}
|
||||
}
|
||||
$header .= '
|
||||
<meta http-equiv="Content-Type"
|
||||
content="text/html; charset='.($session{header}{charset}||$session{language}{characterSet}||"ISO-8859-1").'" />
|
||||
<link rel="icon" href="'.$session{setting}{siteicon}.'" type="image/'.$type.'" />
|
||||
<link rel="SHORTCUT ICON" href="'.$session{setting}{favicon}.'" />
|
||||
</head>
|
||||
';
|
||||
$header .= $body[0];
|
||||
$footer = $body[1].' </html>';
|
||||
return $header.$_[0].$footer;
|
||||
sub getTemplate {
|
||||
my $templateId = shift || $session{page}{styleId};
|
||||
return WebGUI::Template::get($templateId,"style");
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 process ( content [ , templateId ] )
|
||||
|
||||
Returns a parsed style with content based upon the current WebGUI session information.
|
||||
|
||||
=over
|
||||
|
||||
=item content
|
||||
|
||||
The content to be parsed into the style. Usually generated by WebGUI::Page::generate().
|
||||
|
||||
=item templateId
|
||||
|
||||
The unique identifier for the template to retrieve. Defaults to the style template tied to the current page.
|
||||
|
||||
=back
|
||||
|
||||
=cut
|
||||
|
||||
sub process {
|
||||
my %var;
|
||||
$var{'body.content'} = shift;
|
||||
my $templateId = shift;
|
||||
my $type = lc($session{setting}{siteicon});
|
||||
$type =~ s/.*\.(.*?)$/$1/;
|
||||
$var{'head.tags'} = '
|
||||
<meta name="generator" content="WebGUI '.$WebGUI::VERSION.'" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset='.($session{header}{charset}||$session{language}{characterSet}||"ISO-8859-1").'" />
|
||||
<link rel="icon" href="'.$session{setting}{siteicon}.'" type="image/'.$type.'" />
|
||||
<link rel="SHORTCUT ICON" href="'.$session{setting}{favicon}.'" />
|
||||
';
|
||||
$var{'head.tags'} .= $session{page}{metaTags};
|
||||
if ($session{var}{adminOn}) {
|
||||
# This "triple incantation" panders to the delicate tastes of various browsers for reliable cache suppression.
|
||||
$var{'head.tags'} .= '
|
||||
<meta http-equiv="Pragma" content="no-cache" />
|
||||
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate, max_age=0" />
|
||||
<meta http-equiv="Expires" content="0" />
|
||||
';
|
||||
}
|
||||
if ($session{page}{defaultMetaTags}) {
|
||||
$var{'head.tags'} .= '
|
||||
<meta http-equiv="Keywords" name="Keywords" content="'.$session{page}{title}.', '.$session{setting}{companyName}.'" />
|
||||
';
|
||||
if ($session{page}{synopsis}) {
|
||||
$var{'head.tags'} .= '
|
||||
<meta http-equiv="Description" name="Description" content="'.$session{page}{synopsis}.'" />
|
||||
';
|
||||
}
|
||||
}
|
||||
return WebGUI::Template::process(getTemplate($templateId),\%var);
|
||||
}
|
||||
|
||||
|
||||
|
||||
1;
|
||||
|
|
|
|||
|
|
@ -663,8 +663,12 @@ sub new {
|
|||
fieldType=>"hidden"
|
||||
}
|
||||
};
|
||||
my %fullProperties;
|
||||
my $extra = WebGUI::SQL->quickHashRef("select * from ".$properties->{namespace}." where wobjectId='".$properties->{wobjectId}."'");
|
||||
tie %fullProperties, 'Tie::CPHash';
|
||||
%fullProperties = (%{$properties},%{$extra});
|
||||
bless({
|
||||
_property=>$properties,
|
||||
_property=>\%fullProperties,
|
||||
_useTemplate=>$useTemplate,
|
||||
_useDiscussion=>$useDiscussion,
|
||||
_wobjectProperties=>$wobjectProperties,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue