summaryrefslogtreecommitdiff
path: root/LedgerSMB/Template.pm
diff options
context:
space:
mode:
authoreinhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46>2007-11-22 06:19:05 +0000
committereinhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46>2007-11-22 06:19:05 +0000
commit08e1b04d20e4f328638fbde9f7a2ae54a3dca966 (patch)
tree1191bd1b7d8bad8873a95b864e108e8358ae2345 /LedgerSMB/Template.pm
parenta7badcbfb8db7f379590d66031137efb9f65717c (diff)
First (unsuccessful) attempt to automatically handle number formatting in the template engine..
Customer screen enhancements as well. git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@1890 4979c152-3d1c-0410-bac9-87ea11338e46
Diffstat (limited to 'LedgerSMB/Template.pm')
-rwxr-xr-xLedgerSMB/Template.pm33
1 files changed, 32 insertions, 1 deletions
diff --git a/LedgerSMB/Template.pm b/LedgerSMB/Template.pm
index 28c1f40e..aff967a0 100755
--- a/LedgerSMB/Template.pm
+++ b/LedgerSMB/Template.pm
@@ -198,6 +198,35 @@ sub _valid_language {
return 1;
}
+sub _preprocess {
+ my ($self, $vars) = @_;
+ return unless $self->{myconfig};
+ use LedgerSMB;
+ if (UNIVERSAL::isa($vars, 'Math::BigFloat')){
+ $vars =
+ LedgerSMB::format_amount('LedgerSMB',
+ {amount => $vars.
+ user => $self->{myconfig} });
+ }
+ my $type = ref($vars);
+
+ if ($type eq 'SCALAR' || !$type){
+ return;
+ }
+ if ($type eq 'ARRAY'){
+ for (@$vars){
+ if (ref($_)){
+ $self->_preprocess($_);
+ }
+ }
+ }
+ else {
+ for my $key (keys %$vars){
+ $self->_preprocess($vars->{$key});
+ }
+ }
+}
+
sub render {
my $self = shift;
my $vars = shift;
@@ -205,7 +234,9 @@ sub render {
throw Error::Simple "Invalid format";
}
my $format = "LedgerSMB::Template::$self->{format}";
-
+# if ($self->{myconfig}){
+# $self->_preprocess($vars);
+# }
eval "require $format";
if ($@) {
throw Error::Simple $@;