Apache-AxKit-Plugin-Param-Expr
view release on metacpan or search on metacpan
lib/Apache/AxKit/Plugin/Param/Expr.pm view on Meta::CPAN
use Apache::Request;
sub handler {
my $r = shift;
my @param = $r->dir_config->get('AxParamExpr');
$r->pnotes('INPUT',{}) unless $r->pnotes('INPUT');
my $apr = Apache::Request->instance($r);
while (@param > 1) {
my $val = eval($param[-1]);
AxKit::Debug(5,"param '$param[-2]': ($param[-1]) = $val");
throw Apache::AxKit::Exception::Error(-text => "AxParamExpr '$param[-2]': $@") if $@;
$val = '' if !defined $val;
$r->pnotes('INPUT')->{$param[-2]} = $val;
$apr->param($param[-2],$val);
pop @param;
pop @param;
}
my $key = '';
@param = $r->dir_config->get('AxCacheParamExpr');
while (@param > 1) {
my $val = eval($param[-1]);
AxKit::Debug(5,"param '$param[-2]': ($param[-1]) = $val");
throw Apache::AxKit::Exception::Error(-text => "AxCacheParamExpr '$param[-2]': $@") if $@;
$val = '' if !defined $val;
$r->pnotes('INPUT')->{$param[-2]} = $val;
$apr->param($param[-2],$val);
$key .= '|'.$val;
pop @param;
pop @param;
}
@param = $r->dir_config->get('AxCacheExpr');
while (@param) {
my $val = $r->pnotes('INPUT')->{$param[0]};
AxKit::Debug(5,"param '$param[0]': () = $val");
throw Apache::AxKit::Exception::Error(-text => "AxCacheExpr '$param[0]': $@") if $@;
$val = '' if !defined $val;
$key .= '|'.$val;
shift @param;
}
$r->notes('axkit_cache_extra', $r->notes('axkit_cache_extra') . $key);
return OK;
}
1;
__END__
( run in 0.506 second using v1.01-cache-2.11-cpan-496ff517765 )