Trimming loop variables

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@9583 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
taggon 2011-10-11 08:12:41 +00:00
parent 5334a8b726
commit fb15daa828
2 changed files with 8 additions and 1 deletions

View file

@ -324,7 +324,9 @@
case 'loop':
if(!preg_match('@^(?:(.+?)=>(.+?)(?:,(.+?))?|(.*?;.*?;.*?)|(.+?)\s*=\s*(.+?))$@', $expr, $expr_m)) break;
if($expr_m[1]) {
if($expr_m[3]) $expr_m[2] .= '=>'.$expr_m[3];
$expr_m[1] = trim($expr_m[1]);
$expr_m[2] = trim($expr_m[2]);
if($expr_m[3]) $expr_m[2] .= '=>'.trim($expr_m[3]);
$nodes[$idx-1] .= "<?php if({$expr_m[1]}&&count({$expr_m[1]}))foreach({$expr_m[1]} as {$expr_m[2]}){ ?>";
}elseif($expr_m[4]) {
$nodes[$idx-1] .= "<?php for({$expr_m[4]}){ ?>";

View file

@ -194,6 +194,11 @@ class TemplateHandlerTest extends PHPUnit_Framework_TestCase
'<br cond="$var==\'foo\'" />bar',
'<?php if($__Context->var==\'foo\'){ ?><br /><?php } ?>bar'
),
// issue 188
array(
'<div cond="$ii < $nn" loop="$dummy => $k, $v">Hello, world!</div>',
'<?php if($__Context->ii < $__Context->nn){ ?><?php if($__Context->dummy&&count($__Context->dummy))foreach($__Context->dummy as $__Context->k=>$__Context->v){ ?><div>Hello, world!</div><?php }} ?>'
),
);
}