mirror of
https://github.com/phpbb/phpbb.git
synced 2025-05-06 15:45:34 +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.
|
||||
$namespace = substr($namespace, 0, -1);
|
||||
|
||||
if (($pos = strrpos($namespace, '.')) !== false)
|
||||
{
|
||||
$local_namespace = substr($namespace, $pos + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
$local_namespace = $namespace;
|
||||
}
|
||||
|
||||
$expr = true;
|
||||
|
||||
// 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_COUNT':
|
||||
$varref = "\$_${namespace}_i";
|
||||
$varref = "\$_${local_namespace}_i";
|
||||
break;
|
||||
|
||||
case 'S_NUM_ROWS':
|
||||
$varref = "\$_${namespace}_count";
|
||||
$varref = "\$_${local_namespace}_count";
|
||||
break;
|
||||
|
||||
case 'S_FIRST_ROW':
|
||||
$varref = "(\$_${namespace}_i == 0)";
|
||||
$varref = "(\$_${local_namespace}_i == 0)";
|
||||
break;
|
||||
|
||||
case 'S_LAST_ROW':
|
||||
$varref = "(\$_${namespace}_i == \$_${namespace}_count - 1)";
|
||||
$varref = "(\$_${local_namespace}_i == \$_${local_namespace}_count - 1)";
|
||||
break;
|
||||
|
||||
case 'S_BLOCK_NAME':
|
||||
$varref = "'$namespace'";
|
||||
$varref = "'$local_namespace'";
|
||||
break;
|
||||
|
||||
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(),
|
||||
// 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(
|
||||
'loop_size.html',
|
||||
|
@ -2,10 +2,11 @@ top-level content
|
||||
<!-- BEGIN outer -->
|
||||
outer
|
||||
<!-- BEGIN middle -->
|
||||
{outer.middle.S_BLOCK_NAME}
|
||||
<!-- BEGIN inner -->
|
||||
inner {inner.VARIABLE}
|
||||
<!-- 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 -->
|
||||
<!-- END inner -->
|
||||
<!-- END middle -->
|
||||
|
Loading…
x
Reference in New Issue
Block a user