예제 #1
0
파일: View.php 프로젝트: paveli/Tweeem
 /**
  * Конструктор
  */
 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']);
 }
예제 #2
0
 /**
  * Конструктор
  */
 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());
 }
예제 #3
0
파일: Session.php 프로젝트: paveli/Tweeem
 /**
  * Конструктор
  */
 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);
 }
예제 #4
0
파일: Auth.php 프로젝트: paveli/Tweeem
 /**
  * Получить данные из 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;
 }
예제 #5
0
 /**
  * Перенаправление на 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);
 }