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:
parent
4b6d538b06
commit
ac29c7e9d9
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user