Override the "view" method of the CI_Loader class so that layouts are supported

This commit is contained in:
alextselegidis 2021-11-15 08:53:59 +01:00
parent b7c39e94a2
commit b7bcaa86be
1 changed files with 32 additions and 7 deletions

View File

@ -49,6 +49,8 @@ class EA_Loader extends CI_Loader {
* @param bool $return Whether to return the view output or leave it to the Output class
*
* @return object|string
*
* remove this
*/
public function layout(string $layout, string $page, array $vars = [], bool $return = FALSE)
{
@ -62,4 +64,27 @@ class EA_Loader extends CI_Loader {
return $this->view($layout, $vars, $return);
}
/**
* Override the original view loader method so that layouts are also supported.
*
* @param string $view View filename.
* @param array $vars An associative array of data to be extracted for use in the view.
* @param bool $return Whether to return the view output or leave it to the Output class.
*
* @return object
*/
public function view($view, $vars = [], $return = FALSE): object
{
$result = $this->_ci_load(['_ci_view' => $view, '_ci_vars' => $this->_ci_prepare_view_vars($vars), '_ci_return' => $return]);
$layout = config('layout');
if ($layout)
{
$result = $this->_ci_load(['_ci_view' => $layout, '_ci_vars' => $this->_ci_prepare_view_vars($vars), '_ci_return' => $return]);
}
return $result;
}
}