public static function route($uri) { self::_loadModules(); Hook::trigger(__CLASS__, 'preDispatch', array('uri' => $uri)); $parsed = parse_url($uri); $parts = explode('/', substr($parsed['path'], 1)); Controller::route($parts); // $routeName = str_replace('/', '_', substr($parsed['path'], 1)); // print_r($routeName); exit; // // print_r($_GET); exit; switch ($parts[0]) { case 'page': self::routePage($parts); break; } }
$autoloader->init(); /* get instance */ $registry = Registry::getInstance(); $request = Request::getInstance(); $config = Config::getInstance(); /* request and config */ $request->init(); $config->init(); /* database */ Db::construct($config); Db::init(); /* startup and registry */ startup(); $registry->init(); /* refresh */ $request->refreshSession(); /* detector */ $detectorLanguage = new Detector\Language($registry, $request); $detectorTemplate = new Detector\Template($registry, $request); /* set language and template */ $registry->set('language', $detectorLanguage->getOutput()); $registry->set('template', $detectorTemplate->getOutput()); /* language */ $language = Language::getInstance(); $language->init($registry->get('language')); /* hook */ if ($registry->get('dbStatus') === 2) { Hook::construct($registry); Hook::init(); Hook::trigger('init'); }
public function renderPage(Page $page) { $rendered = false; $cacheId = 'page-' . static::$DI['Request']->getRoute(); if (empty($page->nocache)) { $rendered = static::$DI['Cache\\PageCache']->get($cacheId); } if (false === $rendered) { $content = new \stdClass(); $content->string = ''; try { if (empty($page->layout)) { $content = $page->getSegment(0); $content->string = Hook::trigger(Hook::FILTER, 'renderContent', $content->string, $page->getData()); } else { $content->string = Hook::trigger(Hook::FILTER, 'renderLayout', $page); } } catch (\Exception $e) { $page->setError($e); $content->string = Hook::trigger(Hook::FILTER, 'renderLayout', $page); } if (empty($page->nocache)) { static::$DI['Cache\\PageCache']->set($cacheId, $content->string); } $rendered = $content->string; } $response = new Http\Response($rendered); $response->setStatus($page->getStatusCode()); $response->setHeader('Content-Type', $page->content_type); return $response; }
include_once 'includes/bootstrap.php'; /* get instance */ $registry = Registry::getInstance(); /* redirect to install */ if ($registry->get('dbStatus') < 2 && file_exists('install.php')) { header('location: install.php'); exit; } /* render */ Hook::trigger('renderStart'); if ($registry->get('renderBreak')) { return; } if ($registry->get('routerBreak')) { $registry->set('contentError', false); } if ($registry->get('contentError')) { header('http/1.0 404 not found'); } /* template */ $template = Hook::collect('renderTemplate'); if (array_key_exists('header', $template)) { header($template['header']); } if (array_key_exists('content', $template)) { echo $template['content']; } else { include_once 'templates/' . $registry->get('template') . '/index.phtml'; } Hook::trigger('renderEnd');
/** * render * * @since 3.0.0 * * @param string $type type of the flash * @param mixed $message message of the flash * @param string $title title of the flash * * @return string */ public function render($type = null, $message = null, $title = null) { $output = Hook::trigger('messengerStart'); $outputItem = null; /* html elements */ if ($title) { $titleElement = new Html\Element(); $titleElement->init('h2', ['class' => $this->_optionArray['className']['title'] . ' ' . $this->_optionArray['className']['notes'][$type]])->text($title); } $boxElement = new Html\Element(); $boxElement->init('div', ['class' => $this->_optionArray['className']['box'] . ' ' . $this->_optionArray['className']['notes'][$type]]); /* create a list */ if (is_array($message) && count($message) > 1) { $listElement = new Html\Element(); $listElement->init('ul', ['class' => $this->_optionArray['className']['list']]); /* collect item output */ foreach ($message as $value) { $outputItem .= '<li>' . $value . '</li>'; } $boxElement->html($listElement->html($outputItem)); } else { $boxElement->html(array_key_exists(0, $message) ? $message[0] : $message); } /* collect output */ $output .= $titleElement . $boxElement . $this->_renderAction($type); $output .= Hook::trigger('messengerEnd'); return $output; }