1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-03-14 04:30:29 +01:00

Merge remote-tracking branch 'cyberalien/feature/append_var' into develop

* cyberalien/feature/append_var:
  [feature/append_var] Adding test case
  [feature/append_var] Adding append_var template class function
This commit is contained in:
Oleg Pudeyev 2012-03-07 18:20:49 -05:00
commit 65e711cbb0
3 changed files with 70 additions and 2 deletions

View File

@ -53,7 +53,9 @@ class phpbb_template_context
}
/**
* Assign a single variable to a single key
* Assign a single scalar value to a single key.
*
* Value can be a string, an integer or a boolean.
*
* @param string $varname Variable name
* @param string $varval Value to assign to variable
@ -65,6 +67,21 @@ class phpbb_template_context
return true;
}
/**
* Append text to the string value stored in a key.
*
* Text is appended using the string concatenation operator (.).
*
* @param string $varname Variable name
* @param string $varval Value to append to variable
*/
public function append_var($varname, $varval)
{
$this->rootref[$varname] = (isset($this->rootref[$varname]) ? $this->rootref[$varname] : '') . $varval;
return true;
}
/**
* Returns a reference to template data array.
*

View File

@ -378,7 +378,9 @@ class phpbb_template
}
/**
* Assign a single variable to a single key
* Assign a single scalar value to a single key.
*
* Value can be a string, an integer or a boolean.
*
* @param string $varname Variable name
* @param string $varval Value to assign to variable
@ -388,6 +390,19 @@ class phpbb_template
$this->context->assign_var($varname, $varval);
}
/**
* Append text to the string value stored in a key.
*
* Text is appended using the string concatenation operator (.).
*
* @param string $varname Variable name
* @param string $varval Value to append to variable
*/
public function append_var($varname, $varval)
{
$this->context->append_var($varname, $varval);
}
// Docstring is copied from phpbb_template_context method with the same name.
/**
* Assign key variable pairs from an array to a specified block

View File

@ -347,6 +347,42 @@ class phpbb_template_template_test extends phpbb_template_template_test_case
$this->assertEquals($expected, $this->display('container'), "Testing assign_display($file)");
}
public function test_append_var_without_assign_var()
{
$this->template->set_filenames(array(
'append_var' => 'variable.html'
));
$items = array('This ', 'is ', 'a ', 'test');
$expecting = implode('', $items);
foreach ($items as $word)
{
$this->template->append_var('VARIABLE', $word);
}
$this->assertEquals($expecting, $this->display('append_var'));
}
public function test_append_var_with_assign_var()
{
$this->template->set_filenames(array(
'append_var' => 'variable.html'
));
$start = 'This ';
$items = array('is ', 'a ', 'test');
$expecting = $start . implode('', $items);
$this->template->assign_var('VARIABLE', $start);
foreach ($items as $word)
{
$this->template->append_var('VARIABLE', $word);
}
$this->assertEquals($expecting, $this->display('append_var'));
}
public function test_php()
{
$this->setup_engine(array('tpl_allow_php' => true));