public function __invoke(Request $request) { global $core; try { $request->context->page = $page = $this->resolve_page($request); if (!$page) { return; } if ($page instanceof Response) { return $page; } return $this->resolve_response($page, $request); } catch (\Exception $e) { $code = $e->getCode(); $pathname = \ICanBoogie\DOCUMENT_ROOT . "protected/all/templates/{$code}.html"; if (file_exists($pathname)) { $request->context->page = $page = Page::from(['siteid' => $core->site_id, 'title' => I18n\t($e->getCode(), [], ['scope' => 'exception']), 'body' => I18n\t($e->getMessage(), [], ['scope' => 'exception'])]); $template = file_get_contents($pathname); $engine = $this->resolve_engine($template); return new Response($engine($template, $page), $code); } throw $e; } }
/** * Creates site record. */ protected function process_site() { global $core; $site = $core->models['sites']->one; if (!$site) { $site = new Site(); } $options = $core->session->install['site']; $site->title = $options['title']; $site->language = $options['language']; $site->timezone = $options['timezone']; $site->email = $core->session->install['user']['email']; $site->status = Site::STATUS_OK; $site->save(); if (!$core->models['pages']->one) { $page = new Page(); $page->title = "Home"; $page->is_online = true; $page->uid = 1; $page->siteid = $site->siteid; $page->save(); } }