public static function redirect($url, $isExternal = false, $statusCode = 200) { if (array_key_exists($statusCode, self::$headerByCode)) { header(self::$headerByCode[$statusCode]); } if ($isExternal) { header('Location: ' . $url); exit; } $request = _Core_Request::getFake($url); $router = new _Core_Router($request, _Core_TemplateEngine::getPrepared($request)); try { $router->performRequest(); } catch (Exception $e) { // Вывод отладочной информации if (DEBUG) { echo highlight_string("<?php\n" . $e->getTraceAsString()); exit; } elseif ('/notfound' == $url) { exit; } else { self::redirect('/notfound', false, 404); } } }
// Подключаем файл с общей конфигурацией проекта require_once dirname(dirname(__FILE__)) . '/include/config.php'; // Загружаем общие данные // @todo оторвать! require_once SYS_DIR_INC . 'common.php'; // Получаем обьект с параметрами запроса. $request = _Core_Request::getCurrent(); // Получаем текущий шаблонизатор на основании запроса $templateEngine = _Core_TemplateEngine::getPrepared($request); // Запускаем хелпер для IFRAME авторизации и подключения шаблонов Helper_IframeLogin::login($templateEngine); // Инициализация роутера $router = new _Core_Router($request, $templateEngine); try { // Выполнение запроса (разбор ->вызов контроллера) $router->performRequest(); if (_Core_Request::getCurrent()->host . '/' == HOST_ROOT_IFRAME) { $templateEngine->display('iframe/index.iframe.html'); } elseif (_Core_Request::getCurrent()->host . '/' == HOST_ROOT_RAMBLER) { $templateEngine->display('index.html'); } else { if (!IS_DEMO) { // Если пользователь зашёл с мобильного браузера if (_Core_Request::getCurrent()->host . '/' != HOST_ROOT_PDA && Helper_DetectBrowser::detectMobile() && !isset($_COOKIE['DO_WHANT_FULL_VERSION'])) { if (isset($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], HOST_ROOT_PDA) === false) { header('Location: ' . URL_ROOT_PDA); exit; } else { setcookie('DO_WHANT_FULL_VERSION', true); } }