1
0
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:
Andreas Fischer 2011-09-27 20:24:16 +02:00
commit af66fbb93b
3 changed files with 17 additions and 7 deletions

View File

@ -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:

View File

@ -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',

View File

@ -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 -->