self::TEMPLATES_ROOT_PATHS . '/Page/Error/403.html', 404 => self::TEMPLATES_ROOT_PATHS . '/Page/Error/404.html', 500 => self::TEMPLATES_ROOT_PATHS . '/Page/Error/500.html' ]; /** * Status code of the response * @var int */ protected $statusCode; /** * Configuration of the error handler as set in site configuration. * @var array */ protected $errorHandlerConfiguration; /** * @var ViewInterface */ protected $view; public function __construct(int $statusCode, array $configuration) { $this->statusCode = $statusCode; $this->errorHandlerConfiguration = $configuration; $this->view = GeneralUtility::makeInstance(TemplateView::class); $this->view->setTemplateRootPaths([self::TEMPLATES_ROOT_PATHS]); $this->view->setLayoutRootPaths([self::LAYOUTS_ROOT_PATHS]); $this->view->setPartialRootPaths([self::PARTIALS_ROOT_PATHS]); $this->view->setTemplatePathAndFilename( GeneralUtility::getFileAbsFileName(self::TEMPLATE_FILES[$statusCode]) ); } /** * @param ServerRequestInterface $request * @param string $message * @param array $reasons * @return ResponseInterface */ public function handlePageError( ServerRequestInterface $request, string $message, array $reasons = [] ): ResponseInterface { $pageRepository = GeneralUtility::makeInstance(OtPageRepository::class); $site = $pageRepository->getCurrentSite(); $baseUri = $site->getBase(); $this->view->assignMultiple([ 'request' => $request, 'message' => $message, 'reasons' => $reasons, 'homeUri' => $baseUri, 'siteTitle' => $site->getConfiguration()['websiteTitle'] ]); return new HtmlResponse($this->view->render(), $this->statusCode); } }