/**
* render skin
*
* @return \Illuminate\View\View
*/
public function renderSkin()
{
$request = $this->presenter->getRequest();
if ($request instanceof Request) {
$isMobile = $request->isMobile();
} else {
$isMobile = false;
}
$instanceConfig = $this->presenter->getInstanceConfig();
$skinHandler = $this->presenter->getSkinHandler();
$viewFactory = $this->presenter->getViewFactory();
$instanceId = $instanceConfig->getInstanceId();
$skinTargetId = $this->presenter->getSkinTargetId();
$id = $this->presenter->getId();
$skinView = null;
if ($skinTargetId != null && is_string($skinTargetId)) {
if ($this->presenter->getIsSettings() && $skinTargetId !== 'error') {
$skin = $skinHandler->getAssignedSettings($skinTargetId);
} else {
$skin = $skinHandler->getAssigned([$skinTargetId, $instanceId], $isMobile ? 'mobile' : 'desktop');
}
if ($skin === null) {
throw new NotFoundSkinException(['name' => $skinTargetId]);
}
$skinView = $skin->setView($id)->setData($this->data)->render();
} else {
$skinView = $viewFactory->make($id, $this->data);
}
return $skinView;
}