Guest User

Untitled

a guest
Jan 16th, 2018
350
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.30 KB | None | 0 0
  1. public $dbh, //соединение
  2. $metaTags = array('meta_t'=>NULL,'meta_d'=>NULL,'meta_k'=>NULL),
  3. $langs = array(
  4. 'ru' => array('ru','be','uk','kk','ka','lt','lv','et','mo','az','tg','uz','tk'), //русский
  5. 'de' => array('de','sl','hu','rm','nl'), //немецкий
  6. 'fr' => array('fr','lb','bi','cm','br'), //французкий
  7. 'sv' => array('sv','fi'), //шведский
  8. 'zh' => 'zh', //китайский
  9. 'es' => array('es','gn','qu','ay'), //испанский
  10. 'it' => array('it','la','sc','sl'), //итальянский
  11. 'pl' => array('pl','cs','sk','ro'), //польский
  12. 'pt' => 'pt', //португальский
  13. 'da' => array('da','fo') //датский
  14. ),
  15.  
  16. $langs_text = array(
  17. 'en' => 'English',
  18. 'ru' => 'Русский',
  19. 'de' => 'Deutsch',
  20. 'fr' => 'Français',
  21. 'sv' => 'Svenska',
  22. 'zh' => '中國',
  23. 'es' => 'Español',
  24. 'it' => 'Italiano',
  25. 'pl' => 'Polski',
  26. 'pt' => 'Português',
  27. 'da' => 'Dansk'
  28. );
  29.  
  30. function __construct() {
  31. $CI =& get_instance();
  32. define('MODULE_DIR',APPPATH.'views/modules/'); //корневой каталог модулей
  33. define('ROOTCDIR', 'd/');
  34. define('TMP_DIR', 'd/tmp/');
  35. define('CHACHEDIR', 'd/c/');
  36. define('ROOTFILESDIR', '../f/');
  37. define('HOST', $CI->config->base_url(''));
  38. define('DBNAME', 'test-db');
  39. //извлечение первого параметр урла - предполож языковой индекс
  40. $this->dbh = new PDO("mysql:host=localhost;dbname=".DBNAME,'test','1111',
  41. array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
  42.  
  43. /***
  44. * проверка параметра обновления сессии
  45. ****/
  46. if(!empty($_SESSION['ID'])){
  47. $q = $this->dbh->prepare("SELECT COUNT(*) FROM `usr` WHERE `id`=? AND `r`=?");
  48. $q->execute(array(xss($_SESSION['ID']),1));
  49. if($q->fetchColumn()>0){
  50. //exit('x');
  51. $q = $this->dbh->prepare("UPDATE `usr` SET `r`=? WHERE `id`=?");
  52. $q->execute(array(0,xss($_SESSION['ID'])));
  53. $_SESSION = NULL;
  54. session_destroy();
  55. }
  56. }
  57.  
  58. require_once APPPATH.'libraries/db.php'; // библиотека для работы с БД
  59.  
  60. $id = NULL; //ид юзера
  61. $login = NULL; //логин
  62. $lvl = NULL; //ост данные
  63. $avatar = NULL;
  64. $prp = NULL;
  65. $prm = NULL;
  66. $cmtp = NULL;
  67. $cmtm = NULL;
  68. $reg = NULL;
  69. $first_name = NULL;
  70. $last_name = NULL;
  71. $sex = NULL;
  72. $format = FALSE;
  73. $mobile = FALSE;
  74.  
  75. if (isset($_SESSION['FORMAT'])) { //если авторизация была
  76. $id = $_SESSION['ID'];
  77. $login = $_SESSION['LOGIN'];
  78. $lvl = $_SESSION['LVL'];
  79. $reg = $_SESSION['R'];
  80. $avatar = $_SESSION['AVATAR'];
  81. $prp = $_SESSION['PRP'];
  82. $prm = $_SESSION['PRM'];
  83. $cmtp = $_SESSION['CMTP'];
  84. $cmtm = $_SESSION['CMTM'];
  85. $sex = $_SESSION['SEX'];
  86. $first_name = $_SESSION['F_NAME'];
  87. $last_name = $_SESSION['L_NAME'];
  88. $format = $_SESSION['FORMAT'];
  89. $mobile = $_SESSION['MOBILE'];
  90. }
  91.  
  92. if(!isset($_SESSION['R']) && !empty($_COOKIE['HS']) && !empty($_COOKIE['ID']) ){
  93. $q = $this->dbh->prepare("SELECT COUNT(*) FROM `usr` WHERE `id`=? AND `hs`=?");
  94. $q->execute(array(xss($_COOKIE['ID']),xss($_COOKIE['HS'])));
  95. if($q->fetchColumn()>0){
  96. $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`=?");
  97. $q->execute(array(xss($_COOKIE['ID']),xss($_COOKIE['HS'])));
  98. $r = $q->fetch();
  99. $id = $r['id'];
  100. $login = $r['login'];
  101. $lvl = $r['LVL'];
  102. $sex = $r['sex'];
  103. $avatar = $r['opt_avatar'];
  104. $reg = TRUE;
  105. $first_name = $r['first_name'];
  106. $last_name = $r['last_name'];
  107. $prp = $r['op'];
  108. $prm = $r['om'];
  109. $cmtp = $r['opp'];
  110. $cmtm = $r['opm'];
  111. }
  112. }
  113.  
  114. if(!isset($_SESSION['MOBILE']) ){
  115. $userData = $this->getUserData();
  116. $format = FALSE;
  117. $mobile = 0;
  118. if($userData['mobile']){
  119. $mobile = 1;
  120. }
  121. if($userData['android']){
  122. $mobile = 1;
  123. if((int)$userData['android_version']>=4){
  124. $format = TRUE;
  125. }
  126. }
  127. if($userData['browser']=='chrome' || $userData['browser']=='opera'){
  128. $format = TRUE;
  129. }
  130. }
  131.  
  132. if(empty($_SESSION['LANG'])){ //если нет в сессии языка то присвоим его по AccepLng
  133. $lang = $this->setHL($CI);
  134. $_SESSION['LANG'] = $lang;
  135. }else {
  136. $lang = $_SESSION['LANG'];
  137. }
  138.  
  139. $_SESSION['LANG'] = $lang;
  140. $_SESSION['FORMAT'] = $format;
  141. $_SESSION['MOBILE'] = $mobile;
  142. $_SESSION['ID'] = $id;
  143. $_SESSION['LOGIN'] = $login;
  144. $_SESSION['LVL'] = $lvl;
  145. $_SESSION['R'] = $reg;
  146. $_SESSION['AVATAR'] = $avatar;
  147. $_SESSION['F_NAME'] = $first_name;
  148. $_SESSION['L_NAME'] = $last_name;
  149. $_SESSION['SEX'] = $sex;
  150. $_SESSION['PRP'] = $prp;
  151. $_SESSION['PRM'] = $prm;
  152. $_SESSION['CMTP'] = $cmtp;
  153. $_SESSION['CMTM'] = $cmtm;
  154.  
  155. define('LANG',$lang);
  156. define('ID',$id);
  157. define('LOGIN', $login);
  158. define('lvl', $lvl);
  159. define('REG', $reg);
  160. define('F_NAME', $first_name);
  161. define('L_NAME', $last_name);
  162. define('AVATAR', $avatar);
  163. define('PRP', $prp);
  164. define('PRM', $prm);
  165. define('CMTP', $cmtp);
  166. define('CMTM', $cmtm);
  167. define('SEX', $sex);
  168. define('FORMAT', $format);
  169. define('MOBILE', $mobile);
  170. define('C_LINES', 50);
  171. define('LM_SEC', 51);
  172. define('LM_EL', 52);
  173. define('DATE_FORMAT', "Y-m-d G:i:s");
  174. define('SUPPORT_MAIL', 'support@test.com');
  175.  
  176. /***
  177. ***если зареганный то обновим последнее посещение
  178. ***/
  179.  
  180. if(REG){
  181. $q = $this->dbh->prepare("UPDATE `usr` SET `last_visit`=? WHERE `id`=?");
  182. $q->execute(array(date(DATE_FORMAT),ID));
  183. define('NOTIFY', $this->getCountNotify());
  184. }else{
  185. define('NOTIFY',FALSE);
  186. }
  187. }
  188.  
  189. public function getCountNotify() {
  190. $q = $this->dbh->prepare("SELECT COUNT(*) FROM `ntf` WHERE `u_id`=?");
  191. $q->execute(array(ID));
  192. return $q->fetchColumn();
  193. }
  194.  
  195. public function setHL($CI) { //получает язык юзера
  196. $CI->load->library('lang_detect');
  197. $lang = $CI->lang_detect->getBestMatch('en', $this->langs);
  198. return $lang;
  199. }
  200.  
  201. private function getUserData() {
  202. if(preg_match('/Opera Mini/',$_SERVER['HTTP_USER_AGENT'])){$browser='opera_mini';}
  203. else if(preg_match('/Opera/',$_SERVER['HTTP_USER_AGENT'])){$browser='opera';}
  204. else if(preg_match('/Firefox/',$_SERVER['HTTP_USER_AGENT'])){$browser='mozilla';}
  205. else if(preg_match('/Chrome/',$_SERVER['HTTP_USER_AGENT'])){$browser='chrome';}
  206. else if(preg_match('/(MSIE)|(rv)/',$_SERVER['HTTP_USER_AGENT'])){$browser='msie';}
  207. else if(preg_match('/AppleWebKit/',$_SERVER['HTTP_USER_AGENT'])){$browser='safari';}
  208. else{$browser='chrome';}
  209. $data['browser'] = $browser;
  210. require_once APPPATH.'libraries/mobile_detect.php';
  211. $detect = new Mobile_Detect;
  212. $data['android']=$detect->isAndroidOS();
  213. $data['android_version']=$detect->version('Android');
  214. if($detect->isMobile() || $detect->isTablet()){
  215. $data['mobile'] = TRUE;
  216. }else{
  217. $data['mobile'] = FALSE;
  218. }
  219. return $data;
  220. }
  221.  
  222. //to do more actions....
Add Comment
Please, Sign In to add comment