/** * 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; }