commit 4ca5ca2cf1b7502630189397fa19112004ed7f56
parent 7e5c455a63286e186f3b51e5f2c6b471ef9a7f03
Author: dankert <devnull@localhost>
Date: Thu, 14 Jan 2010 08:47:48 +0100
Optimieren für Setzen und Entfernen der $attr_*-Variablen.
Diffstat:
1 file changed, 16 insertions(+), 10 deletions(-)
diff --git a/serviceClasses/TemplateEngine.class.php b/serviceClasses/TemplateEngine.class.php
@@ -228,10 +228,14 @@ class TemplateEngine
$values[] = "'".$attrName."'=>".$this->attributeValue($attrValue);
}
- fwrite( $outFileHandler,'<?php ');
- foreach( $attr as $attrName=>$attrValue )
- fwrite( $outFileHandler,' $attr'.$hash.'_'.$attrName."=".$this->attributeValue($attrValue).'; ');
- fwrite( $outFileHandler,' ?>');
+ // Variablen $attr_* setzen
+ if ( count($attr) > 0 )
+ {
+ fwrite( $outFileHandler,'<?php ');
+ foreach( $attr as $attrName=>$attrValue )
+ fwrite( $outFileHandler,'$a'.$hash.'_'.$attrName."=".$this->attributeValue($attrValue).';');
+ fwrite( $outFileHandler,' ?>');
+ }
$file = file( $inFileName );
$ignore = false;
@@ -288,17 +292,19 @@ class TemplateEngine
if ( !$linebreaks )
$line = rtrim($line);
- // Die Variablen "$attr" müssen pro Ebene eindeutig sein, daher wird an den
+ // Die Variablen "$attr_*" muessen pro Ebene eindeutig sein, daher wird an den
// Variablennamen die Tiefe angehangen.
- $line = str_replace('$attr','$attr'.$hash,$line);
+ $line = str_replace('$attr_','$a'.$hash.'_',$line);
fwrite( $outFileHandler,$line );
}
- // Variablen "$attr" entfernen.
- fwrite( $outFileHandler,'<?php ');
+ // Variablen $attr_* entfernen.
+ $unset_attr = array();
foreach( $attr as $attrName=>$attrValue )
- fwrite( $outFileHandler,'unset($attr'.$hash.'_'.$attrName.');');
- fwrite( $outFileHandler,' ?>');
+ $unset_attr[] = '$a'.$hash.'_'.$attrName;
+
+ if ( count($unset_attr) > 0 )
+ fwrite( $outFileHandler,'<?php unset('.implode(',',$unset_attr).') ?>');
if ( is_file($elFileName) )
{