moved uploadsAccessHandler into the main webgui handler mechanism

converted macros to use references
fixed some other various bugs
This commit is contained in:
JT Smith 2005-11-07 01:40:07 +00:00
parent 2818ade8b0
commit ea868a8c0e
73 changed files with 256 additions and 275 deletions

View file

@ -120,7 +120,9 @@ sub www_view {
if ($session{var}{adminOn}) {
return $self->getContainer->www_view;
}
WebGUI::HTTP::setRedirect(WebGUI::Macro::process($self->get("redirectUrl"))) unless $self->get("redirectUrl") eq $self->get("url");
my $url = $self->get("redirectUrl");
WebGUI::Macro::process(\$url);
WebGUI::HTTP::setRedirect($url) unless $self->get("redirectUrl") eq $self->get("url");
return "Redirect is self-referential";
}

View file

@ -17,7 +17,6 @@ package WebGUI::Asset::RichEdit;
use strict;
use WebGUI::Asset;
use WebGUI::Form;
use WebGUI::Macro;
use WebGUI::Session;
use WebGUI::Utility;
use WebGUI::International;

View file

@ -13,6 +13,7 @@ package WebGUI::Asset::Shortcut;
use strict;
use WebGUI::Asset;
use WebGUI::International;
use WebGUI::Macro;
use WebGUI::Privilege;
use WebGUI::Session;
use WebGUI::SQL;
@ -240,7 +241,7 @@ sub getShortcutByCriteria {
my $assetId = $self->getId;
# Parse macro's in criteria
$criteria = WebGUI::Macro::process($criteria);
WebGUI::Macro::process(\$criteria);
# Once a asset is found, we will stick to that asset,
# to prevent the proxying of multiple- depth assets like Surveys and USS.

View file

@ -148,7 +148,8 @@ sub getToolbar {
sub view {
my $self = shift;
my $calledAsWebMethod = shift;
my $output = WebGUI::Macro::process($self->get("snippet"));
my $output = $self->get("snippet");
WebGUI::Macro::process(\$output);
$output = '<p>'.$self->getToolbar.'</p>'.$output if ($session{var}{adminOn} && !$calledAsWebMethod);
return $output unless ($self->getValue("processAsTemplate"));
return WebGUI::Asset::Template->processRaw($output);

View file

@ -395,23 +395,6 @@ sub moveCollateralUp {
WebGUI::SQL->commit;
}
#-------------------------------------------------------------------
=head2 processMacros ( output )
Decides whether or not macros should be processed and returns the appropriate output.
=head3 output
An HTML blob to be processed for macros.
=cut
sub processMacros {
return WebGUI::Macro::process($_[1]);
}
#-------------------------------------------------------------------
sub processPropertiesFromFormPost {
my $self = shift;

View file

@ -461,7 +461,9 @@ sub getRecordTemplateVars {
$data{value} = WebGUI::DateTime::setToEpoch($data{value}) if ($data{type} eq "date");
}
if (not exists $data{value}) {
$data{value} = WebGUI::Macro::process($data{defaultValue});
my $defaultValue = $data{defaultValue};
WebGUI::Macro::process(\$defaultValue);
$data{value} = $defaultValue;
}
my $hidden = (($data{status} eq "hidden" && !$session{var}{adminOn}) || ($data{isMailField} && !$self->get("mailData")));
my $value = $data{value};
@ -503,7 +505,9 @@ sub getRecordTemplateVars {
$data{value} = WebGUI::DateTime::setToEpoch($data{value}) if ($data{type} eq "date");
}
if (not exists $data{value}) {
$data{value} = WebGUI::Macro::process($data{defaultValue});
my $defaultValue = $data{defaultValue};
WebGUI::Macro::process(\$defaultValue);
$data{value} = $defaultValue;
}
my $hidden = (($data{status} eq "hidden" && !$session{var}{adminOn}) || ($data{isMailField} && !$self->get("mailData")));
my $value = $data{value};
@ -612,7 +616,8 @@ sub purge {
sub sendEmail {
my $self = shift;
my $var = shift;
my $message = WebGUI::Macro::process($self->processTemplate($var,$self->get("emailTemplateId")));
my $message = $self->processTemplate($var,$self->get("emailTemplateId"));
WebGUI::Macro::process(\$message);
my ($to, $subject, $from, $bcc, $cc);
foreach my $row (@{$var->{field_loop}}) {
if ($row->{"field.name"} eq "to") {
@ -1079,7 +1084,7 @@ sub www_process {
my $value = $row{defaultValue};
if ($row{status} eq "required" || $row{status} eq "editable") {
$value = WebGUI::FormProcessor::process($row{name},$row{type},$row{defaultValue});
$value = WebGUI::Macro::filter($value);
WebGUI::Macro::filter(\$value);
}
if ($row{status} eq "required" && ($value =~ /^\s$/ || $value eq "" || not defined $value)) {
push (@errors,{
@ -1089,7 +1094,8 @@ sub www_process {
delete $var->{entryId};
}
if ($row{status} eq "hidden") {
$value = WebGUI::Macro::process($row{defaultValue});
$value = $row{defaultValue};
WebGUI::Macro::process(\$value);
}
unless ($hadErrors) {
my ($exists) = WebGUI::SQL->quickArray("select count(*) from DataForm_entryData where DataForm_entryId=".quote($entryId)."

View file

@ -15,7 +15,6 @@ use Tie::CPHash;
use WebGUI::DateTime;
use WebGUI::ErrorHandler;
use WebGUI::International;
use WebGUI::Macro;
use WebGUI::Privilege;
use WebGUI::Id;
use WebGUI::Session;

View file

@ -235,7 +235,9 @@ sub view {
$var{query} .= " ".join(" ",map("-".$_,split(/\s+/,$var{without}))) if ($var{without});
# Remove macro's from query
$var{query} = WebGUI::Macro::negate($var{query});
my $query = $var{query};
WebGUI::Macro::negate(\$query);
$var{query} = $query;
# Set some standard vars
$var{submit} = WebGUI::Form::submit({value=>WebGUI::International::get(16, "Asset_IndexedSearch")});

View file

@ -293,7 +293,7 @@ sub _parsePlaceholderParams {
} elsif ($type =~ /^query(\d)/) {
$param = $self->{_query}{$1}{rowData}{$field};
}
$param = WebGUI::Macro::process($param);
WebGUI::Macro::process(\$param);
push(@placeholderParams, $param);
}
return \@placeholderParams;
@ -316,7 +316,8 @@ sub _processQuery {
# Preprocess macros
if ($self->{_query}{$nr}{preprocessMacros}) {
$query = WebGUI::Macro::process($self->{_query}{$nr}{dbQuery});
my $query = $self->{_query}{$nr}{dbQuery};
WebGUI::Macro::process(\$query);
} else {
$query = $self->{_query}{$nr}{dbQuery};
}

View file

@ -298,8 +298,10 @@ sub view {
# snag our SOAP call and preprocess if needed
if ($self->get('preprocessMacros')) {
$call = WebGUI::Macro::process($self->get("callMethod"));
$param_str = WebGUI::Macro::process($self->get("params"));
$call = $self->get("callMethod");
WebGUI::Macro::process(\$call);
$param_str = $self->get("params");
WebGUI::Macro::process(\$param_str);
} else {
$call = $self->get('callMethod');
$param_str = $self->get('params');

View file

@ -261,7 +261,9 @@ sub createAccountSave {
WebGUI::Session::convertVisitorToUser($session{var}{sessionId},$userId);
_logLogin($userId,"success");
system(WebGUI::Macro::process($session{setting}{runOnRegistration})) if ($session{setting}{runOnRegistration} ne "");
my $command = $session{setting}{runOnRegistration};
WebGUI::Macro::process(\$command);
system($command) if ($session{setting}{runOnRegistration} ne "");
WebGUI::MessageLog::addInternationalizedEntry('',$session{setting}{onNewUserAlertGroup},'',536) if ($session{setting}{alertOnNewUser});
return "";
}
@ -739,7 +741,8 @@ Validates the a username.
sub validUsername {
my $self = shift;
my $username = WebGUI::Macro::negate($_[0]);
my $username = shift;
WebGUI::Macro::negate(\$username);
my $error = "";
if($self->_isDuplicateUsername($username)){

View file

@ -39,8 +39,10 @@ our @ISA = qw(WebGUI::Auth);
sub _isValidPassword {
my $self = shift;
my $password = WebGUI::Macro::negate(shift);
my $confirm = WebGUI::Macro::negate(shift);
my $password = shift;
WebGUI::Macro::negate(\$password);
my $confirm = shift;
WebGUI::Macro::negate(\$confirm);
my $error = "";
if ($password ne $confirm) {

View file

@ -172,8 +172,7 @@ Adds a FATAL type message to the log, outputs an error message to the user, and
sub fatal {
my $message = shift;
my $logger = getLogger();
Apache2::RequestUtil->request->content_type('text/html');
Apache2::RequestUtil->request->content_type('text/html') if ($WebGUI::Session::session{req});
$logger->fatal($message);
$logger->debug("Stack trace for FATAL ".$message."\n".getStackTrace());
unless ($WebGUI::Session::session{setting}{showDebug}) {

View file

@ -20,6 +20,7 @@ use WebGUI::Cache;
use WebGUI::DateTime;
use WebGUI::ErrorHandler;
use WebGUI::LDAPLink;
use WebGUI::Macro;
use WebGUI::Session;
use WebGUI::SQL;
use WebGUI::Utility;
@ -427,7 +428,9 @@ sub isInGroup {
my $dbh = $dbLink->dbh;
if (defined $dbh) {
if ($group{dbQuery} =~ /select 1/i) {
$group{dbQuery} = WebGUI::Macro::process($group{dbQuery});
my $query = $group{dbQuery};
WebGUI::Macro::process(\$query);
$group{dbQuery} = $query;
my $sth = WebGUI::SQL->unconditionalRead($group{dbQuery},$dbh);
unless ($sth->errorCode < 1) {
WebGUI::ErrorHandler::warn("There was a problem with the database query for group ID $gid.");

View file

@ -102,14 +102,13 @@ Choose from "all", "none", "macros", "javascript", or "most". Defaults to "most"
=cut
sub filter {
my ($filter, $html, $type);
$type = $_[1];
my $html = shift;
my $type = shift;
if ($type eq "all") {
$filter = HTML::TagFilter->new(allow=>{'none'},strip_comments=>1);
$html = $filter->filter($_[0]);
return WebGUI::Macro::negate($html);
my $filter = HTML::TagFilter->new(allow=>{'none'},strip_comments=>1);
$html = $filter->filter($html);
WebGUI::Macro::negate(\$html);
} elsif ($type eq "javascript") {
$html = $_[0];
$html =~ s/\<script.*?\/script\>//ixsg;
$html =~ s/(href="??)javascript\:.*?\)/$1removed/ixsg;
$html =~ s/onClick/removed/ixsg;
@ -125,16 +124,17 @@ sub filter {
$html =~ s/onKeyDown/removed/ixsg;
$html =~ s/onSubmit/removed/ixsg;
$html =~ s/onReset/removed/ixsg;
$html = WebGUI::Macro::negate($html);
WebGUI::Macro::negate(\$html);
} elsif ($type eq "macros") {
return WebGUI::Macro::negate($_[0]);
WebGUI::Macro::negate(\$html);
} elsif ($type eq "none") {
return $_[0];
# do nothing
} else {
$filter = HTML::TagFilter->new; # defaultly strips almost everything
$html = $filter->filter($_[0]);
return WebGUI::Macro::filter($html);
my $filter = HTML::TagFilter->new; # defaultly strips almost everything
$html = $filter->filter($html);
WebGUI::Macro::filter(\$html);
}
return $html;
}
#-------------------------------------------------------------------

View file

@ -16,6 +16,7 @@ package WebGUI::HTTP;
use strict;
use Apache2::Cookie;
use WebGUI::Session;
use WebGUI::Style;
@ -31,6 +32,7 @@ This package allows the manipulation of HTTP protocol information.
use WebGUI::HTTP;
$cookies = WebGUI::HTTP::getCookies();
$header = WebGUI::HTTP::getHeader();
$mimetype = WebGUI::HTTP::getMimeType();
$code = WebGUI::HTTP::getStatus();
@ -50,6 +52,26 @@ These subroutines are available from this package:
#-------------------------------------------------------------------
=head2 getCookies ( )
Retrieves the cookies from the HTTP header, persists them to the session, and returns a hash reference containing them.
=cut
sub getCookies {
my %cookies = Apache2::Cookie->fetch();
foreach my $key (keys %cookies) {
my $value = $cookies{$key};
$value =~ s/$key=//; # Strange... The Apache2::Cookie value also contains the key ????
# Must be a bug in Apache2::Cookie...
$WebGUI::Session::session{cookie}{$key} = $value;
}
return $WebGUI::Session::session{cookie};
}
#-------------------------------------------------------------------
=head2 getHeader ( )

View file

@ -33,10 +33,12 @@ B<NOTE:> This entire system is likely to be replaced in the near future. It has
=head1 SYNOPSIS
use WebGUI::Macro;
$html = WebGUI::Macro::filter($html);
@array = WebGUI::Macro::getParams($parameterString);
$html = WebGUI::Macro::negate($html);
$html = WebGUI::Macro::process($html);
WebGUI::Macro::filter(\$html);
WebGUI::Macro::negate(\$html);
WebGUI::Macro::process(\$html);
=head1 METHODS
@ -73,43 +75,18 @@ Removes all the macros from the HTML segment.
=head3 html
The segment to be filtered.
The segment to be filtered as a scalar reference.
=cut
sub filter {
my $content = shift;
while ($content =~ /($nestedMacro)/gs) {
$content =~ s/\Q$1//gs;
while ($$content =~ /($nestedMacro)/gs) {
$$content =~ s/\Q$1//gs;
}
return $content;
}
#-------------------------------------------------------------------
=head2 getParams ( parameterString )
A simple, but error prone mechanism for getting a prameter list from a string. Returns an array of parameters.
=head3 parameterString
A string containing a comma separated list of paramenters.
=cut
sub getParams {
my ($data, @param);
$data = $_[0];
push(@param, $+) while $data =~ m {
"([^\"\\]*(?:\\.[^\"\\]*)*)",?
| ([^,]+),?
| ,
}gx;
push(@param, undef) if substr($data,-1,1) eq ',';
return @param;
}
#-------------------------------------------------------------------
=head2 negate ( html )
@ -118,14 +95,13 @@ Nullifies all macros in this content segment.
=head3 html
A string of HTML to be processed.
A scalar refernece of HTML to be processed.
=cut
sub negate {
my $html = $_[0];
$html =~ s/\^/\&\#94\;/g;
return $html;
my $html = shift;
$$html =~ s/\^/\&\#94\;/g;
}
@ -137,27 +113,34 @@ Runs all the WebGUI macros to and replaces them in the HTML with their output.
=head3 html
A string of HTML to be processed.
A scalar reference of HTML to be processed.
=cut
sub process {
my $content = shift;
while ($content =~ /$nestedMacro/gs) {
while ($$content =~ /$nestedMacro/gs) {
my ($macro, $searchString, $params) = ($1, $2, $3);
next if ($searchString =~ /^\d+$/); # don't process ^0; ^1; ^2; etc.
next if ($searchString =~ /^\-$/); # don't process ^-;
if ($params ne "") {
$params =~ s/(^\(|\)$)//g; # remove parenthesis
$params = &process($params); # recursive process params
&process(\$params); # recursive process params
}
if ($WebGUI::Session::session{config}{macros}{$searchString} ne "") {
my $cmd = "WebGUI::Macro::".$WebGUI::Session::session{config}{macros}{$searchString};
my $load = "use ".$cmd;
eval($load);
WebGUI::ErrorHandler::error("Macro failed to compile: $cmd.".$@) if($@);
my @param;
push(@param, $+) while $params =~ m {
"([^\"\\]*(?:\\.[^\"\\]*)*)",?
| ([^,]+),?
| ,
}gx;
push(@param, undef) if substr($params,-1,1) eq ',';
$cmd = $cmd."::process";
my $result = eval{&$cmd($params)};
my $result = eval{&$cmd(@param)};
if ($@) {
WebGUI::ErrorHandler::error("Processing failed on macro: $macro: ".$@);
} else {
@ -165,14 +148,11 @@ sub process {
$result = "Endless macro loop detected. Stopping recursion.";
WebGUI::ErrorHandler::warn($macro." : ".$result)
}
$content =~ s/\Q$macro/$result/ges;
$$content =~ s/\Q$macro/$result/ges;
}
}
}
return $content;
}
1;

View file

@ -11,14 +11,13 @@ package WebGUI::Macro::AOIHits;
#-------------------------------------------------------------------
use strict;
use WebGUI::Macro;
use WebGUI::Session;
use WebGUI::SQL;
#-------------------------------------------------------------------
sub process {
my (@param, $temp);
@param = WebGUI::Macro::getParams($_[0]);
@param = @_;
my $key = $param[0];
my $value = $param[1];
my $sql = "select count from passiveProfileAOI a, metaData_properties f

View file

@ -11,14 +11,13 @@ package WebGUI::Macro::AOIRank;
#-------------------------------------------------------------------
use strict;
use WebGUI::Macro;
use WebGUI::Session;
use WebGUI::SQL;
#-------------------------------------------------------------------
sub process {
my (@param, $temp);
@param = WebGUI::Macro::getParams($_[0]);
@param = @_;
my $key = $param[0];
my $rank = $param[1] || 1; # 1 is highest rank
$rank--; # Rank is zero based

View file

@ -18,7 +18,6 @@ use WebGUI::Asset;
use WebGUI::Asset::Template;
use WebGUI::Grouping;
use WebGUI::International;
use WebGUI::Macro;
use WebGUI::Session;
use WebGUI::SQL;
use WebGUI::URL;
@ -27,7 +26,7 @@ use WebGUI::Utility;
#-------------------------------------------------------------------
sub process {
return "" unless ($session{var}{adminOn});
my @param = WebGUI::Macro::getParams($_[0]);
my @param = @_;
my $templateId = $param[0] || "PBtmpl0000000000000090";
my %var;
my (%cphash, %hash2, %hash, $r, @item, $query);

View file

@ -11,12 +11,11 @@ package WebGUI::Macro::AdminText;
#-------------------------------------------------------------------
use strict;
use WebGUI::Macro;
use WebGUI::Session;
#-------------------------------------------------------------------
sub process {
my @param = WebGUI::Macro::getParams(shift);
my @param = @_;
return "" unless ($session{var}{adminOn});
return $param[0];
}

View file

@ -13,7 +13,6 @@ package WebGUI::Macro::AdminToggle;
use strict;
use WebGUI::Grouping;
use WebGUI::International;
use WebGUI::Macro;
use WebGUI::Session;
use WebGUI::Asset::Template;
use WebGUI::URL;
@ -22,7 +21,7 @@ use WebGUI::URL;
sub process {
if (WebGUI::Grouping::isInGroup(12)) {
my %var;
my ($turnOn,$turnOff,$templateName) = WebGUI::Macro::getParams($_[0]);
my ($turnOn,$turnOff,$templateName) = @_;
$turnOn ||= WebGUI::International::get(516,'Macro_AdminToggle');
$turnOff ||= WebGUI::International::get(517,'Macro_AdminToggle');
if (WebGUI::Session::isAdminOn()) {

View file

@ -14,12 +14,11 @@ use strict;
use Time::HiRes;
use WebGUI::Asset;
use WebGUI::ErrorHandler;
use WebGUI::Macro;
use WebGUI::Session;
#-------------------------------------------------------------------
sub process {
my ($url) = WebGUI::Macro::getParams(shift);
my $url = shift;
my $t = [Time::HiRes::gettimeofday()] if (WebGUI::ErrorHandler::canShowPerformanceIndicators());
my $asset = WebGUI::Asset->newByUrl($url);
#Sorry, you cannot proxy the notfound page.

View file

@ -11,12 +11,11 @@ package WebGUI::Macro::CanEditText;
#-------------------------------------------------------------------
use strict;
use WebGUI::Macro;
use WebGUI::Session;
#-------------------------------------------------------------------
sub process {
my @param = WebGUI::Macro::getParams($_[0]);
my @param = @_;
if (exists $session{asset} && $session{asset}->canEdit) {
return $param[0];
} else {

View file

@ -12,12 +12,11 @@ package WebGUI::Macro::D_date;
use strict;
use WebGUI::DateTime;
use WebGUI::Macro;
#-------------------------------------------------------------------
sub process {
my (@param, $temp, $time);
@param = WebGUI::Macro::getParams($_[0]);
@param = @_;
$time = $param[1] || time();
$temp = epochToHuman($time,$param[0]);
return $temp;

View file

@ -13,7 +13,6 @@ package WebGUI::Macro::EditableToggle;
use strict;
use WebGUI::Grouping;
use WebGUI::International;
use WebGUI::Macro;
use WebGUI::Session;
use WebGUI::Asset::Template;
use WebGUI::URL;
@ -22,7 +21,7 @@ use WebGUI::URL;
sub process {
if (exists $session{asset} && $session{asset}->canEdit && WebGUI::Grouping::isInGroup(12)) {
my %var;
my @param = WebGUI::Macro::getParams($_[0]);
my @param = @_;
my $turnOn = $param[0] || WebGUI::International::get(516,'Macro_EditableToggle');
my $turnOff = $param[1] || WebGUI::International::get(517,'Macro_EditableToggle');
if ($session{var}{adminOn}) {

View file

@ -11,13 +11,11 @@ package WebGUI::Macro::Env;
#-------------------------------------------------------------------
use strict;
use WebGUI::Macro;
use WebGUI::Session;
#-------------------------------------------------------------------
sub process {
my @param = WebGUI::Macro::getParams($_[0]);
return $session{env}{$param[0]};
return $session{env}{shift};
}
1;

View file

@ -11,11 +11,10 @@ package WebGUI::Macro::Execute;
#-------------------------------------------------------------------
use strict;
use WebGUI::Macro;
#-------------------------------------------------------------------
sub process {
my @param = WebGUI::Macro::getParams($_[0]);
my @param = @_;
if ($param[0] =~ /passwd/ || $param[0] =~ /shadow/ || $param[0] =~ /\.conf/) {
return "SECURITY VIOLATION";
} else {

View file

@ -12,13 +12,12 @@ package WebGUI::Macro::FileUrl;
use strict;
use WebGUI::Asset;
use WebGUI::Macro;
use WebGUI::Session;
use WebGUI::Storage;
#-------------------------------------------------------------------
sub process {
my ($url) = WebGUI::Macro::getParams(shift);
my $url = shift;
my $asset = WebGUI::Asset->newByUrl($url);
if (defined $asset) {
my $storage = WebGUI::Storage->get($asset->get("storageId"));

View file

@ -11,13 +11,11 @@ package WebGUI::Macro::FormParam;
#-------------------------------------------------------------------
use strict;
use WebGUI::Macro;
use WebGUI::Session;
#-------------------------------------------------------------------
sub process {
my @param = WebGUI::Macro::getParams($_[0]);
return $session{form}{$param[0]};
return $session{form}{shift};
}

View file

@ -13,14 +13,13 @@ package WebGUI::Macro::GroupAdd;
use strict;
use WebGUI::Group;
use WebGUI::Grouping;
use WebGUI::Macro;
use WebGUI::Session;
use WebGUI::Asset::Template;
use WebGUI::URL;
#-------------------------------------------------------------------
sub process {
my @param = WebGUI::Macro::getParams($_[0]);
my @param = @_;
return "" if ($param[0] eq "");
return "" if ($param[1] eq "");
return "" if ($session{user}{userId} eq '1');

View file

@ -13,14 +13,13 @@ package WebGUI::Macro::GroupDelete;
use strict;
use WebGUI::Group;
use WebGUI::Grouping;
use WebGUI::Macro;
use WebGUI::Session;
use WebGUI::Asset::Template;
use WebGUI::URL;
#-------------------------------------------------------------------
sub process {
my @param = WebGUI::Macro::getParams($_[0]);
my @param = @_;
return "" if ($param[0] eq "");
return "" if ($param[1] eq "");
return "" if ($session{user}{userId} eq '1');

View file

@ -12,13 +12,12 @@ package WebGUI::Macro::GroupText;
use strict;
use WebGUI::Grouping;
use WebGUI::Macro;
use WebGUI::SQL;
use WebGUI::Session;
#-------------------------------------------------------------------
sub process {
my @param = WebGUI::Macro::getParams($_[0]);
my @param = @_;
my ($groupId) = WebGUI::SQL->quickArray("select groupId from groups where groupName=".quote($param[0]),WebGUI::SQL->getSlave);
$groupId = 3 if ($groupId eq "");
if (WebGUI::Grouping::isInGroup($groupId)) {

View file

@ -14,12 +14,11 @@ use strict;
use WebGUI::Asset;
use WebGUI::Asset::Template;
use WebGUI::International;
use WebGUI::Macro;
use WebGUI::Session;
#-------------------------------------------------------------------
sub process {
my ($label, $templateUrl) = WebGUI::Macro::getParams(shift);
my ($label, $templateUrl) = @_;
my $home = WebGUI::Asset->getDefault;
if ($label ne "linkonly") {
my %var;

View file

@ -13,10 +13,9 @@ package WebGUI::Macro::If;
use strict;
use Safe;
use WebGUI::Macro;
sub process {
my ($expression, $true, $false) = WebGUI::Macro::getParams(shift);
my ($expression, $true, $false) = @_;
my $output = $false;
# Workaround to "Safely" eval $expression

View file

@ -12,12 +12,11 @@ package WebGUI::Macro::Include;
use strict;
use FileHandle;
use WebGUI::Macro;
#-------------------------------------------------------------------
sub process {
my (@param, $temp, $file);
@param = WebGUI::Macro::getParams($_[0]);
@param = @_;
if ($param[0] =~ /passwd/ || $param[0] =~ /shadow/ || $param[0] =~ /WebGUI.conf/) {
$temp = "SECURITY VIOLATION";
} else {

View file

@ -12,13 +12,11 @@ package WebGUI::Macro::International;
use strict;
use WebGUI::International;
use WebGUI::Macro;
use WebGUI::Session;
#-------------------------------------------------------------------
sub process {
my @param = WebGUI::Macro::getParams($_[0]);
return WebGUI::International::get($param[0],$param[1]);
return WebGUI::International::get(shift,shift);
}

View file

@ -11,14 +11,12 @@ package WebGUI::Macro::JavaScript;
#-------------------------------------------------------------------
use strict;
use WebGUI::Macro;
use WebGUI::Session;
use WebGUI::Style;
#-------------------------------------------------------------------
sub process {
my ($script) = WebGUI::Macro::getParams(shift);
WebGUI::Style::setScript($script,{type=>'text/javascript'});
WebGUI::Style::setScript(shift,{type=>'text/javascript'});
return "";
}

View file

@ -13,7 +13,6 @@ package WebGUI::Macro::L_loginBox;
use strict;
use WebGUI::Form;
use WebGUI::International;
use WebGUI::Macro;
use WebGUI::Session;
use WebGUI::Asset::Template;
use WebGUI::URL;
@ -25,7 +24,7 @@ sub _createURL {
#-------------------------------------------------------------------
sub process {
my @param = WebGUI::Macro::getParams($_[0]);
my @param = @_;
my $templateId = $param[2] || "PBtmpl0000000000000044";
my %var;
$var{'user.isVisitor'} = ($session{user}{userId} eq "1");

View file

@ -12,7 +12,6 @@ package WebGUI::Macro::LastModified;
use strict;
use WebGUI::DateTime;
use WebGUI::Macro;
use WebGUI::Asset;
use WebGUI::Session;
use WebGUI::International;
@ -22,7 +21,7 @@ use WebGUI::SQL;
sub process {
return '' unless $session{asset};
my ($label, $format, $time);
($label, $format) = WebGUI::Macro::getParams(shift);
($label, $format) = @_;
$format = '%z' if ($format eq "");
($time) = WebGUI::SQL->quickArray("SELECT max(revisionDate) FROM assetData where assetId=".quote($session{asset}->getId),WebGUI::SQL->getSlave);
return WebGUI::International::get(43,'Asset_Survey') if $time eq 0;

View file

@ -12,14 +12,13 @@ package WebGUI::Macro::LoginToggle;
use strict;
use WebGUI::International;
use WebGUI::Macro;
use WebGUI::Session;
use WebGUI::Asset::Template;
use WebGUI::URL;
#-------------------------------------------------------------------
sub process {
my @param = WebGUI::Macro::getParams($_[0]);
my @param = @_;
my $login = $param[0] || WebGUI::International::get(716,'Macro_LoginToggle');
my $logout = $param[1] || WebGUI::International::get(717,'Macro_LoginToggle');
my %var;

View file

@ -11,14 +11,12 @@ package WebGUI::Macro::Page;
#-------------------------------------------------------------------
use strict;
use WebGUI::Macro;
use WebGUI::Session;
#-------------------------------------------------------------------
sub process {
my @param = WebGUI::Macro::getParams($_[0]);
if (exists $session{asset}) {
return $session{asset}->get($param[0]);
return $session{asset}->get(shift);
}
return "";
}

View file

@ -2,7 +2,6 @@ package WebGUI::Macro::Product;
use strict;
use WebGUI::Session;
use WebGUI::Macro;
use WebGUI::Product;
use WebGUI::Asset::Template;
use WebGUI::SQL;
@ -11,7 +10,7 @@ use WebGUI::International;
sub process {
my (@param, $productId, $variantId, $product, $variant, $output, $templateId, @variantLoop, %var);
@param = WebGUI::Macro::getParams(@_);
@param = @_;
return 'No SKU or productId passed' unless ($_[0]);

View file

@ -11,13 +11,11 @@ package WebGUI::Macro::Quote;
#-------------------------------------------------------------------
use strict;
use WebGUI::Macro;
use WebGUI::SQL;
#-------------------------------------------------------------------
sub process {
my ($value) = WebGUI::Macro::getParams(shift);
return quote($value);
return quote(shift);
}

View file

@ -12,12 +12,11 @@ package WebGUI::Macro::RandomAssetProxy;
use strict;
use WebGUI::Asset;
use WebGUI::Macro;
use WebGUI::Session;
#-------------------------------------------------------------------
sub process {
my ($url) = WebGUI::Macro::getParams(shift);
my $url = shift;
my $asset = WebGUI::Asset->newByUrl($url);
if (defined $asset) {
my $children = $asset->getLineage(["children"]);

View file

@ -11,14 +11,12 @@ package WebGUI::Macro::RawHeadTags;
#-------------------------------------------------------------------
use strict;
use WebGUI::Macro;
use WebGUI::Session;
use WebGUI::Style;
#-------------------------------------------------------------------
sub process {
my ($html) = WebGUI::Macro::getParams(shift);
WebGUI::Style::setRawHeadTags($html);
WebGUI::Style::setRawHeadTags(shift);
return "";
}

View file

@ -11,14 +11,13 @@ package WebGUI::Macro::SQL;
#-------------------------------------------------------------------
use strict;
use WebGUI::Macro;
use WebGUI::Session;
use WebGUI::SQL;
#-------------------------------------------------------------------
sub process {
my ($output, @data, $rownum, $temp);
my ($statement, $format) = WebGUI::Macro::getParams(shift);
my ($statement, $format) = @_;
$format = '^0;' if ($format eq "");
if ($statement =~ /^\s*select/i || $statement =~ /^\s*show/i || $statement =~ /^\s*describe/i) {
my $sth = WebGUI::SQL->unconditionalRead($statement,WebGUI::SQL->getSlave);

View file

@ -12,13 +12,12 @@ package WebGUI::Macro::Spacer;
use strict;
use WebGUI::Session;
use WebGUI::Macro;
#-------------------------------------------------------------------
sub process {
my ($output, @param, $width, $height);
@param = WebGUI::Macro::getParams($_[0]);
@param = @_;
$width = $param[0] if defined $param[0];
$height = $param[1] if defined $param[1];
$output = '<img src="'.$session{config}{extrasURL}.'/spacer.gif"'.(defined $width?' width="'.$width.'"':'').(defined $height?' height="'.$height.'"':'').' border="0" alt="" />';

View file

@ -11,13 +11,12 @@ package WebGUI::Macro::Splat_random;
#-------------------------------------------------------------------
use strict;
use WebGUI::Macro;
use WebGUI::Utility;
#-------------------------------------------------------------------
sub process {
my ($temp, @param);
@param = WebGUI::Macro::getParams($_[0]);
@param = @_;
if ($param[0] ne "") {
$temp = round(rand()*$param[0]);
} else {

View file

@ -11,14 +11,12 @@ package WebGUI::Macro::StyleSheet;
#-------------------------------------------------------------------
use strict;
use WebGUI::Macro;
use WebGUI::Session;
use WebGUI::Style;
#-------------------------------------------------------------------
sub process {
my ($file) = WebGUI::Macro::getParams(shift);
WebGUI::Style::setLink($file,{
WebGUI::Style::setLink(shift,{
type=>'text/css',
rel=>'stylesheet'
});

View file

@ -2,13 +2,12 @@ package WebGUI::Macro::SubscriptionItem;
use strict;
use WebGUI::Asset::Template;
use WebGUI::Macro;
use WebGUI::SQL;
use WebGUI::URL;
sub process {
my ($subscriptionId, $templateId, %var);
($subscriptionId, $templateId) = WebGUI::Macro::getParams(@_);
($subscriptionId, $templateId) = @_;
%var = WebGUI::SQL->quickHash('select * from subscription where subscriptionId='.quote($subscriptionId));
$var{url} = WebGUI::URL::page('op=purchaseSubscription;sid='.$subscriptionId);
return WebGUI::Asset::Template->new($templateId || "PBtmpl0000000000000046")->process(\%var);

View file

@ -1,12 +1,10 @@
package WebGUI::Macro::SubscriptionItemPurchaseUrl;
use strict;
use WebGUI::Macro;
use WebGUI::URL;
sub process {
my ($subscriptionId) = WebGUI::Macro::getParams(@_);
return WebGUI::URL::page('op=purchaseSubscription;sid='.$subscriptionId);
return WebGUI::URL::page('op=purchaseSubscription;sid='.shift);
}
1;

View file

@ -12,12 +12,11 @@ package WebGUI::Macro::Thumbnail;
use strict;
use WebGUI::Asset::File::Image;
use WebGUI::Macro;
use WebGUI::Session;
#-------------------------------------------------------------------
sub process {
my ($url) = WebGUI::Macro::getParams(shift);
my $url = shift;
if (my $image = WebGUI::Asset::File::Image->newByUrl($url)) {
return $image->getThumbnailUrl;
} else {

View file

@ -11,14 +11,12 @@ package WebGUI::Macro::URLEncode;
#-------------------------------------------------------------------
use strict;
use WebGUI::Macro;
use WebGUI::Session;
use WebGUI::URL;
#-------------------------------------------------------------------
sub process {
my @param = WebGUI::Macro::getParams($_[0]);
return WebGUI::URL::escape($param[0]);
return WebGUI::URL::escape(shift);
}

View file

@ -11,13 +11,11 @@ package WebGUI::Macro::User;
#-------------------------------------------------------------------
use strict;
use WebGUI::Macro;
use WebGUI::Session;
#-------------------------------------------------------------------
sub process {
my @param = WebGUI::Macro::getParams($_[0]);
return $session{user}{$param[0]};
return $session{user}{shift};
}

View file

@ -12,7 +12,6 @@ package WebGUI::Macro::a_account;
use strict;
use WebGUI::International;
use WebGUI::Macro;
use WebGUI::Session;
use WebGUI::Asset::Template;
use WebGUI::URL;
@ -20,7 +19,7 @@ use WebGUI::URL;
#-------------------------------------------------------------------
sub process {
my %var;
my @param = WebGUI::Macro::getParams(shift);
my @param = @_;
return WebGUI::URL::page("op=auth;method=init") if ($param[0] eq "linkonly");
$var{'account.url'} = WebGUI::URL::page('op=auth;method=init');
$var{'account.text'} = $param[0] || WebGUI::International::get(46,'Macro_a_account');

View file

@ -12,7 +12,6 @@ package WebGUI::Macro::r_printable;
use strict;
use WebGUI::International;
use WebGUI::Macro;
use WebGUI::Session;
use WebGUI::Asset::Template;
use WebGUI::URL;
@ -21,7 +20,7 @@ use WebGUI::Utility;
#-------------------------------------------------------------------
sub process {
my ($temp, @param, $styleId);
@param = WebGUI::Macro::getParams($_[0]);
@param = @_;
my $append = 'op=makePrintable';
if ($session{env}{REQUEST_URI} =~ /op\=/) {
$append = 'op2='.WebGUI::URL::escape($append);

View file

@ -99,11 +99,13 @@ sub send {
$message .= "Content-Type: text/plain; charset=UTF-8\n";
}
$message .= "\n";
$message = WebGUI::Macro::process($message);
WebGUI::Macro::process(\$message);
#body
$message .= $_[2]."\n";
#footer
$message .= WebGUI::Macro::process("\n".$session{setting}{mailFooter});
my $footer = "\n".$session{setting}{mailFooter};
WebGUI::Macro::process(\$footer);
$message .= $footer;
$message .= "\n\n\nThis message was intended for ".$_[0].", but was overridden in the config file.\n\n\n" if ($session{config}{emailOverride});
if ($session{setting}{smtpServer} =~ /\/sendmail/) {
if (open(MAIL,"| $session{setting}{smtpServer} -t -oi")) {

View file

@ -213,7 +213,8 @@ sub addInternationalizedEntry {
$subject{$u->profileField("language")} = $subject{1} if ($subject{$u->profileField("language")} eq "");
$subject = $subject{$u->profileField("language")};
$message{$u->profileField("language")} = $message{1} if ($message{$u->profileField("language")} eq "");
$message = WebGUI::Macro::process($message{$u->profileField("language")});
$message = $message{$u->profileField("language")};
WebGUI::Macro::process(\$message);
WebGUI::SQL->write("insert into messageLog values (".quote($messageLogId).",".quote($u->userId).",
".quote($message).",".quote($url).",".time().",".quote($message).",".quote($status).")");
if ($url ne "") {

View file

@ -96,8 +96,9 @@ sub www_viewHelp {
my $body = WebGUI::Asset::Template->new("PBtmplHelp000000000001")->process(\%vars);
$ac->addSubmenuItem(WebGUI::URL::page('op=viewHelpIndex'),WebGUI::International::get(95));
$ac->addSubmenuItem(WebGUI::URL::page('op=viewHelpTOC'),WebGUI::International::get('help contents'));
WebGUI::Macro::process(\$body);
return $ac->render(
WebGUI::Macro::process($body),
$body,
WebGUI::International::get(93).': '.$i18n->get($help->{title})
);
}

View file

@ -114,7 +114,10 @@ sub validateProfileData {
$a = WebGUI::SQL->read("select * from userProfileField,userProfileCategory where userProfileField.profileCategoryId=userProfileCategory.profileCategoryId
and userProfileCategory.editable=1 and userProfileField.editable=1 order by userProfileCategory.sequenceNumber,userProfileField.sequenceNumber");
while (%field = $a->hash) {
$data{$field{fieldName}} = WebGUI::Macro::negate(WebGUI::FormProcessor::process($field{fieldName},$field{dataType}, $field{dataDefault}));
my $fieldData = WebGUI::FormProcessor::process($field{fieldName},$field{dataType}, $field{dataDefault});
WebGUI::Macro::negate(\$fieldData);
$data{$field{fieldName}} = $fieldData;
if ($field{required} && $data{$field{fieldName}} eq "") {
$error .= '<li>'.(WebGUI::Operation::Shared::secureEval($field{fieldLabel})).' '.WebGUI::International::get(451).'</li>';
}elsif($field{fieldName} eq "email" && isDuplicateEmail($data{$field{fieldName}})){

View file

@ -287,13 +287,12 @@ sub execute {
=head2 finish ( )
Ends a query after calling the "read" method.
Ends a query after calling the read() or unconditionalRead() methods. Don't use this unless you're not retrieving the full result set, or if you're using it with the unconditionalRead() method.
=cut
sub finish {
$_[0]->{_sth}->finish;
return "";
return $_[0]->{_sth}->finish;
}

View file

@ -150,9 +150,9 @@ if (WebGUI::Grouping::isInGroup(2)) {
} else {
$output = "WebGUI was unable to instantiate your style template.".$var{'body.content'};
}
$output = WebGUI::Macro::process($output);
WebGUI::Macro::process(\$output);
my $macroHeadTags = generateAdditionalHeadTags();
$macroHeadTags = WebGUI::Macro::process($macroHeadTags);
WebGUI::Macro::process(\$macroHeadTags);
$output =~ s/\<\!-- macro head tags --\>/$macroHeadTags/;
return $output;
}

View file

@ -3,6 +3,7 @@ package WebGUI::Subscription;
use WebGUI::Session;
use WebGUI::SQL;
use WebGUI::Grouping;
use WebGUI::Macro;
use WebGUI::Utility;
use WebGUI::Commerce::Payment;
use WebGUI::DateTime;
@ -33,7 +34,9 @@ sub apply {
WebGUI::User->new($userId)->karma($self->{_properties}{karma}, 'Subscription', 'Added for purchasing subscription '.$self->{_properties}{name});
# Process executeOnPurchase field
system(WebGUI::Macro::process($self->{_properties}{executeOnSubscription})) if ($self->{_properties}{executeOnSubscription} ne "");
my $command = $self->{_properties}{executeOnSubscription};
WebGUI::Macro::process(\$command);
system($command) if ($self->{_properties}{executeOnSubscription} ne "");
}
#-------------------------------------------------------------------

View file

@ -305,7 +305,7 @@ sub profileField {
$self = shift;
$fieldName = shift;
$value = shift;
$value = WebGUI::Macro::negate($value);
WebGUI::Macro::negate(\$value);
if (defined $value) {
$self->uncache;
$self->{_profile}{$fieldName} = $value;