diff options
| -rw-r--r-- | phpBB/phpbb/template/twig/lexer.php | 8 | ||||
| -rw-r--r-- | tests/template/template_test.php | 32 | ||||
| -rw-r--r-- | tests/template/templates/include_loop.html | 8 | ||||
| -rw-r--r-- | tests/template/templates/include_loop_define.html | 6 | ||||
| -rw-r--r-- | tests/template/templates/loop.html | 14 | ||||
| -rw-r--r-- | tests/template/templates/loop_advanced.html | 20 | ||||
| -rw-r--r-- | tests/template/templates/loop_size.html | 10 | ||||
| -rw-r--r-- | tests/template/templates/loop_vars.html | 18 | 
8 files changed, 60 insertions, 56 deletions
diff --git a/phpBB/phpbb/template/twig/lexer.php b/phpBB/phpbb/template/twig/lexer.php index 3c072adff9..4f127bd7e6 100644 --- a/phpBB/phpbb/template/twig/lexer.php +++ b/phpBB/phpbb/template/twig/lexer.php @@ -200,8 +200,9 @@ class phpbb_template_twig_lexer extends Twig_Lexer  				$subset = '|subset(' . $subset . ')';  			} +			$parent = ($parent) ?: 'loops.';  			// Turn into a Twig for loop -			return "{% for {$name} in loops.{$parent}{$name}{$subset} %}{$body}{% endfor %}"; +			return "{% for {$name} in {$parent}{$name}{$subset} %}{$body}{% endfor %}";  		};  		// Replace <!-- BEGINELSE --> correctly, only needs to be done once @@ -224,7 +225,10 @@ class phpbb_template_twig_lexer extends Twig_Lexer  			// Replace $TEST with definition.TEST  			$inner = preg_replace('#\s\$([a-zA-Z_0-9]+)#', ' definition.$1', $inner); -			// Replace .test with test|length +			// Replace .foo with loops.foo|length +			$inner = preg_replace('#\s\.([a-zA-Z_0-9]+)#', ' loops.$1|length', $inner); + +			// Replace .foo.bar with foo.bar|length  			$inner = preg_replace('#\s\.([a-zA-Z_0-9\.]+)#', ' $1|length', $inner);  			return "<!-- {$matches[1]}IF{$inner}-->"; diff --git a/tests/template/template_test.php b/tests/template/template_test.php index dd9ba21c26..0a6b680100 100644 --- a/tests/template/template_test.php +++ b/tests/template/template_test.php @@ -93,49 +93,49 @@ class phpbb_template_template_test extends phpbb_template_template_test_case  			array(  				'loop.html',  				array(), -				array('loop' => array(array())), +				array('test_loop' => array(array())),  				array(),  				"loop\nloop",  			),  			array(  				'loop.html',  				array(), -				array('loop' => array(array(), array()), 'loop.block' => array(array())), +				array('test_loop' => array(array(), array()), 'test_loop.block' => array(array())),  				array(),  				"loop\nloop\nloop\nloop",  			),  			array(  				'loop.html',  				array(), -				array('loop' => array(array(), array()), 'loop.block' => array(array()), 'block' => array(array(), array())), +				array('test_loop' => array(array(), array()), 'test_loop.block' => array(array()), 'block' => array(array(), array())),  				array(),  				"loop\nloop\nloop\nloop\nloop#0-block#0\nloop#0-block#1\nloop#1-block#0\nloop#1-block#1",  			),  			array(  				'loop_vars.html',  				array(), -				array('loop' => array(array('VARIABLE' => 'x'))), +				array('test_loop' => array(array('VARIABLE' => 'x'))),  				array(),  				"first\n0 - a\nx - b\nset\nlast",  			),  			array(  				'loop_vars.html',  				array(), -				array('loop' => array(array('VARIABLE' => 'x'), array('VARIABLE' => 'y'))), +				array('test_loop' => array(array('VARIABLE' => 'x'), array('VARIABLE' => 'y'))),  				array(),  				"first\n0 - a\nx - b\nset\n1 - a\ny - b\nset\nlast",  			),  			array(  				'loop_vars.html',  				array(), -				array('loop' => array(array('VARIABLE' => 'x'), array('VARIABLE' => 'y')), 'loop.inner' => array(array(), array())), +				array('test_loop' => array(array('VARIABLE' => 'x'), array('VARIABLE' => 'y')), 'test_loop.inner' => array(array(), array())),  				array(),  				"first\n0 - a\nx - b\nset\n1 - a\ny - b\nset\nlast\n0 - c\n1 - c\nlast inner",  			),  			array(  				'loop_advanced.html',  				array(), -				array('loop' => array(array(), array(), array(), array(), array(), array(), array())), +				array('test_loop' => array(array(), array(), array(), array(), array(), array(), array())),  				array(),  				"101234561\nx\n101234561\nx\n101234561\nx\n1234561\nx\n1\nx\n101\nx\n234\nx\n10\nx\n561\nx\n561",  			), @@ -149,14 +149,14 @@ class phpbb_template_template_test extends phpbb_template_template_test_case  			array(  				'define.html',  				array(), -				array('loop' => array(array(), array(), array(), array(), array(), array(), array()), 'test' => array(array()), 'test.deep' => array(array()), 'test.deep.defines' => array(array())), +				array('test_loop' => array(array(), array(), array(), array(), array(), array(), array()), 'test' => array(array()), 'test.deep' => array(array()), 'test.deep.defines' => array(array())),  				array(),  				"xyz\nabc\n\$VALUE == 'abc'abc\nbar\nbar\nabc\ntest!@#$%^&*()_-=+{}[]:;\",<.>/?",  			),  			array(  				'define_advanced.html',  				array(), -				array('loop' => array(array(), array(), array(), array(), array(), array(), array()), 'test' => array(array()), 'test.deep' => array(array()), 'test.deep.defines' => array(array())), +				array('test_loop' => array(array(), array(), array(), array(), array(), array(), array()), 'test' => array(array()), 'test.deep' => array(array()), 'test.deep.defines' => array(array())),  				array(),  				"abc\nzxc\ncde\nbcd",  			), @@ -200,7 +200,7 @@ class phpbb_template_template_test extends phpbb_template_template_test_case  			array(  				'include_loop.html',  				array(), -				array('loop' => array(array('NESTED_FILE' => 'include_loop1.html')), 'loop.inner' => array(array('NESTED_FILE' => 'include_loop1.html'), array('NESTED_FILE' => 'include_loop2.html'), array('NESTED_FILE' => 'include_loop3.html'))), +				array('test_loop' => array(array('NESTED_FILE' => 'include_loop1.html')), 'test_loop.inner' => array(array('NESTED_FILE' => 'include_loop1.html'), array('NESTED_FILE' => 'include_loop2.html'), array('NESTED_FILE' => 'include_loop3.html'))),  				array(),  				"1\n_1\n_02\n_3",  			), @@ -221,8 +221,8 @@ class phpbb_template_template_test extends phpbb_template_template_test_case  			array(  				'loop_vars.html',  				array(), -				array('loop' => array(array('VARIABLE' => 'x'), array('VARIABLE' => 'y')), 'loop.inner' => array(array(), array())), -				array('loop'), +				array('test_loop' => array(array('VARIABLE' => 'x'), array('VARIABLE' => 'y')), 'test_loop.inner' => array(array(), array())), +				array('test_loop'),  				'',  			),  			array( @@ -235,7 +235,7 @@ class phpbb_template_template_test extends phpbb_template_template_test_case  			array(  				'include_loop_define.html',  				array('VARIABLE' => 'value'), -				array('loop' => array(array('NESTED_FILE' => 'variable.html'))), +				array('test_loop' => array(array('NESTED_FILE' => 'variable.html'))),  				array(),  				'value',  			), @@ -243,8 +243,8 @@ class phpbb_template_template_test extends phpbb_template_template_test_case  			array(  				'loop_vars.html',  				array(), -				array('loop' => array(array('VARIABLE' => 'x'), array('VARIABLE' => 'y')), 'loop.inner' => array(array(), array())), -				array('loop.inner'), +				array('test_loop' => array(array('VARIABLE' => 'x'), array('VARIABLE' => 'y')), 'test_loop.inner' => array(array(), array())), +				array('test_loop.inner'),  				"first\n0\n0\n2\nx\nset\n1\n1\n2\ny\nset\nlast",  			),*/  			array( @@ -295,7 +295,7 @@ class phpbb_template_template_test extends phpbb_template_template_test_case  			array(  				'loop_size.html',  				array(), -				array('loop' => array(array()), 'empty_loop' => array()), +				array('test_loop' => array(array()), 'empty_loop' => array()),  				array(),  				"nonexistent = 0\n! nonexistent\n\nempty = 0\n! empty\nloop\n\nin loop",  			), diff --git a/tests/template/templates/include_loop.html b/tests/template/templates/include_loop.html index d5c3d9bc82..5cad34b363 100644 --- a/tests/template/templates/include_loop.html +++ b/tests/template/templates/include_loop.html @@ -1,4 +1,4 @@ -<!-- BEGIN loop --> -<!-- INCLUDE {loop.NESTED_FILE} --> -<!-- BEGIN inner -->_<!-- INCLUDE {inner.NESTED_FILE} --><!-- END inner --> -<!-- END loop --> +<!-- BEGIN test_loop --> +<!-- INCLUDE {test_loop.NESTED_FILE} --> +<!-- BEGIN inner -->_<!-- INCLUDE {test_loop.inner.NESTED_FILE} --><!-- END inner --> +<!-- END test_loop --> diff --git a/tests/template/templates/include_loop_define.html b/tests/template/templates/include_loop_define.html index f539b21396..4bab09422e 100644 --- a/tests/template/templates/include_loop_define.html +++ b/tests/template/templates/include_loop_define.html @@ -1,4 +1,4 @@ -<!-- BEGIN loop --> -<!-- DEFINE $DEF = '{loop.NESTED_FILE}' --> +<!-- BEGIN test_loop --> +<!-- DEFINE $DEF = '{test_loop.NESTED_FILE}' -->  <!-- INCLUDE {$DEF} --> -<!-- END loop --> +<!-- END test_loop --> diff --git a/tests/template/templates/loop.html b/tests/template/templates/loop.html index de1a10004d..f541e934df 100644 --- a/tests/template/templates/loop.html +++ b/tests/template/templates/loop.html @@ -1,21 +1,21 @@ -<!-- BEGIN loop --> +<!-- BEGIN test_loop -->  loop  <!-- BEGINELSE -->  noloop -<!-- END loop --> +<!-- END test_loop --> -<!-- IF .loop --> +<!-- IF .test_loop -->  loop  <!-- ELSE -->  noloop  <!-- ENDIF --> -<!-- IF .loop == 2 --> +<!-- IF .test_loop == 2 -->  loop  <!-- ENDIF --> -<!-- BEGIN loop --> +<!-- BEGIN test_loop -->  <!-- BEGIN !block --> -loop#{loop.S_ROW_COUNT}-block#{block.S_ROW_COUNT} +loop#{test_loop.S_ROW_COUNT}-block#{block.S_ROW_COUNT}  <!-- END !block --> -<!-- END loop --> +<!-- END test_loop --> diff --git a/tests/template/templates/loop_advanced.html b/tests/template/templates/loop_advanced.html index c75fe55f03..1f56686eaa 100644 --- a/tests/template/templates/loop_advanced.html +++ b/tests/template/templates/loop_advanced.html @@ -1,19 +1,19 @@ -<!-- BEGIN loop -->{loop.S_FIRST_ROW}{loop.S_ROW_COUNT}{loop.S_LAST_ROW}<!-- END loop --> +<!-- BEGIN test_loop -->{test_loop.S_FIRST_ROW}{test_loop.S_ROW_COUNT}{test_loop.S_LAST_ROW}<!-- END test_loop -->  x -<!-- BEGIN loop(0) -->{loop.S_FIRST_ROW}{loop.S_ROW_COUNT}{loop.S_LAST_ROW}<!-- END loop --> +<!-- BEGIN test_loop(0) -->{test_loop.S_FIRST_ROW}{test_loop.S_ROW_COUNT}{test_loop.S_LAST_ROW}<!-- END test_loop -->  x -<!-- BEGIN loop(0,-1) -->{loop.S_FIRST_ROW}{loop.S_ROW_COUNT}{loop.S_LAST_ROW}<!-- END loop --> +<!-- BEGIN test_loop(0,-1) -->{test_loop.S_FIRST_ROW}{test_loop.S_ROW_COUNT}{test_loop.S_LAST_ROW}<!-- END test_loop -->  x -<!-- BEGIN loop(1) -->{loop.S_FIRST_ROW}{loop.S_ROW_COUNT}{loop.S_LAST_ROW}<!-- END loop --> +<!-- BEGIN test_loop(1) -->{test_loop.S_FIRST_ROW}{test_loop.S_ROW_COUNT}{test_loop.S_LAST_ROW}<!-- END test_loop -->  x -<!-- BEGIN loop(1,1) -->{loop.S_FIRST_ROW}{loop.S_ROW_COUNT}{loop.S_LAST_ROW}<!-- END loop --> +<!-- BEGIN test_loop(1,1) -->{test_loop.S_FIRST_ROW}{test_loop.S_ROW_COUNT}{test_loop.S_LAST_ROW}<!-- END test_loop -->  x -<!-- BEGIN loop(0,1) -->{loop.S_FIRST_ROW}{loop.S_ROW_COUNT}{loop.S_LAST_ROW}<!-- END loop --> +<!-- BEGIN test_loop(0,1) -->{test_loop.S_FIRST_ROW}{test_loop.S_ROW_COUNT}{test_loop.S_LAST_ROW}<!-- END test_loop -->  x -<!-- BEGIN loop(2,4) -->{loop.S_FIRST_ROW}{loop.S_ROW_COUNT}{loop.S_LAST_ROW}<!-- END loop --> +<!-- BEGIN test_loop(2,4) -->{test_loop.S_FIRST_ROW}{test_loop.S_ROW_COUNT}{test_loop.S_LAST_ROW}<!-- END test_loop -->  x -<!-- BEGIN loop(0,-7) -->{loop.S_FIRST_ROW}{loop.S_ROW_COUNT}{loop.S_LAST_ROW}<!-- END loop --> +<!-- BEGIN test_loop(0,-7) -->{test_loop.S_FIRST_ROW}{test_loop.S_ROW_COUNT}{test_loop.S_LAST_ROW}<!-- END test_loop -->  x -<!-- BEGIN loop(-2,6) -->{loop.S_FIRST_ROW}{loop.S_ROW_COUNT}{loop.S_LAST_ROW}<!-- END loop --> +<!-- BEGIN test_loop(-2,6) -->{test_loop.S_FIRST_ROW}{test_loop.S_ROW_COUNT}{test_loop.S_LAST_ROW}<!-- END test_loop -->  x -<!-- BEGIN loop(-2,-1) -->{loop.S_FIRST_ROW}{loop.S_ROW_COUNT}{loop.S_LAST_ROW}<!-- END loop --> +<!-- BEGIN test_loop(-2,-1) -->{test_loop.S_FIRST_ROW}{test_loop.S_ROW_COUNT}{test_loop.S_LAST_ROW}<!-- END test_loop --> diff --git a/tests/template/templates/loop_size.html b/tests/template/templates/loop_size.html index 8f581cef10..2b1fcd2dd4 100644 --- a/tests/template/templates/loop_size.html +++ b/tests/template/templates/loop_size.html @@ -22,18 +22,18 @@  	! empty  <!-- ENDIF --> -<!-- IF .loop --> +<!-- IF .test_loop -->  	loop  <!-- ENDIF --> -<!-- IF .loop == 0 --> +<!-- IF .test_loop == 0 -->  	loop = 0  <!-- ENDIF --> -<!-- IF ! .loop --> +<!-- IF ! .test_loop -->  	! loop  <!-- ENDIF --> -<!-- BEGIN loop --> +<!-- BEGIN test_loop -->  	in loop -<!-- END loop --> +<!-- END test_loop --> diff --git a/tests/template/templates/loop_vars.html b/tests/template/templates/loop_vars.html index 7d86d4b7b6..70a3eb2cec 100644 --- a/tests/template/templates/loop_vars.html +++ b/tests/template/templates/loop_vars.html @@ -1,13 +1,13 @@ -<!-- BEGIN loop --> -<!-- IF loop.S_FIRST_ROW -->first<!-- ENDIF --> -{loop.S_ROW_NUM} - a -{loop.VARIABLE} - b -<!-- IF loop.VARIABLE -->set<!-- ENDIF --> -<!-- IF loop.S_LAST_ROW --> +<!-- BEGIN test_loop --> +<!-- IF test_loop.S_FIRST_ROW -->first<!-- ENDIF --> +{test_loop.S_ROW_NUM} - a +{test_loop.VARIABLE} - b +<!-- IF test_loop.VARIABLE -->set<!-- ENDIF --> +<!-- IF test_loop.S_LAST_ROW -->  last  <!-- ENDIF -->  <!-- BEGIN inner --> -{inner.S_ROW_NUM} - c -<!-- IF inner.S_LAST_ROW and inner.S_ROW_COUNT and inner.S_NUM_ROWS -->last inner<!-- ENDIF --> +{test_loop.inner.S_ROW_NUM} - c +<!-- IF test_loop.inner.S_LAST_ROW and test_loop.inner.S_ROW_COUNT and test_loop.inner.S_NUM_ROWS -->last inner<!-- ENDIF -->  <!-- END inner --> -<!-- END loop --> +<!-- END test_loop -->  | 
