/** * Error handler * * @param \Exception $exception * @return void */ public function error(\Exception $exception) { if ($exception instanceof \Phire\Exception && $exception->isInstallError()) { Response::redirect(BASE_PATH . APP_URI . '/install'); exit; } // Load assets, if they haven't been loaded already $this->loadAssets($_SERVER['DOCUMENT_ROOT'] . APP_PATH . '/data/themes/default', 'default'); $this->loadAssets(__DIR__ . '/../data/assets', 'phire'); sort($this->assets['js']); sort($this->assets['css']['link']); sort($this->assets['css']['import']); // Load any custom/override assets $this->loadAssets(CONTENT_ABS_PATH . '/phire/assets', 'phire-custom', true); $view = new View(__DIR__ . '/../view/phire/exception.phtml'); $view->title = 'Application Error'; $view->systemTitle = 'Phire CMS'; $view->assets = $this->assets; $view->phireUri = BASE_PATH . APP_URI; $view->basePath = BASE_PATH; $view->base_path = BASE_PATH; $view->contentPath = BASE_PATH . CONTENT_PATH; $view->content_path = BASE_PATH . CONTENT_PATH; $view->message = htmlentities(strip_tags($exception->getMessage()), ENT_QUOTES, 'UTF-8'); $response = new Response(); $response->setBody((string) $view); $response->send(); }