- Fixed a template variable rewriting problem with Template Toolkit.
This commit is contained in:
parent
034496f260
commit
7bb998c6ee
2 changed files with 19 additions and 15 deletions
|
|
@ -20,21 +20,22 @@ use Template;
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
sub _rewriteVars { # replace dots with underscrores in keys (except in keys that aren't usable as variables (URLs etc.))
|
||||
my $vars = shift;
|
||||
foreach my $key (keys %$vars){
|
||||
my $newKey = $key;
|
||||
$newKey =~ s/\./_/g if $newKey !~ /\//;
|
||||
if(ref $vars->{$key} eq 'HASH'){
|
||||
$vars->{$newKey} = _rewriteVars($vars->{$key});
|
||||
delete $vars->{$key} if($key ne $newKey);
|
||||
}else{
|
||||
if($key ne $newKey){
|
||||
$vars->{$newKey} = $vars->{$key};
|
||||
delete $vars->{$key};
|
||||
my $vars = shift;
|
||||
my $newVars = {};
|
||||
foreach my $key (keys %$vars){
|
||||
my $newKey = $key;
|
||||
$newKey =~ s/\./_/g if $newKey !~ /\//;
|
||||
if ( ref $vars->{$key} eq 'ARRAY') {
|
||||
foreach my $entry (@{$vars->{$key}}) {
|
||||
push(@{$newVars->{$newKey}}, _rewriteVars($entry));
|
||||
}
|
||||
}
|
||||
}
|
||||
return $vars;
|
||||
} elsif(ref $vars->{$key} eq 'HASH') {
|
||||
$newVars->{$newKey} = _rewriteVars($vars->{$key});
|
||||
} else {
|
||||
$newVars->{$newKey} = $vars->{$key};
|
||||
}
|
||||
}
|
||||
return $newVars;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue