/** * Конструктор */ function __construct() { parent::__construct(); if (DEBUG) { Open_Benchmark::getInstance()->mark(__CLASS__ . '_start'); } /** * Создаём объект Smarty */ $this->smarty = new Open_Smarty(); /** * Передаём Smarty ссылки на экземпляры объектов, для удобства их использования изнутри * Использовать функцию Smarty assign_by_ref не надо, т.к. мы и так имеем дело со ссылками на объекты, иначе получится двойная ссылка */ $C = Open_Config::getInstance(); $this->smarty->assign('config', $C); $this->smarty->assign('input', Open_Input::getInstance()); $this->smarty->assign('router', Open_Router::getInstance()); $this->smarty->assign('text', Open_Text::getInstance()); $this->smarty->assign('view', $this); /** * Устанавливаем значения по умолчанию */ $config = $C->get(array('headers', 'default_title', 'js', 'css', 'default_body')); $this->setHeaders($config['headers']); $this->setTitle($config['default_title']); $this->setJs($config['js']); $this->setCss($config['css']); $this->setBody($config['default_body']); }
/** * Конструктор */ protected function __construct() { parent::__construct(); if (DEBUG) { Open_Benchmark::getInstance()->mark(__CLASS__ . '_start'); } $this->config = Open_Config::getInstance(); $this->input = Open_Input::getInstance(); $this->router = Open_Router::getInstance(); $this->text = Open_Text::getInstance(); $this->view = Open_View::getInstance(); $this->setArguments($this->router->getArguments()); }
/** * Конструктор */ protected function __construct() { parent::__construct(); if (DEBUG) { Open_Benchmark::getInstance()->mark(__CLASS__ . '_start'); } $C = Open_Config::getInstance(); $I = Open_Input::getInstance(); /** * Открываем сессию * Имя куки зависит от названия приложения, текущего ip пользователя и агента пользователя * Соответственно сменив ip или используя другой агент откроется и другая сессия * Выполняется "хитрое" преобразование, чтобы никто не догадался :-) * Об этом никто не должен знать */ session_name(strrev(md5(str_rot13($C->get('application_name') . $I->ip() . $I->server('HTTP_USER_AGENT')) & !md5($I->ip())))); session_start(); //session_regenerate_id(TRUE); }
/** * Получить данные из cookie аутентификации * * @return mixed Если cookie нет, или там кривые данные возвращается FALSE */ public function getCookieData() { if (($hash = Open_Input::getInstance()->cookie(self::COOKIE_NAME)) === FALSE || ($data = UserModel::getInstance()->hashDecode($hash)) === FALSE) { return FALSE; } return $data; }
/** * Перенаправление на URL * Если передан полный URL с хостом, то перенаправление чётко на него * Если передан URL без хоста, то к нему добавляется текущая локаль (если её нет) и текущий хост * * @param string $url */ public function redirect($url) { if (!parse_url($url, PHP_URL_HOST)) { $I = Open_Input::getInstance(); $locales = array_keys(Open_Config::getInstance()->get('locales')); if (!preg_match('#^/(' . implode('|', $locales) . ')#i', $url)) { $url = $I->locale() . $url; } $url = $I->base() . $url; } header('Location: ' . $url); exit(0); }