diff --git a/classes/template/TemplateHandler.class.php b/classes/template/TemplateHandler.class.php
index a65890319..d6831a6fb 100644
--- a/classes/template/TemplateHandler.class.php
+++ b/classes/template/TemplateHandler.class.php
@@ -521,7 +521,10 @@ class TemplateHandler
{
$expr_m[2] .= '=>' . trim($expr_m[3]);
}
- $nodes[$idx - 1] .= "";
+ $nodes[$idx - 1] .= sprintf(
+ ''
+ ,$expr_m[1], $expr_m[2], md5( $buff . strval($idx-1) )
+ );
}
elseif($expr_m[4])
{
diff --git a/tests/unit/classes/template/TemplateHandlerTest.php b/tests/unit/classes/template/TemplateHandlerTest.php
index daece9612..4ec211c6c 100644
--- a/tests/unit/classes/template/TemplateHandlerTest.php
+++ b/tests/unit/classes/template/TemplateHandlerTest.php
@@ -33,7 +33,7 @@ class TemplateHandlerTest extends \Codeception\TestCase\Test
// foreach loop
array(
'
',
- '?>arr&&count($__Context->arr))foreach($__Context->arr as $__Context->key=>$__Context->val){ ?>- Link
arr2&&count($__Context->arr2))foreach($__Context->arr2 as $__Context->key2=>$__Context->val2){ ?>
'
+ '?>arr;if($tba7582b53a5d9d2bfecc5c52511ef7ee&&count($tba7582b53a5d9d2bfecc5c52511ef7ee))foreach($tba7582b53a5d9d2bfecc5c52511ef7ee as $__Context->key=>$__Context->val){ ?>- Link
arr2;if($tf92ab3139c8d388f9a5f63e0fdd8f516&&count($tf92ab3139c8d388f9a5f63e0fdd8f516))foreach($tf92ab3139c8d388f9a5f63e0fdd8f516 as $__Context->key2=>$__Context->val2){ ?>
'
),
// while loop
array(
@@ -183,7 +183,7 @@ class TemplateHandlerTest extends \Codeception\TestCase\Test
// issue 135
array(
'{$key}
Loop block {$val}
',
- PHP_EOL . 'if($__Context->_m_list_all&&count($__Context->_m_list_all))foreach($__Context->_m_list_all as $__Context->key=>$__Context->val){ ?>key ?>
Loop block val ?>
'
+ PHP_EOL . '$t1b443c9e474abcf95c0ff70798d10a4c=$__Context->_m_list_all;if($t1b443c9e474abcf95c0ff70798d10a4c&&count($t1b443c9e474abcf95c0ff70798d10a4c))foreach($t1b443c9e474abcf95c0ff70798d10a4c as $__Context->key=>$__Context->val){ ?>key ?>
Loop block val ?>
'
),
// issue 136
array(
@@ -193,17 +193,17 @@ class TemplateHandlerTest extends \Codeception\TestCase\Test
// issue 188
array(
'Hello, world!
',
- PHP_EOL . 'if($__Context->ii < $__Context->nn){;'.PHP_EOL.'if($__Context->dummy&&count($__Context->dummy))foreach($__Context->dummy as $__Context->k=>$__Context->v){ ?>Hello, world!
'
+ PHP_EOL . 'if($__Context->ii < $__Context->nn){;' . PHP_EOL . '$te536ab402425aa07f37ece1808639b07=$__Context->dummy;if($te536ab402425aa07f37ece1808639b07&&count($te536ab402425aa07f37ece1808639b07))foreach($te536ab402425aa07f37ece1808639b07 as $__Context->k=>$__Context->v){ ?>Hello, world!
'
),
// issue 190
array(
'Hello, world!
',
- PHP_EOL . 'if(!($__Context->i >= $__Context->n)){;'.PHP_EOL.'if($__Context->dummy&&count($__Context->dummy))foreach($__Context->dummy as $__Context->k=>$__Context->v){ ?>Hello, world!
'
+ PHP_EOL . 'if(!($__Context->i >= $__Context->n)){;' . PHP_EOL . '$tcf235db237866cd5f280e0a7fdb2dca8=$__Context->dummy;if($tcf235db237866cd5f280e0a7fdb2dca8&&count($tcf235db237866cd5f280e0a7fdb2dca8))foreach($tcf235db237866cd5f280e0a7fdb2dca8 as $__Context->k=>$__Context->v){ ?>Hello, world!
'
),
// issue 183
array(
'',
- '?>vvvls&&count($__Context->vvvls))foreach($__Context->vvvls as $__Context->vvv){ ?>| vvv ?> |
'."\n".'| C | D |
'
+ '?>vvvls;if($t605f930a4a05d6efbed70a9059f688fe&&count($t605f930a4a05d6efbed70a9059f688fe))foreach($t605f930a4a05d6efbed70a9059f688fe as $__Context->vvv){ ?>| vvv ?> |
'."\n".'| C | D |
'
),
// issue 512 - ignores