1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-02-24 12:03:21 +01:00

[feature/controller] Rework assign_display(), use exceptions instead of return

PHPBB3-10864
This commit is contained in:
David King 2012-11-13 09:43:53 -05:00
parent 4b6d538b06
commit ac29c7e9d9

View File

@ -219,30 +219,45 @@ class phpbb_template
*
* @param string $handle Handle to operate on
* @param string $template_var Template variable to assign compiled handle to
* @param bool $return_content If true return compiled handle, otherwise assign to $template_var
* @return bool|string false on failure, otherwise if $return_content is true return string of the compiled handle, otherwise return true
* @param bool $return_contents If true return compiled handle, otherwise assign to $template_var
* @return bool|string If $return_content is true return string of the compiled handle, otherwise return true
* @throws RuntimeException
*/
public function assign_display($handle, $template_var = '', $return_content = true)
public function assign_display($handle, $template_var = '', $return_contents = true)
{
$contents = $this->return_display($handle);
if ($return_content === true || empty($template_var) || $contents === false)
if (!$template_var)
{
return $contents;
throw new RuntimeException($this->user->lang('TEMPLATE_CANNOT_BE_ASSIGNED')
}
$this->assign_var($template_var, $contents);
return true;
// If !$return_content evaluates to true, true will be returned
// Otherwise, the value of $contents will be returned
return !$return_contents ?: $contents;
}
/**
* Return the compiled template code as a string
*
* @param string $handle Handle to operate on
* @return string Compiled template code; can be output directly to page
* @throws RuntimeException
*/
public function return_display($handle)
{
ob_start();
$result = $this->display($handle);
$contents = ob_get_clean();
return $result === false ? $result : $contents;
if ($result === false)
{
throw new RuntimeException($user->lang('TEMPLATE_HANDLE_NOT_FOUND'));
}
return $contents;
}
/**