]> git.p6c8.net - devedit.git/commitdiff
Updated to version 1.4a
authorpcanterino <>
Mon, 21 Mar 2005 15:54:16 +0000 (15:54 +0000)
committerpcanterino <>
Mon, 21 Mar 2005 15:54:16 +0000 (15:54 +0000)
See http://www.patshaping.de/redirector/redirect.php?page=template-class

modules/Template.pm

index dd0f24baa860664dbe401e50a078edacfbc34137..148feed53dd80a47082ebef55cd444cbbadab4f6 100644 (file)
@@ -1,12 +1,12 @@
 package Template;
 
 #
-# Template (Version 1.4)
+# Template (Version 1.4a)
 #
 # Klasse zum Parsen von Templates
 #
 # Autor:            Patrick Canterino <patrick@patshaping.de>
-# Letzte Aenderung: 5.2.2005
+# Letzte Aenderung: 21.3.2005
 #
 
 use strict;
@@ -180,7 +180,18 @@ sub parse_if_block($$)
   my $start    = index($template,'{IF '.$name.'}');
   my $tpl_tmp  = substr($template,$start);
   my @splitted = split(/\{ENDIF\}/,$tpl_tmp);
-  push(@splitted,'') if(substr($template,-7) eq '{ENDIF}');
+
+  # Wenn sich am Ende der Zeichenkette {ENDIF} befinden, werden diese
+  # von split() ignoriert, was zu einem Verschachtelungsfehler fuehrt
+  # Die fehlenden leeren Zeichenketten muessen von Hand eingefuegt werden
+
+  my $x = 1;
+
+  while(substr($tpl_tmp,-7*$x,7) eq '{ENDIF}')
+  {
+   push(@splitted,'');
+   $x++;
+  }
 
   my $block = ''; # Kompletter bedingter Block
   my $ifs   = 0;  # IF-Zaehler (wird fuer jedes IF erhoeht und fuer jedes ENDIF erniedrigt)

patrick-canterino.de