SL::Template: Optionen von den Contrllern zum eigentlichen Template-Modul durchleiten
authorMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 16 Jan 2014 12:21:28 +0000 (13:21 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 1 Apr 2014 11:12:26 +0000 (13:12 +0200)
SL/Form.pm
SL/Template/Simple.pm

index 0d6e9ae..ed31ddf 100644 (file)
@@ -1019,7 +1019,8 @@ sub parse_template {
                                       file_name => $self->{IN},
                                       form      => $self,
                                       myconfig  => $myconfig,
-                                      userspath => $userspath);
+                                      userspath => $userspath,
+                                      %{ $self->{TEMPLATE_DRIVER_OPTIONS} || {} });
 
   # Copy the notes from the invoice/sales order etc. back to the variable "notes" because that is where most templates expect it to be.
   $self->{"notes"} = $self->{ $self->{"formname"} . "notes" };
index 8696796..a4b98ca 100644 (file)
@@ -34,6 +34,10 @@ sub _init {
 
   $self->{$_} = $params{$_} for keys %params;
 
+  $self->{variable_content_types}        ||= {};
+  $self->{variable_content_types}->{$_}    = lc $self->{variable_content_types}->{$_} for keys %{ $self->{variable_content_types} };
+  $self->{default_variable_content_type}   = 'text';
+
   $self->{error}     = undef;
   $self->{quot_re}   = '"';
 
@@ -135,7 +139,7 @@ sub substitute_vars {
 
     my $value               = $self->_get_loop_variable($var, 0, @indices);
     $value                  = $form->parse_amount({ numberformat => $::myconfig{output_numberformat} || $::myconfig{numberformat} }, $value) if     $options{NOFORMAT};
-    $value                  = $self->format_string($value)                                                                                   unless $options{NOESCAPE};
+    $value                  = $self->format_string($value, $var)                                                                             unless $options{NOESCAPE};
 
     substr($text, $tag_pos, $tag_len, $value);
   }