]> wagnertech.de Git - kivitendo-erp.git/blobdiff - SL/Template/LaTeX.pm
Templates: Auswertung des "else"-Teils gefixt, wenn "if"-Teil Variablenvergleiche...
[kivitendo-erp.git] / SL / Template / LaTeX.pm
index 889ed07130543b2351c0592c95fdd65b3da7bf99..eb99b1bb4193ec2330de40fe878c7af5f9be501f 100644 (file)
@@ -1,9 +1,6 @@
 package SL::Template::LaTeX;
 
-use vars qw(@ISA);
-
-use SL::Template;
-@ISA = qw(SL::Template::Simple);
+use parent qw(SL::Template::Simple);
 
 use strict;
 
@@ -58,7 +55,7 @@ sub parse_foreach {
 
   for (my $i = 0; $i < scalar(@{$ary}); $i++) {
     # do magic markers
-    $form->{"__first__"}   = $i == 1;
+    $form->{"__first__"}   = $i == 0;
     $form->{"__last__"}    = ($i + 1) == scalar(@{$ary});
     $form->{"__odd__"}     = (($i + 1) % 2) == 1;
     $form->{"__counter__"} = $i + 1;
@@ -135,7 +132,7 @@ sub find_end {
 
     my $keyword_pos = $pos - 1 + $tag_start_len;
 
-    if ((substr($text, $keyword_pos, 2) eq 'if') || (substr($text, $keyword_pos, 3) eq 'for')) {
+    if ((substr($text, $keyword_pos, 2) eq 'if') || (substr($text, $keyword_pos, 3) eq 'foreach')) {
       $depth++;
 
     } elsif ((substr($text, $keyword_pos, 4) eq 'else') && (1 == $depth)) {
@@ -323,6 +320,7 @@ sub parse {
     $self->{"error"} = "$!";
     return 0;
   }
+  binmode IN, ":utf8" if $::locale->is_utf8;
   my @lines = <IN>;
   close(IN);
 
@@ -349,6 +347,7 @@ sub parse {
     return 0;
   }
 
+  binmode OUT, ":utf8" if $::locale->is_utf8;
   print(OUT $new_contents);
 
   if ($form->{"format"} =~ /postscript/i) {