mirror of
https://github.com/wintercms/winter.git
synced 2024-06-28 05:33:29 +02:00
CMS Render partial now supports not throwing an exception.
Components without default partials do not throw errors when used on the page, they simply fail gracefully.
This commit is contained in:
parent
e85cbf80c5
commit
200615f310
@ -45,8 +45,8 @@ trait ViewMaker
|
|||||||
* Render a partial file contents located in the views folder.
|
* Render a partial file contents located in the views folder.
|
||||||
* @param string $partial The view to load.
|
* @param string $partial The view to load.
|
||||||
* @param array $params Parameter variables to pass to the view.
|
* @param array $params Parameter variables to pass to the view.
|
||||||
* @param bool $throwException Throw an exception if the partial is not found
|
* @param bool $throwException Throw an exception if the partial is not found.
|
||||||
* @return string The view contents.
|
* @return mixed Partial contents or false if not throwing an exception.
|
||||||
*/
|
*/
|
||||||
public function makePartial($partial, $params = [], $throwException = true)
|
public function makePartial($partial, $params = [], $throwException = true)
|
||||||
{
|
{
|
||||||
|
@ -535,8 +535,12 @@ class Controller extends BaseController
|
|||||||
/**
|
/**
|
||||||
* Renders a requested partial.
|
* Renders a requested partial.
|
||||||
* The framework uses this method internally.
|
* The framework uses this method internally.
|
||||||
|
* @param string $partial The view to load.
|
||||||
|
* @param array $params Parameter variables to pass to the view.
|
||||||
|
* @param bool $throwException Throw an exception if the partial is not found.
|
||||||
|
* @return mixed Partial contents or false if not throwing an exception.
|
||||||
*/
|
*/
|
||||||
public function renderPartial($name, $parameters = [])
|
public function renderPartial($name, $parameters = [], $throwException = true)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Alias @ symbol for ::
|
* Alias @ symbol for ::
|
||||||
@ -555,18 +559,26 @@ class Controller extends BaseController
|
|||||||
* Component alias not supplied
|
* Component alias not supplied
|
||||||
*/
|
*/
|
||||||
if (!strlen($componentAlias)) {
|
if (!strlen($componentAlias)) {
|
||||||
if ($this->componentContext !== null)
|
if ($this->componentContext !== null) {
|
||||||
$componentObj = $this->componentContext;
|
$componentObj = $this->componentContext;
|
||||||
|
}
|
||||||
elseif (($componentObj = $this->findComponentByPartial($partialName)) === null)
|
elseif (($componentObj = $this->findComponentByPartial($partialName)) === null) {
|
||||||
|
if ($throwException)
|
||||||
throw new CmsException(Lang::get('cms::lang.partial.not_found', ['name'=>$name]));
|
throw new CmsException(Lang::get('cms::lang.partial.not_found', ['name'=>$name]));
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Component alias is supplied
|
* Component alias is supplied
|
||||||
*/
|
*/
|
||||||
else {
|
else {
|
||||||
if (($componentObj = $this->findComponentByName($componentAlias)) === null)
|
if (($componentObj = $this->findComponentByName($componentAlias)) === null) {
|
||||||
|
if ($throwException)
|
||||||
throw new CmsException(Lang::get('cms::lang.component.not_found', ['name'=>$componentAlias]));
|
throw new CmsException(Lang::get('cms::lang.component.not_found', ['name'=>$componentAlias]));
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$partial = null;
|
$partial = null;
|
||||||
@ -587,8 +599,12 @@ class Controller extends BaseController
|
|||||||
$partial = ComponentPartial::loadCached($componentObj, $partialName);
|
$partial = ComponentPartial::loadCached($componentObj, $partialName);
|
||||||
|
|
||||||
|
|
||||||
if ($partial === null)
|
if ($partial === null) {
|
||||||
|
if ($throwException)
|
||||||
throw new CmsException(Lang::get('cms::lang.partial.not_found', ['name'=>$name]));
|
throw new CmsException(Lang::get('cms::lang.partial.not_found', ['name'=>$name]));
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set context for self access
|
* Set context for self access
|
||||||
@ -599,8 +615,12 @@ class Controller extends BaseController
|
|||||||
/*
|
/*
|
||||||
* Process theme partial
|
* Process theme partial
|
||||||
*/
|
*/
|
||||||
if (($partial = Partial::loadCached($this->theme, $name)) === null)
|
if (($partial = Partial::loadCached($this->theme, $name)) === null) {
|
||||||
|
if ($throwException)
|
||||||
throw new CmsException(Lang::get('cms::lang.partial.not_found', ['name'=>$name]));
|
throw new CmsException(Lang::get('cms::lang.partial.not_found', ['name'=>$name]));
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CmsException::mask($partial, 400);
|
CmsException::mask($partial, 400);
|
||||||
@ -665,7 +685,7 @@ class Controller extends BaseController
|
|||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->renderPartial($name.'::default');
|
return $this->renderPartial($name.'::default', [], false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user