aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/template/context.php
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2013-07-11 12:11:41 -0700
committerNils Adermann <naderman@naderman.de>2013-07-11 12:11:41 -0700
commit59f34bef087259722e1f7eaa95b96460e007cb30 (patch)
treed7dfcc712537e672a965d924cac679670d09583e /phpBB/includes/template/context.php
parent7104aeb77e2f6066cbbda0585fc8523426e4b7c7 (diff)
parent947b907efef43704c620507db17aff4fe115f219 (diff)
downloadforums-59f34bef087259722e1f7eaa95b96460e007cb30.tar
forums-59f34bef087259722e1f7eaa95b96460e007cb30.tar.gz
forums-59f34bef087259722e1f7eaa95b96460e007cb30.tar.bz2
forums-59f34bef087259722e1f7eaa95b96460e007cb30.tar.xz
forums-59f34bef087259722e1f7eaa95b96460e007cb30.zip
Merge pull request #1470 from EXreaction/feature/twig
Feature/twig
Diffstat (limited to 'phpBB/includes/template/context.php')
-rw-r--r--phpBB/includes/template/context.php34
1 files changed, 32 insertions, 2 deletions
diff --git a/phpBB/includes/template/context.php b/phpBB/includes/template/context.php
index ec09da1cf3..c5ce7422b9 100644
--- a/phpBB/includes/template/context.php
+++ b/phpBB/includes/template/context.php
@@ -138,7 +138,7 @@ class phpbb_template_context
}
$s_row_count = isset($str[$blocks[$blockcount]]) ? sizeof($str[$blocks[$blockcount]]) : 0;
- $vararray['S_ROW_COUNT'] = $s_row_count;
+ $vararray['S_ROW_COUNT'] = $vararray['S_ROW_NUM'] = $s_row_count;
// Assign S_FIRST_ROW
if (!$s_row_count)
@@ -146,6 +146,9 @@ class phpbb_template_context
$vararray['S_FIRST_ROW'] = true;
}
+ // Assign S_BLOCK_NAME
+ $vararray['S_BLOCK_NAME'] = $blocks[$blockcount];
+
// Now the tricky part, we always assign S_LAST_ROW and remove the entry before
// This is much more clever than going through the complete template data on display (phew)
$vararray['S_LAST_ROW'] = true;
@@ -158,12 +161,18 @@ class phpbb_template_context
// We're adding a new iteration to this block with the given
// variable assignments.
$str[$blocks[$blockcount]][] = $vararray;
+
+ // Set S_NUM_ROWS
+ foreach ($str[$blocks[$blockcount]] as &$mod_block)
+ {
+ $mod_block['S_NUM_ROWS'] = sizeof($str[$blocks[$blockcount]]);
+ }
}
else
{
// Top-level block.
$s_row_count = (isset($this->tpldata[$blockname])) ? sizeof($this->tpldata[$blockname]) : 0;
- $vararray['S_ROW_COUNT'] = $s_row_count;
+ $vararray['S_ROW_COUNT'] = $vararray['S_ROW_NUM'] = $s_row_count;
// Assign S_FIRST_ROW
if (!$s_row_count)
@@ -171,6 +180,9 @@ class phpbb_template_context
$vararray['S_FIRST_ROW'] = true;
}
+ // Assign S_BLOCK_NAME
+ $vararray['S_BLOCK_NAME'] = $blockname;
+
// We always assign S_LAST_ROW and remove the entry before
$vararray['S_LAST_ROW'] = true;
if ($s_row_count > 0)
@@ -180,6 +192,12 @@ class phpbb_template_context
// Add a new iteration to this block with the variable assignments we were given.
$this->tpldata[$blockname][] = $vararray;
+
+ // Set S_NUM_ROWS
+ foreach ($this->tpldata[$blockname] as &$mod_block)
+ {
+ $mod_block['S_NUM_ROWS'] = sizeof($this->tpldata[$blockname]);
+ }
}
return true;
@@ -298,14 +316,26 @@ class phpbb_template_context
$vararray['S_FIRST_ROW'] = true;
}
+ // Assign S_BLOCK_NAME
+ $vararray['S_BLOCK_NAME'] = $blockname;
+
// Re-position template blocks
for ($i = sizeof($block); $i > $key; $i--)
{
$block[$i] = $block[$i-1];
+
+ $block[$i]['S_ROW_COUNT'] = $block[$i]['S_ROW_NUM'] = $i;
}
// Insert vararray at given position
$block[$key] = $vararray;
+ $block[$key]['S_ROW_COUNT'] = $block[$key]['S_ROW_NUM'] = $key;
+
+ // Set S_NUM_ROWS
+ foreach ($this->tpldata[$blockname] as &$mod_block)
+ {
+ $mod_block['S_NUM_ROWS'] = sizeof($this->tpldata[$blockname]);
+ }
return true;
}