Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public $dbh, //соединение
- $metaTags = array('meta_t'=>NULL,'meta_d'=>NULL,'meta_k'=>NULL),
- $langs = array(
- 'ru' => array('ru','be','uk','kk','ka','lt','lv','et','mo','az','tg','uz','tk'), //русский
- 'de' => array('de','sl','hu','rm','nl'), //немецкий
- 'fr' => array('fr','lb','bi','cm','br'), //французкий
- 'sv' => array('sv','fi'), //шведский
- 'zh' => 'zh', //китайский
- 'es' => array('es','gn','qu','ay'), //испанский
- 'it' => array('it','la','sc','sl'), //итальянский
- 'pl' => array('pl','cs','sk','ro'), //польский
- 'pt' => 'pt', //португальский
- 'da' => array('da','fo') //датский
- ),
- $langs_text = array(
- 'en' => 'English',
- 'ru' => 'Русский',
- 'de' => 'Deutsch',
- 'fr' => 'Français',
- 'sv' => 'Svenska',
- 'zh' => '中國',
- 'es' => 'Español',
- 'it' => 'Italiano',
- 'pl' => 'Polski',
- 'pt' => 'Português',
- 'da' => 'Dansk'
- );
- function __construct() {
- $CI =& get_instance();
- define('MODULE_DIR',APPPATH.'views/modules/'); //корневой каталог модулей
- define('ROOTCDIR', 'd/');
- define('TMP_DIR', 'd/tmp/');
- define('CHACHEDIR', 'd/c/');
- define('ROOTFILESDIR', '../f/');
- define('HOST', $CI->config->base_url(''));
- define('DBNAME', 'test-db');
- //извлечение первого параметр урла - предполож языковой индекс
- $this->dbh = new PDO("mysql:host=localhost;dbname=".DBNAME,'test','1111',
- array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
- /***
- * проверка параметра обновления сессии
- ****/
- if(!empty($_SESSION['ID'])){
- $q = $this->dbh->prepare("SELECT COUNT(*) FROM `usr` WHERE `id`=? AND `r`=?");
- $q->execute(array(xss($_SESSION['ID']),1));
- if($q->fetchColumn()>0){
- //exit('x');
- $q = $this->dbh->prepare("UPDATE `usr` SET `r`=? WHERE `id`=?");
- $q->execute(array(0,xss($_SESSION['ID'])));
- $_SESSION = NULL;
- session_destroy();
- }
- }
- require_once APPPATH.'libraries/db.php'; // библиотека для работы с БД
- $id = NULL; //ид юзера
- $login = NULL; //логин
- $lvl = NULL; //ост данные
- $avatar = NULL;
- $prp = NULL;
- $prm = NULL;
- $cmtp = NULL;
- $cmtm = NULL;
- $reg = NULL;
- $first_name = NULL;
- $last_name = NULL;
- $sex = NULL;
- $format = FALSE;
- $mobile = FALSE;
- if (isset($_SESSION['FORMAT'])) { //если авторизация была
- $id = $_SESSION['ID'];
- $login = $_SESSION['LOGIN'];
- $lvl = $_SESSION['LVL'];
- $reg = $_SESSION['R'];
- $avatar = $_SESSION['AVATAR'];
- $prp = $_SESSION['PRP'];
- $prm = $_SESSION['PRM'];
- $cmtp = $_SESSION['CMTP'];
- $cmtm = $_SESSION['CMTM'];
- $sex = $_SESSION['SEX'];
- $first_name = $_SESSION['F_NAME'];
- $last_name = $_SESSION['L_NAME'];
- $format = $_SESSION['FORMAT'];
- $mobile = $_SESSION['MOBILE'];
- }
- if(!isset($_SESSION['R']) && !empty($_COOKIE['HS']) && !empty($_COOKIE['ID']) ){
- $q = $this->dbh->prepare("SELECT COUNT(*) FROM `usr` WHERE `id`=? AND `hs`=?");
- $q->execute(array(xss($_COOKIE['ID']),xss($_COOKIE['HS'])));
- if($q->fetchColumn()>0){
- $q = $this->dbh->prepare("SELECT `id`,`login`,`lvl`,`first_name`,`last_name`,`sex`,`opt_avatar`,`op`,`om`,`opp`,`opm` FROM `usr` WHERE `id`=? AND `hs`=?");
- $q->execute(array(xss($_COOKIE['ID']),xss($_COOKIE['HS'])));
- $r = $q->fetch();
- $id = $r['id'];
- $login = $r['login'];
- $lvl = $r['LVL'];
- $sex = $r['sex'];
- $avatar = $r['opt_avatar'];
- $reg = TRUE;
- $first_name = $r['first_name'];
- $last_name = $r['last_name'];
- $prp = $r['op'];
- $prm = $r['om'];
- $cmtp = $r['opp'];
- $cmtm = $r['opm'];
- }
- }
- if(!isset($_SESSION['MOBILE']) ){
- $userData = $this->getUserData();
- $format = FALSE;
- $mobile = 0;
- if($userData['mobile']){
- $mobile = 1;
- }
- if($userData['android']){
- $mobile = 1;
- if((int)$userData['android_version']>=4){
- $format = TRUE;
- }
- }
- if($userData['browser']=='chrome' || $userData['browser']=='opera'){
- $format = TRUE;
- }
- }
- if(empty($_SESSION['LANG'])){ //если нет в сессии языка то присвоим его по AccepLng
- $lang = $this->setHL($CI);
- $_SESSION['LANG'] = $lang;
- }else {
- $lang = $_SESSION['LANG'];
- }
- $_SESSION['LANG'] = $lang;
- $_SESSION['FORMAT'] = $format;
- $_SESSION['MOBILE'] = $mobile;
- $_SESSION['ID'] = $id;
- $_SESSION['LOGIN'] = $login;
- $_SESSION['LVL'] = $lvl;
- $_SESSION['R'] = $reg;
- $_SESSION['AVATAR'] = $avatar;
- $_SESSION['F_NAME'] = $first_name;
- $_SESSION['L_NAME'] = $last_name;
- $_SESSION['SEX'] = $sex;
- $_SESSION['PRP'] = $prp;
- $_SESSION['PRM'] = $prm;
- $_SESSION['CMTP'] = $cmtp;
- $_SESSION['CMTM'] = $cmtm;
- define('LANG',$lang);
- define('ID',$id);
- define('LOGIN', $login);
- define('lvl', $lvl);
- define('REG', $reg);
- define('F_NAME', $first_name);
- define('L_NAME', $last_name);
- define('AVATAR', $avatar);
- define('PRP', $prp);
- define('PRM', $prm);
- define('CMTP', $cmtp);
- define('CMTM', $cmtm);
- define('SEX', $sex);
- define('FORMAT', $format);
- define('MOBILE', $mobile);
- define('C_LINES', 50);
- define('LM_SEC', 51);
- define('LM_EL', 52);
- define('DATE_FORMAT', "Y-m-d G:i:s");
- define('SUPPORT_MAIL', 'support@test.com');
- /***
- ***если зареганный то обновим последнее посещение
- ***/
- if(REG){
- $q = $this->dbh->prepare("UPDATE `usr` SET `last_visit`=? WHERE `id`=?");
- $q->execute(array(date(DATE_FORMAT),ID));
- define('NOTIFY', $this->getCountNotify());
- }else{
- define('NOTIFY',FALSE);
- }
- }
- public function getCountNotify() {
- $q = $this->dbh->prepare("SELECT COUNT(*) FROM `ntf` WHERE `u_id`=?");
- $q->execute(array(ID));
- return $q->fetchColumn();
- }
- public function setHL($CI) { //получает язык юзера
- $CI->load->library('lang_detect');
- $lang = $CI->lang_detect->getBestMatch('en', $this->langs);
- return $lang;
- }
- private function getUserData() {
- if(preg_match('/Opera Mini/',$_SERVER['HTTP_USER_AGENT'])){$browser='opera_mini';}
- else if(preg_match('/Opera/',$_SERVER['HTTP_USER_AGENT'])){$browser='opera';}
- else if(preg_match('/Firefox/',$_SERVER['HTTP_USER_AGENT'])){$browser='mozilla';}
- else if(preg_match('/Chrome/',$_SERVER['HTTP_USER_AGENT'])){$browser='chrome';}
- else if(preg_match('/(MSIE)|(rv)/',$_SERVER['HTTP_USER_AGENT'])){$browser='msie';}
- else if(preg_match('/AppleWebKit/',$_SERVER['HTTP_USER_AGENT'])){$browser='safari';}
- else{$browser='chrome';}
- $data['browser'] = $browser;
- require_once APPPATH.'libraries/mobile_detect.php';
- $detect = new Mobile_Detect;
- $data['android']=$detect->isAndroidOS();
- $data['android_version']=$detect->version('Android');
- if($detect->isMobile() || $detect->isTablet()){
- $data['mobile'] = TRUE;
- }else{
- $data['mobile'] = FALSE;
- }
- return $data;
- }
- //to do more actions....
Add Comment
Please, Sign In to add comment