mirror of
https://github.com/phpbb/phpbb.git
synced 2025-05-07 08:05:25 +02:00
Merge branch 'develop' of git://github.com/phpbb/phpbb3 into develop
* 'develop' of git://github.com/phpbb/phpbb3: [ticket/10392] Alter parent namespace stripping. [ticket/10392] Test for magic loop variables with nested namespaces. [ticket/10392] Missed fix for S_BLOCK_NAME. [ticket/10392] Fix access to nested special block variables.
This commit is contained in:
commit
af66fbb93b
@ -873,6 +873,15 @@ class phpbb_template_filter extends php_user_filter
|
|||||||
// Strip the trailing period.
|
// Strip the trailing period.
|
||||||
$namespace = substr($namespace, 0, -1);
|
$namespace = substr($namespace, 0, -1);
|
||||||
|
|
||||||
|
if (($pos = strrpos($namespace, '.')) !== false)
|
||||||
|
{
|
||||||
|
$local_namespace = substr($namespace, $pos + 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$local_namespace = $namespace;
|
||||||
|
}
|
||||||
|
|
||||||
$expr = true;
|
$expr = true;
|
||||||
|
|
||||||
// S_ROW_COUNT is deceptive, it returns the current row number now the number of rows
|
// S_ROW_COUNT is deceptive, it returns the current row number now the number of rows
|
||||||
@ -881,23 +890,23 @@ class phpbb_template_filter extends php_user_filter
|
|||||||
{
|
{
|
||||||
case 'S_ROW_NUM':
|
case 'S_ROW_NUM':
|
||||||
case 'S_ROW_COUNT':
|
case 'S_ROW_COUNT':
|
||||||
$varref = "\$_${namespace}_i";
|
$varref = "\$_${local_namespace}_i";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'S_NUM_ROWS':
|
case 'S_NUM_ROWS':
|
||||||
$varref = "\$_${namespace}_count";
|
$varref = "\$_${local_namespace}_count";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'S_FIRST_ROW':
|
case 'S_FIRST_ROW':
|
||||||
$varref = "(\$_${namespace}_i == 0)";
|
$varref = "(\$_${local_namespace}_i == 0)";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'S_LAST_ROW':
|
case 'S_LAST_ROW':
|
||||||
$varref = "(\$_${namespace}_i == \$_${namespace}_count - 1)";
|
$varref = "(\$_${local_namespace}_i == \$_${local_namespace}_count - 1)";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'S_BLOCK_NAME':
|
case 'S_BLOCK_NAME':
|
||||||
$varref = "'$namespace'";
|
$varref = "'$local_namespace'";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -248,7 +248,7 @@ class phpbb_template_template_test extends phpbb_template_template_test_case
|
|||||||
array('outer' => array(array()), 'outer.middle' => array(array()), 'outer.middle.inner' => array(array('VARIABLE' => 'z'), array('VARIABLE' => 'zz'))),
|
array('outer' => array(array()), 'outer.middle' => array(array()), 'outer.middle.inner' => array(array('VARIABLE' => 'z'), array('VARIABLE' => 'zz'))),
|
||||||
array(),
|
array(),
|
||||||
// I don't completely understand this output, hopefully it's correct
|
// I don't completely understand this output, hopefully it's correct
|
||||||
"top-level content\nouter\n\ninner z\nfirst row\n\ninner zz",
|
"top-level content\nouter\nmiddle\ninner z\nfirst row of 2 in inner\n\ninner zz",
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'loop_size.html',
|
'loop_size.html',
|
||||||
|
@ -2,10 +2,11 @@ top-level content
|
|||||||
<!-- BEGIN outer -->
|
<!-- BEGIN outer -->
|
||||||
outer
|
outer
|
||||||
<!-- BEGIN middle -->
|
<!-- BEGIN middle -->
|
||||||
|
{outer.middle.S_BLOCK_NAME}
|
||||||
<!-- BEGIN inner -->
|
<!-- BEGIN inner -->
|
||||||
inner {inner.VARIABLE}
|
inner {inner.VARIABLE}
|
||||||
<!-- IF outer.middle.inner.S_FIRST_ROW -->
|
<!-- IF outer.middle.inner.S_FIRST_ROW -->
|
||||||
first row
|
first row of {outer.middle.inner.S_NUM_ROWS} in {middle.inner.S_BLOCK_NAME}
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
<!-- END inner -->
|
<!-- END inner -->
|
||||||
<!-- END middle -->
|
<!-- END middle -->
|
||||||
|
Loading…
x
Reference in New Issue
Block a user