From f373e38d6d8d1d200959b3acb23a5562a6456894 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Mon, 14 Mar 2022 01:53:27 +0900 Subject: [PATCH] Fix #1893 duplicate function call when loop="" template syntax is used --- classes/template/TemplateHandler.class.php | 2 +- tests/unit/classes/TemplateHandlerTest.php | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/classes/template/TemplateHandler.class.php b/classes/template/TemplateHandler.class.php index 8294bd6d2..d6a56fd2f 100644 --- a/classes/template/TemplateHandler.class.php +++ b/classes/template/TemplateHandler.class.php @@ -561,7 +561,7 @@ class TemplateHandler { $expr_m[2] .= '=>' . trim($expr_m[3]); } - $nodes[$idx - 1] .= sprintf('', $expr_m[1], $expr_m[2]); + $nodes[$idx - 1] .= sprintf('', $expr_m[1], $expr_m[2]); } elseif(isset($expr_m[4]) && $expr_m[4]) { diff --git a/tests/unit/classes/TemplateHandlerTest.php b/tests/unit/classes/TemplateHandlerTest.php index bdc7a3a57..c45d92853 100644 --- a/tests/unit/classes/TemplateHandlerTest.php +++ b/tests/unit/classes/TemplateHandlerTest.php @@ -30,7 +30,7 @@ class TemplateHandlerTest extends \Codeception\TestCase\Test // foreach loop array( '', - '?>' + '?>' ), // while loop array( @@ -180,7 +180,7 @@ class TemplateHandlerTest extends \Codeception\TestCase\Test // issue 135 array( '

{$key}

Loop block {$val}
', - PHP_EOL . 'if($__Context->_m_list_all)foreach($__Context->_m_list_all as $__Context->key=>$__Context->val){ ?>

key ?>

Loop block val ?>
' + PHP_EOL . '$__loop_tmp=$__Context->_m_list_all;if($__loop_tmp)foreach($__loop_tmp as $__Context->key=>$__Context->val){ ?>

key ?>

Loop block val ?>
' ), // issue 136 array( @@ -190,17 +190,17 @@ class TemplateHandlerTest extends \Codeception\TestCase\Test // issue 188 array( '
Hello, world!
', - PHP_EOL . 'if($__Context->ii < $__Context->nn){;' . PHP_EOL . 'if($__Context->dummy)foreach($__Context->dummy as $__Context->k=>$__Context->v){ ?>
Hello, world!
' + PHP_EOL . 'if($__Context->ii < $__Context->nn){;' . PHP_EOL . '$__loop_tmp=$__Context->dummy;if($__loop_tmp)foreach($__loop_tmp as $__Context->k=>$__Context->v){ ?>
Hello, world!
' ), // issue 190 array( '
Hello, world!
', - PHP_EOL . 'if(!($__Context->i >= $__Context->n)){;' . PHP_EOL . 'if($__Context->dummy)foreach($__Context->dummy as $__Context->k=>$__Context->v){ ?>
Hello, world!
' + PHP_EOL . 'if(!($__Context->i >= $__Context->n)){;' . PHP_EOL . '$__loop_tmp=$__Context->dummy;if($__loop_tmp)foreach($__loop_tmp as $__Context->k=>$__Context->v){ ?>
Hello, world!
' ), // issue 183 array( ''."\n".'
{$vvv}
CD
', - '?>vvvls)foreach($__Context->vvvls as $__Context->vvv){ ?>'."\n".'
vvv ?>
CD
' + '?>vvvls;if($__loop_tmp)foreach($__loop_tmp as $__Context->vvv){ ?>'."\n".'
vvv ?>
CD
' ), // issue 512 - ignores array(