Administrationsbereich mit Menüsystem versehen
[kivitendo-erp.git] / SL / Template / Simple.pm
index 9960908..be5ba8b 100644 (file)
@@ -48,6 +48,7 @@ sub set_tag_style {
   my $tag_start               = shift;
   my $tag_end                 = shift;
 
+  $self->{custom_tag_style}   = 1;
   $self->{tag_start}          = $tag_start;
   $self->{tag_end}            = $tag_end;
   $self->{tag_start_qm}       = quotemeta $tag_start;
@@ -56,6 +57,13 @@ sub set_tag_style {
   $self->{substitute_vars_re} = "$self->{tag_start_qm}(.+?)$self->{tag_end_qm}";
 }
 
+sub set_use_template_toolkit {
+  my $self                    = shift;
+  my $value                   = shift;
+
+  $self->{use_template_toolkit} = $value;
+}
+
 sub cleanup {
   my ($self) = @_;
 }
@@ -125,10 +133,12 @@ sub substitute_vars {
 
   while ($text =~ /$self->{substitute_vars_re}/) {
     my ($tag_pos, $tag_len) = ($-[0], $+[0] - $-[0]);
-    my ($var, @options)     = split(/\s+/, $1);
+    my ($var, @option_list) = split(/\s+/, $1);
+    my %options             = map { ($_ => 1) } @option_list;
 
     my $value               = $self->_get_loop_variable($var, 0, @indices);
-    $value                  = $self->format_string($value) unless (grep(/^NOESCAPE$/, @options));
+    $value                  = $form->parse_amount({ numberformat => $::myconfig{output_numberformat} || $::myconfig{numberformat} }, $value) if     $options{NOFORMAT};
+    $value                  = $self->format_string($value)                                                                                   unless $options{NOESCAPE};
 
     substr($text, $tag_pos, $tag_len, $value);
   }
@@ -195,6 +205,7 @@ sub _parse_block_if {
   }
 
   my $value = $self->_get_loop_variable($var, 0, @indices);
+  $value    = scalar(@{ $value }) if (ref($value) || '') eq 'ARRAY';
   my $hit   = 0;
 
   if ($operator_type) {