Сайт временно не работает В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.

"); exit(); } // Код соединения с базой данных if(!@mysql_select_db($dbname, $dbcnx)) { echo( "

В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.

" ); exit(); } mysql_query("SET character_set_client = 'utf8'"); mysql_query("SET character_set_connection = 'utf8'"); mysql_query("SET character_set_results = 'utf8'"); $select_text = "select "; for ($i = 0; $i < sizeof($arSelect); $i++) { if ($i > 0) { $select_text .= ","; } $select_text .= $arSelect[$i]; } $select_text .= " from ".$arFilter['Table']; $ath = mysql_query($select_text); mysql_close($dbcnx); return $ath; } function DBConnect() { global $dblocation,$dbname, $dbuser,$dbpasswd; $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd); if(!$dbcnx) { echo("

В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.

"); exit(); } // Код соединения с базой данных if(!@mysql_select_db($dbname, $dbcnx)) { echo("

В настоящий момент база данных не доступна, поэтомукорректное отображение страницы невозможно.

" ); exit(); } mysql_query("SET character_set_client = 'utf8'"); mysql_query("SET character_set_connection = 'utf8'"); mysql_query("SET character_set_results = 'utf8'"); } function GetSelectData($strSelect) { global $dblocation,$dbname, $dbuser,$dbpasswd; $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd); if(!$dbcnx) { echo("

В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.

"); exit(); } if(!@mysql_select_db($dbname, $dbcnx)) { echo( "

В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.

" ); exit(); } mysql_query("SET character_set_client = 'utf8'"); mysql_query("SET character_set_connection = 'utf8'"); mysql_query("SET character_set_results = 'utf8'"); $ath = mysql_query($strSelect); mysql_close($dbcnx); return $ath; } function InsertTableData($TableName, $arFieldName, $arFieldValue) { global $dblocation,$dbname,$dbuser,$dbpasswd; $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd); if(!$dbcnx) { echo("

В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.

"); exit(); } if(!@mysql_select_db($dbname, $dbcnx)) { echo( "

В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.

" ); exit(); } mysql_query("SET character_set_client = 'utf8'"); mysql_query("SET character_set_connection = 'utf8'"); mysql_query("SET character_set_results = 'utf8'"); $insert_text = "insert into ".$TableName." ("; for ($i = 0; $i < sizeof($arFieldName); $i++) { if ($i > 0) { $insert_text .= ","; } $insert_text .= $arFieldName[$i]; } $insert_text .= ") values ("; for ($i = 0; $i < sizeof($arFieldValue); $i++) { if ($i > 0) { $insert_text .= ","; } $insert_text .= "'".mysql_real_escape_string(str_replace("\n", '
', $arFieldValue[$i]))."'"; } $insert_text .= ");"; //echo $insert_text; $ath = mysql_query($insert_text); //mysql_close(); return $ath; } function UpdateTableData($TableName, $arFieldName, $arFieldValue, $id) { global $dblocation,$dbname,$dbuser,$dbpasswd; $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd); if (!$dbcnx) { echo("

В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.

"); exit(); } // Код соединения с базой данных if(!@mysql_select_db($dbname, $dbcnx)) { echo( "

В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.

" ); exit(); } mysql_query("SET character_set_client = 'utf8'"); mysql_query("SET character_set_connection = 'utf8'"); mysql_query("SET character_set_results = 'utf8'"); $update_text = "update ".$TableName." set "; for ($i = 0; $i < sizeof($arFieldName); $i++) { if ($i > 0) { $update_text .= ","; } $update_text .= $arFieldName[$i]."='".mysql_real_escape_string(str_replace("\n", '
', $arFieldValue[$i]))."'"; //$update_text .= $arFieldName[$i]."='".mysql_real_escape_string(htmlspecialchars(str_replace("\n", '
',$arFieldValue[$i])))."'"; } $update_text .= " where id = ".$id; //if(intval($_SESSION["permission_id"]) >= 10) // echo $update_text; $ath = mysql_query($update_text); //mysql_close(); return $ath; } function Signup_post($val_ar) { global $db, $l; $BIRTHDATE_TOTAL = $val_ar['birthyear']."-".$val_ar['birthmonth']."-".$val_ar['birthdate']; $REG_CODE = CreateRegCode(); $val_ar['first_name'] = trim($val_ar['first_name']); // проверка обязательных для конкретного сайта полей if($val_ar['first_name'] == "") {$err_ar['first_name']=1; $err_ar['error'] = "Не указано Имя!";} if(!$err_ar['first_name']) { if(mb_strlen($val_ar['first_name'], "UTF-8") > 40) {$err_ar['first_name']=1; $err_ar['error'] = "Поле \"Имя\" слишком длинное! Должно быть ограничено 40 символами.";} } if(!$err_ar['first_name']) { if(preg_match("/[^(\w)|(\x7F-\xFF)]/", $val_ar['first_name'])) {$err_ar['first_name']=1; $err_ar['error'] = "В поле \"Имя\" введены недопустимые символы! Допустимы только буквы, цифры и подчеркивание!";} } if($val_ar['last_name'] == "") {$err_ar['last_name']=1; $err_ar['error'] = "Не указана Фамилия! (Достаточно ввести первую букву)";} if(!$err_ar['last_name']) { if(mb_strlen($val_ar['last_name'], "UTF-8") > 50) {$err_ar['last_name']=1; $err_ar['error'] = "Поле \"Фамилия\" слишком длинное! Должно быть ограничено 50 символами.";} } if(!$err_ar['last_name']) { if(preg_match("/[^(\w)|(\x7F-\xFF)]/", $val_ar['last_name'])) {$err_ar['last_name']=1; $err_ar['error'] = "В поле \"Фамилия\" введены недопустимые символы! Допустимы только буквы, цифры и подчеркивание!";} } if(($val_ar['gender']!="1") && ($val_ar['gender']!="2")) {$err_ar['gender']=1; $err_ar['error'] = "Пожалуйста укажите Ваш пол!";} if($val_ar['email'] == "") {$err_ar['email']=1; $err_ar['error'] = "Не указан электронный адрес!";} if(!$err_ar['email']) { if(mb_strlen($val_ar['email'], "UTF-8") > 64) {$err_ar['email']=1; $err_ar['error'] = "Электронный адрес слишком длинный! Должен быть ограничен 64 символами.";} } if(!$err_ar['email']) { if(!preg_match("/^(?:[a-z0-9]+(?:[-_.]?[a-z0-9]+)?@[a-z0-9_.-]+(?:\.?[a-z0-9]+)?\.[a-z]{2,5})$/i", $val_ar['email'])) { //if(!eregi('^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\.\-]+$', $val_ar['email'])) { $err_ar['email']=1; $err_ar['error'] = "Электронный адрес некорректный!"; } } if($val_ar['password'] == "") {$err_ar['password']=1; $err_ar['error'] = "Не указан пароль!";} if(!$err_ar['password']) { if(mb_strlen($val_ar['password'], "UTF-8") > 50) {$err_ar['password']=1; $err_ar['error'] = "Пароль слишком длинный! Должен быть ограничен 50 символами.";} } if(!$err_ar['password']) { if(strlen($val_ar['password']) < 6) {$err_ar['password']=1; $err_ar['error'] = "Пароль должен содержать не менее 6 символов!";} } //if(mb_strlen($val_ar['password_again'], "UTF-8") > 50) {$err_ar['password_again']=1; $err_ar['error'] = "Пароль слишком длинный! Должен быть ограничен 50 символами.";} //if($val_ar['password'] <> $val_ar['password_again']) {$err_ar['password_again']=1; $err_ar['error'] = "Пароль введен некорректно!";} if(!$err_ar['error']) { $email_res=$db->q("select id from user where lower(e_mail)=lower('".$val_ar['email']."');"); if($email_res->rowcount() > 0) { $err_ar['error'] = "Электронный адрес уже существует в системе!"; } } if(!$err_ar['error']) { $recaptcha_url = "https://www.google.com/recaptcha/api/siteverify"; $recaptcha_key = "6LdWJE8UAAAAAKIhk4c9UyPLjhu8OkkXZLP24ksT"; //$recaptcha_query = $recaptcha_url."?secret=".$recaptcha_key."&response=".$_POST["g-recaptcha-response"]."&remoteip=".$_SERVER["REMOTE_ADDR"]; //$recaptcha_data = json_decode(file_get_contents($recaptcha_query)); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => $recaptcha_url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => array('secret' => $recaptcha_key, 'response'=>$_POST["g-recaptcha-response"], 'remoteip'=>$_SERVER["REMOTE_ADDR"]), CURLOPT_HTTPHEADER => array(), )); $result = curl_exec($curl); curl_close($curl); $recaptcha_data = json_decode($result); if($recaptcha_data->success == false) { $err_ar['captcha']=1; $err_ar['error'] = "А Вы точно не робот?"; } } if($err_ar['error']) { return $err_ar; } $arFieldNamePar = Array("first_name", "last_name", "e_mail", "password", "password_md5", "country_id", "city_id", "reg_code", "gender", "insert_date", "edit_date"); $arFieldValuePar = Array($val_ar['first_name'], $val_ar['last_name'], $val_ar['email'], $val_ar['password'], md5($val_ar['password']), $val_ar['country'], $val_ar['city'], $REG_CODE, $val_ar['gender'], date("Y-m-d H:i:s"), date("Y-m-d H:i:s")); $res = $db->insert("user", $arFieldNamePar, $arFieldValuePar); if (!$res) { $err_ar['error'] = "Ошибка при добавлении в систему. Приносим свои извинения!"; } else { require_once($DocRoot."model/mailing.php"); $mailing = new mailing(); $mailing->user_confirm($REG_CODE); $err_ar['success'] = $val_ar['first_name'].", Вы стали частью сообщества ".$l->g("wikicity")."! На Ваш e-mail отправлено письмо, в котором Вы можете подтвердить регистрацию."; $err_ar['reg_code'] = $REG_CODE; } return $err_ar; } function getUserIP() { $userIP = getenv('HTTP_CLIENT_IP') OR $userIP = getenv('HTTP_X_FORWARDED_FOR') OR $userIP = getenv('REMOTE_ADDR'); RETURN TRIM(preg_replace('#^([^,]+)(,.*)?#', '$1', $userIP)); } function mail_with_log($to="", $subject="", $message="", $headers="") { global $db; /* $arFieldNamePar = array("mail_to", "mail_subject", "mail_message", "mail_header", "sent", "user_id", "date_post"); $arFieldValuePar = array("adilek", "", "", "", 0, intval($_SESSION["id"]), date("Y-m-d H:i:s")); $res = $db->insert("mail_log", $arFieldNamePar, $arFieldValuePar); */ $success_mail = mail($to, $subject, $message, $headers); $arFieldNamePar = array("mail_to", "mail_subject", "mail_message", "mail_header", "sent", "user_id", "date_post"); $arFieldValuePar = array($to, $subject, $message, $headers, intval($success_mail), intval($_SESSION["id"]), date("Y-m-d H:i:s")); $res = $db->insert("mail_log", $arFieldNamePar, $arFieldValuePar); return 0; } function csrf_save($key) { $_SESSION["csrf"][$key] = CreateRegCode(); return $_SESSION["csrf"][$key]; } function csrf_check($key) { if(!$_SESSION["csrf"][$key]) { return false; } if($_POST["csrfok"] == $_SESSION["csrf"][$key]) { $_SESSION["csrf"][$key] = ""; unset($_SESSION["csrf"][$key]); return true; } return false; } function shorter_text($source_text, $size=0) { if($size) { return mb_substr(strip_tags($source_text),0,$size,'utf-8'); } else { return strip_tags($source_text); } } function UpdateBizReviewTotal($biz_id) { global $db; $res = $db->q("update company set review_count=(select count(*) from review where company_id=company.id and posted=1 and filtered=0 and user_id<>0), mark=if((select avg(mark) from review where company_id=company.id and posted=1 and filtered=0 and last_review=1 and user_id>0) is null, 0, (select avg(mark) from review where company_id=company.id and user_id>0 and posted=1 and filtered=0 and last_review=1)) where id=".$biz_id.";"); $res = $db->q("update company set rating=((company.mark+company.mark_correction/10)*company.review_count+3)/(company.review_count+2) where id=".$biz_id.";"); } function GetMarkStr_new($Mark) { $Mark = (double)$Mark; if ($Mark > 4.74) {return "5";} else if ($Mark > 4.175) {return "4-half";} else if ($Mark > 3.70) {return "4";} else if ($Mark > 3.20) {return "3-half";} else if ($Mark > 2.70) {return "3";} else if ($Mark > 2.20) {return "2-half";} else if ($Mark > 1.70) {return "2";} else if ($Mark > 1.20) {return "1-half";} else if ($Mark > 0.70) {return "1";} else if ($Mark > 0) {return "0-half";} else {return "0";} } function view_mark_html($mark, $size, $opacity=false, $grey=false) { global $l; $mark_rounded = round($mark,1); $mark = GetMarkStr_new($mark); if(!in_array($size, array(32,24,20,16))) { return ""; } $str = "
g("n-star-rating",$mark_rounded)."\""; if($size==20) { $str .= " rating=\"i-stars-".$mark."\""; } $str .= ">"; if($mark == "5") { $color = "rgba(211,35,35,1)"; } elseif(in_array($mark, array("4-half","4"))) { $color = "rgba(241,92,79,1)"; } elseif(in_array($mark, array("3-half","3"))) { $color = "rgba(255,146,66,1)"; } elseif(in_array($mark, array("2-half","2"))) { $color = "rgba(254,192,17,1)"; } elseif(in_array($mark, array("1-half","1"))) { $color = "rgba(242,189,121,1)"; } else { $color = "rgba(204,204,204,1)"; } if($grey==true) { $color = "rgba(153,153,153,1)"; } $star_count = 0; $last = ""; for($i=1;$i<=intval($mark);$i++) { if($star_count == 4) {$last = " last";} $str .= "
"; if($size>16) { $str .= " "; } else { $str .= ""; $str .= ""; $str .= ""; $str .= ""; $str .= ""; } $str .= "
"; $star_count++; } if($opacity==true) { $opacity = "0.4"; } else { $opacity = "1"; } if(substr($mark,2,4)=="half") { if($star_count == 4) {$last = " last";} $str .= "
"; if($size>16) { $str .= " "; } else { $str .= ""; $str .= ""; $str .= ""; $str .= ""; $str .= ""; } $str .= "
"; $star_count++; } while($star_count < 5) { if($star_count == 4) {$last = " last";} $str .= "
"; if($size>16) { $str .= " "; } else { $str .= ""; $str .= ""; $str .= ""; $str .= ""; $str .= ""; } $str .= "
"; $star_count++; } $str .= "
"; return $str; } /* function AddImage($Table_name, $Rec_id, $Desc, $img_file="", $user_id="",$source="desktop") { global $DocRoot, $PhotoRoot, $PhotoRoot_original, $PhotoRoot_ls, $PhotoRoot_ms, $PhotoRoot_ss, $PhotoRoot_xss, $infoAlert; $upfiledir = $PhotoRoot; $img_id = CreateRegCode(); if(!$img_file) { $img_file = $_FILES['my_picture']['tmp_name']; } if(!$user_id) { $user_id = intval($_SESSION["id"]); } $img = $img_file; if(!$source_im_info = image_get_info($img)) {return false;} if(!in_array($source_im_info['extension'], array('gif', 'jpeg', 'png'))) {return false;} $cl_file_name = $Table_name."_".$Rec_id."_".$img_id.".".$source_im_info['extension']; // Полное имя загружаемого файла $upfile = $upfiledir.$cl_file_name; if(image_resize($img, $PhotoRoot.$cl_file_name, 0, 1000)) { image_resize($img, $PhotoRoot_original.$cl_file_name, 0, 1000); image_resize($img, $PhotoRoot_ls.$cl_file_name, 350, 350); image_resize($img, $PhotoRoot_ms.$cl_file_name, 300, 300); image_resize($img, $PhotoRoot_ss.$cl_file_name, 80, 80); image_resize($img, $PhotoRoot_xss.$cl_file_name, 40, 40); if(($Table_name == "Company") || ($Table_name == "Event")) { if(($source_im_info['width'] >= 600) && ($source_im_info['height'] >= 300) && ($source_im_info['extension'] == 'jpeg')) { AddWatermark($PhotoRoot.$cl_file_name, $source_im_info['extension'], $DocRoot."styles/images/watermark.png"); } } $uplink = $cl_file_name; $res = $db->q("select id from image where table_name='".$Table_name."' and rec_id=".intval($Rec_id).";"); if($img_count = $res->fetch()) {$Main = 0;} else {$Main = 1;} //if($user_id == "") return false; if($source == "mobile") {$stat_source = "mobile_site";} else {$stat_source = "website";} if(!$user_id) { $arFieldNamePar = Array("img", "table_name", "rec_id", "description", "img_id", "main", "source", "user_id", "date_post", "date_edit"); $arFieldValuePar = Array($uplink, $Table_name, -intval($Rec_id), mysql_real_escape_string($Desc), $img_id, $Main, $source, 0, date("Y-m-d H:i:s"), date("Y-m-d H:i:s")); $res = $db->insert("image", $arFieldNamePar, $arFieldValuePar, true); if($res) { $infoAlert["info_type"] = "success"; $infoAlert["info"] = $db->lastInsertId(); return $infoAlert; } else { $infoAlert["info_type"] = "error"; $infoAlert["info"] = "Не удалось загрузить фото."; return $infoAlert; } } $arFieldNamePar = Array("img", "table_name", "rec_id", "description", "img_id", "main", "source", "user_id", "date_post", "date_edit"); $arFieldValuePar = Array($uplink, $Table_name, intval($Rec_id), $Desc, $img_id, $Main, $source, intval($user_id), date("Y-m-d H:i:s"), date("Y-m-d H:i:s")); $res = $db->insert("image", $arFieldNamePar, $arFieldValuePar); if(!$res) { $infoAlert[0] = "error"; $infoAlert[1] = "Не удалось загрузить фото.."; return false; } else { if($Table_name == "Company") { SaveActivity("biz_photo", $user_id, $_SESSION["city"], 0, $Rec_id); SetMainPhoto($Rec_id); set_biz_activity(7, $Rec_id, $stat_source); } else if($Table_name == "User") { $strSelect = "select (select img from image where table_name = 'User' and Rec_id = user.id and main=1 LIMIT 1) as img_path from user where id=".$Rec_id.";"; $res = $db->q($strSelect); if($res_var = $res->fetch()) { $_SESSION["img_path"] = $res_var["img_path"]; } } } return 1; } } */ /* function AddWatermark($img_file, $filetype, $watermark) { $offset = 5; $image = GetImageSize($img_file); $xImg = $image[0]; $yImg = $image[1]; switch ($image[2]) { case 2: $img=imagecreatefromjpeg($img_file); break; } $r = imagecreatefrompng($watermark); $x = imagesx($r); $y = imagesy($r); $xDest = $xImg - ($x + $offset); $yDest = $yImg - ($y + $offset); imageAlphaBlending($img,1); imageAlphaBlending($r,1); imagesavealpha($img,1); imagesavealpha($r,1); imagecopyresampled($img,$r,$xDest,$yDest,0,0,$x,$y,$x,$y); switch ($filetype) { case "jpg": imagejpeg($img,$img_file,95); break; case "jpeg": imagejpeg($img,$img_file,95); break; } imagedestroy($r); imagedestroy($img); } */ // Возвращает данные об изображении /* function image_get_info($file = NULL) { if(!is_file($file)) return false; if(!$data = getimagesize($file) or !$filesize = filesize($file)) return false; $extensions = array(1 => 'gif', 2 => 'jpeg', 3 => 'png', 4 => 'swf', 5 => 'psd', 6 => 'bmp', 7 => 'tiff', 8 => 'tiff', 9 => 'jpc', 10 => 'jp2', 11 => 'jpx', 12 => 'jb2', 13 => 'swc', 14 => 'iff', 15 => 'wbmp', 16 => 'xbmp'); return array('width' => $data[0], 'height' => $data[1], 'extension' => $extensions[$data[2]], 'size' => $filesize, 'mime' => $data['mime']); } */ // Изменяет размер изображения /* function image_resize($img_file = NULL, $target_file = NULL, $width = 0, $height = 0) { if(!$source_im_info = image_get_info($img_file)) return false; if(!in_array($source_im_info['extension'], array('gif', 'jpeg', 'png'))) return false; if($width and !$height) { if($width >= $source_im_info['width']) { $width = $source_im_info['width']; $height = $source_im_info['height']; } else { $height = $width*$source_im_info['height']/$source_im_info['width']; } } if(!$width and $height) { if($height >= $source_im_info['height']) { $width = $source_im_info['width']; $height = $source_im_info['height']; } else { $width = $height*$source_im_info['width']/$source_im_info['height']; } } $img_open_func = 'imagecreatefrom'.$source_im_info['extension']; $source_im = $img_open_func($img_file); $result_im = imagecreatetruecolor($width, $height); if($width == $height) { if($source_im_info['width'] > $source_im_info['height']) { $Diff_size = $source_im_info['width'] - $source_im_info['height']; if(!@imagecopyresampled($result_im, $source_im, 0, 0, $Diff_size/2, 0, $width, $height, $source_im_info['width']-$Diff_size, $source_im_info['height'])) return false; } else { $Diff_size = $source_im_info['height'] - $source_im_info['width']; if(!@imagecopyresampled($result_im, $source_im, 0, 0, 0, $Diff_size/2, $width, $height, $source_im_info['width'], $source_im_info['height']-$Diff_size)) return false; } } else { if(!@imagecopyresampled($result_im, $source_im, 0, 0, 0, 0, $width, $height, $source_im_info['width'], $source_im_info['height'])) return false; } $img_close_func = 'image'.$source_im_info['extension']; if($source_im_info['extension'] == 'jpeg') { if(!$img_close_func($result_im, $target_file, 95)) return false; } else { if(!$img_close_func($result_im, $target_file)) return false; } imagedestroy($source_im); imagedestroy($result_im); return true; } */ function isOpenNow($biz_id, $page_type="desktop") { global $db, $l; $w_day = array("",$l->g("monday-s"),$l->g("tuesday-s"),$l->g("wednesday-s"),$l->g("thursday-s"),$l->g("friday-s"),$l->g("saturday-s"),$l->g("sunday-s")); $week_day2 = array("",$l->g("monday"),$l->g("tuesday"),$l->g("wednesday2"),$l->g("thursday"),$l->g("friday2"),$l->g("saturday2"),$l->g("sunday")); $week_day = array("",$l->g("monday"),$l->g("tuesday"),$l->g("wednesday"),$l->g("thursday"),$l->g("friday"),$l->g("saturday"),$l->g("sunday")); if(date("w") > 0) { $day_of_week = date("w"); } else { $day_of_week = 7; } if($day_of_week == 1) { $yestoday = 7; } else { $yestoday = $day_of_week - 1; } $no_biz_hours = false; $res = $db->q("select week_day, left(hour_to,5) as hour_to, left(hour_from,5) as hour_from from company_hours where company_hours.company_id=".$biz_id." order by week_day;"); if($res->rowcount() > 0) { $i = 1; while($c_hour = $res->fetch()) { if($c_hour["week_day"] == $day_of_week) { if($c_hour["hour_from"] == $c_hour["hour_to"]) { $result["today_hours"] = "".$l->g("around-the-clock").""; } else { $result["today_hours"] = "".$c_hour["hour_from"]." - ".$c_hour["hour_to"].""; } $curr_hours["t_open"] = $c_hour["hour_from"]; $curr_hours["t_close"] = $c_hour["hour_to"]; } if($c_hour["week_day"] == $yestoday) { $curr_hours["y_open"] = $c_hour["hour_from"]; $curr_hours["y_close"] = $c_hour["hour_to"]; } $hours[$c_hour["week_day"]][0] = $c_hour["week_day"]; $hours[$c_hour["week_day"]][1] = $c_hour["hour_from"]; $hours[$c_hour["week_day"]][2] = $c_hour["hour_to"]; if(($c_hour["hour_from"]==$hours[$c_hour["week_day"]-1][1]) & ($c_hour["hour_to"]==$hours[$c_hour["week_day"]-1][2]) & ($c_hour["week_day"]>1)) { $hours[$c_hour["week_day"]][3] = 1; } else { $hours[$c_hour["week_day"]][3] = 0; } $i++; } } else { $no_biz_hours = true; } $hour_now = date("H:i"); $result["desc"] = ""; $result["id"] = ""; if(($curr_hours["t_open"] == $curr_hours["t_close"]) && ($curr_hours["t_open"])) { $result["desc"] = $l->g("open"); $result["id"] = "open"; } else if($hour_now < $curr_hours["t_open"]) { $open_min = intval(abs(strtotime($curr_hours["t_open"])-strtotime($hour_now))/60); if(($curr_hours["y_open"] == "") || ($curr_hours["y_close"] == "")) { if(($open_min >= 60) && ($open_min % 60)) { $result["extra"] = $l->g("opens-in-n-hours-m-min", floor($open_min/60), ($open_min % 60)); } else if($open_min >= 60) { $result["extra"] = $l->g("opens-in-n-hours", floor($open_min/60)); } else { $result["extra"] = $l->g("opens-in-n-min", floor($open_min)); } $result["desc"] = $l->g("closed"); $result["id"] = "closed"; } else if($curr_hours["y_open"] <= $curr_hours["y_close"]) { $result["desc"] = $l->g("closed"); $result["id"] = "closed"; if(($open_min >= 60) && ($open_min % 60)) { $result["extra"] = $l->g("opens-in-n-hours-m-min", floor($open_min/60), ($open_min % 60)); } else if($open_min >= 60) { $result["extra"] = $l->g("opens-in-n-hours", floor($open_min/60)); } else { $result["extra"] = $l->g("opens-in-n-min", floor($open_min)); } } else { if($curr_hours["y_close"] >= $hour_now) { $close_seconds = abs(strtotime($curr_hours["y_close"])-strtotime($hour_now)); if($close_seconds < 1800) { $result["desc"] = $l->g("open"); $result["extra"] = $l->g("closes-in-n-min", intval($close_seconds/60)); $result["id"] = "open"; } else { $result["desc"] = $l->g("open"); $result["id"] = "open"; } } else { $result["desc"] = $l->g("closed"); $result["id"] = "closed"; if(($open_min >= 60) && ($open_min % 60)) { $result["extra"] = $l->g("opens-in-n-hours-m-min", floor($open_min/60), ($open_min % 60)); } else if($open_min >= 60) { $result["extra"] = $l->g("opens-in-n-hours", floor($open_min/60)); } else { $result["extra"] = $l->g("opens-in-n-min", floor($open_min)); } } } } else if($curr_hours["t_open"] > $curr_hours["t_close"]) { if($hour_now >= $curr_hours["t_open"]) { $close_seconds = abs(strtotime($curr_hours["t_close"])-strtotime("00:00"))+abs(strtotime("00:00")-strtotime($hour_now)); if($close_seconds < 1800) { $result["desc"] = $l->g("open"); $result["extra"] = $l->g("closes-in-n-min", intval($close_seconds/60)); $result["id"] = "open"; } else { $result["desc"] = $l->g("open"); $result["id"] = "open"; } } } else if($curr_hours["t_open"] < $curr_hours["t_close"]) { if(($hour_now >= $curr_hours["t_open"]) && ($hour_now <= $curr_hours["t_close"])) { $close_seconds = abs(strtotime($curr_hours["t_close"])-strtotime($hour_now)); if($close_seconds < 1800) { $result["desc"] = $l->g("open"); $result["extra"] = $l->g("closes-in-n-min", intval($close_seconds/60)); $result["id"] = "open"; } else { $result["desc"] = $l->g("open"); $result["id"] = "open"; } } else if($hour_now >= $curr_hours["t_close"]) { $result["desc"] = $l->g("closed"); $result["id"] = "closed"; } } if((($curr_hours["t_open"]=="") || (($hour_now >= $curr_hours["t_close"]) && ($curr_hours["t_open"]<$curr_hours["t_close"]))) && (!$no_biz_hours)) { if($curr_hours["t_open"]=="") { $result["desc"] = $l->g("day-off"); } $day_count=1; if($day_of_week == 7) {$i=1;} else {$i=$day_of_week+1;} while(($day_count<=7) && (!$result["extra"])) { if($hours[$i][1]) { if($day_count==1) { $result["extra"] = $l->g("opens-tomorrow-at", $hours[$i][1]); } else { $result["extra"] .= $l->g("opens-at-on", $week_day2[$i], $hours[$i][1]); } } if($i==7) {$i=1;} else {$i++;} $day_count++; } $result["id"] = "closed"; } //if($page_type == "desktop") { if(!$no_biz_hours) { for($j=1;$j<=7; $j++) { if($day_of_week == $j) { $today_class = " class=\"today ".$result["id"]."\""; } else { $today_class = ""; } $result["hours"] .= "". "".$w_day[$j]." "; if($hours[$j][1] == $hours[$j][2]) { if($hours[$j][1]) { $result["hours"] .= "".$l->g("around-the-clock").""; } else { $result["hours"] .= "".$l->g("closed").""; } } else { $result["hours"] .= "".$hours[$j][1]." - ".$hours[$j][2].""; } $result["hours"] .= " "; if($day_of_week == $hours[$j][0]) { $result["hours"] .= "".$result["desc"].""; } $result["hours"] .= " "; } } /*} else if($page_type == "mobile") { $result["hours1"] = $hours; for($j=1;$j<=7; $j++) { if($hours[$j][3] == 0) { if($j>1) { if($period_str) { $result["hours"] .= "

".$wday_start; if($wday_end) { $result["hours"] .= " - ".$wday_end; } $result["hours"] .= " ".$period_str.""; $result["hours"] .= "

"; } $wday_end = ""; } if($hours[$j][1]) { if($hours[$j][1] == $hours[$j][2]) { $period_str = $l->g("around-the-clock"); } else { $period_str = $hours[$j][1]."-".$hours[$j][2]; } } else { $period_str = ""; } $wday_start = $week_day[$j]; } else if($hours[$j][3] == 1) { $wday_end = $week_day[$j]; } if($j==7) { if($period_str) { $result["hours"] .= "

".$wday_start; if($wday_end) { $result["hours"] .= " - ".$wday_end; } $result["hours"] .= " ".$period_str.""; $result["hours"] .= "

"; } } } }*/ //array_push($result["hours"], $hours); return $result; } function nuid_create($action_type, $action_id, $nuid_code="") {//создание темп записи для учета действий незалогиненных пользователей global $db; if(intval($_SESSION["id"])) {return 0;} if($nuid_code=="") { $nuid_code = CreateRegCode(); } $arFieldNamePar = Array("action_type", "action_id", "nuid_code", "user_id", "date_post"); $arFieldValuePar = Array($action_type, $action_id, $nuid_code, -1, date("Y-m-d H:i:s")); $res = $db->insert("nuid", $arFieldNamePar, $arFieldValuePar); return $nuid_code; } function nuid_check($nuid_code) {//проверка темп записи для учета действий незалогиненных пользователей global $db; if(!intval($_SESSION["id"])) {return 0;} $main_res = $db->q("select id, action_type, action_id from nuid where nuid_code='".htmlspecialchars($nuid_code)."' and user_id=-1 limit 1;"); if($nuid_data = $main_res->fetch()) { if($nuid_data["action_type"] == "bookmark") { $return_data = "bookmark"; $bookmark_res = $db->q("select id, biz_id, user_id from company_bookmark where biz_id=".$nuid_data["action_id"]." and user_id=".intval($_SESSION["id"]).";"); if(!$bookmark_data = $bookmark_res->fetch()) { $arFieldNamePar = Array("biz_id", "user_id", "date_insert", "date_edit"); $arFieldValuePar = Array($nuid_data["action_id"], intval($_SESSION["id"]), date("Y-m-d H:i:s"), date("Y-m-d H:i:s")); $res = $db->insert("company_bookmark", $arFieldNamePar, $arFieldValuePar); if($res) { set_biz_activity(6, $nuid_data["action_id"]); } $_SESSION["info_type"] = "success"; $_SESSION["info"] = "Добавлено в Избранное."; } else { $_SESSION["info_type"] = "success"; $_SESSION["info"] = "Уже присутствовало в Избранном."; } } else if($nuid_data["action_type"] == "review") { $return_data = "review"; $review_res = $db->q("select id, company_id, user_id, (select city_id from company where id=review.company_id) as city_id from review where id=".$nuid_data["action_id"].";"); if($review_data = $review_res->fetch()) { $sim_review_res = $db->q("select id from review where (review.company_id=".$review_data["company_id"].") and (review.user_id=".intval($_SESSION["id"]).") and (review.filtered!=1) order by id desc;"); if($sim_review_res->rowcount()>0) { $update_res = $db->q("update review set last_review=0 where (review.company_id=".$review_data["company_id"].") and (review.user_id=".intval($_SESSION["id"]).");"); $arFieldNamePar = Array("is_update"); $arFieldValuePar = Array(1); $res = $db->update("review", $arFieldNamePar, $arFieldValuePar, $review_data["id"]); } $arFieldNamePar = Array("user_id"); $arFieldValuePar = Array(intval($_SESSION["id"])); $res = $db->update("review", $arFieldNamePar, $arFieldValuePar, $review_data["id"]); UpdateUserReviewCount(intval($_SESSION["id"])); UpdateBizReviewTotal($review_data["company_id"]); SaveActivity("review", intval($_SESSION["id"]), $review_data["city_id"], 0, $review_data["company_id"]); ChangeCategoryCityTotals($review_data["company_id"], true); $_SESSION["info_type"] = "success"; $_SESSION["info"] = "Ваш отзыв успешно опубликован."; } else { $_SESSION["info_type"] = "error"; $_SESSION["info"] = "Не удалось добавить отзыв."; } } else if($nuid_data["action_type"] == "image") { $return_data = "image"; $image_res = $db->q("select id, table_name, rec_id, user_id from image where id=".$nuid_data["action_id"].";"); if($image_data = $image_res->fetch()) { $arFieldNamePar = Array("rec_id", "user_id"); $arFieldValuePar = Array(abs($image_data["rec_id"]),intval($_SESSION["id"])); $res = $db->update("image", $arFieldNamePar, $arFieldValuePar, $image_data["id"]); if($image_data["table_name"] == "Company") { SaveActivity("biz_photo", intval($_SESSION["id"]), $_SESSION["city"], 0, abs($image_data["rec_id"])); require($DocRoot."model/image.php"); image::set_main_photo(abs($image_data["rec_id"]), "add"); //SetMainPhoto(abs($image_data["rec_id"])); set_biz_activity(7, abs($image_data["rec_id"])); $_SESSION["info_type"] = "success"; $_SESSION["info"] = "Фото места успешно добавлено."; } else if($image_data["table_name"] == "User") { $strSelect = "select (select img from image where table_name='User' and rec_id=user.id and main=1 limit 1) as img_path from user where id=".abs($image_data["rec_id"]).";"; $res = $db->q($strSelect); if($res_var = $res->fetch()) { $_SESSION["img_path"] = $res_var["img_path"]; } $_SESSION["info_type"] = "success"; $_SESSION["info"] = "Фото успешно добавлено."; } } } $arFieldNamePar = Array("user_id"); $arFieldValuePar = Array(intval($_SESSION["id"])); $res = $db->update("nuid", $arFieldNamePar, $arFieldValuePar, $nuid_data["id"]); unset($_SESSION["login_nuid_return"]); } return $return_data; } function CreateEventSrtId($name, $city_id) { global $db; //DBConnect(); //$name = (string) $name; // преобразуем в строковое значение $name = strip_tags($name); // убираем HTML-теги $name = str_replace(array("\n", "\r"), " ", $name); // убираем перевод каретки $name = trim($name); // убираем пробелы в начале и конце строки $name = mb_strtolower($name, 'UTF-8'); // переводим строку в нижний регистр (иногда надо задать локаль) $name = strtr($name, array('а'=>'a','б'=>'b','в'=>'v','г'=>'g','д'=>'d','е'=>'e','ё'=>'e','ж'=>'j','з'=>'z','и'=>'i','й'=>'y','к'=>'k','л'=>'l','м'=>'m','н'=>'n','о'=>'o','п'=>'p','р'=>'r','с'=>'s','т'=>'t','у'=>'u','ф'=>'f','х'=>'h','ц'=>'c','ч'=>'ch','ш'=>'sh','щ'=>'shch','ы'=>'y','э'=>'e','ю'=>'yu','я'=>'ya','ъ'=>'','ь'=>'')); $name = preg_replace("/[^0-9a-z-_ ]/i", "", $name); // очищаем строку от недопустимых символов $name = preg_replace("/\s+/", ' ', $name); // удаляем повторяющие пробелы $name = str_replace(" ", "-", $name); // заменяем пробелы знаком минус $res1 = $db->q("select str_id from city where id=".$city_id." limit 1;"); if($city_str = $res1->fetch()) {} $i=0; $res1 = $db->q("select str_id from event where str_id='".$name."-".$city_str["str_id"]."' limit 1;"); while($biz_str = $res1->fetch()) { $i++; $res1 = $db->q("select str_id from event where str_id='".$name."-".$i."-".$city_str["str_id"]."' limit 1;"); } if($i) { $name = $name."-".$i; } if($city_str["str_id"]) { $name = $name."-".$city_str["str_id"]; } $name = mb_substr($name, 0, 70, 'utf-8'); return $name; } function event_browse_url_new($city_code, $sort_by, $c, $start_date, $end_date, $period_name="") { global $RootPath; $url = $RootPath."events/".$city_code."/browse/"; $first_param=true; if($c) { if($first_param) {$url .= "?";$first_param=false;} else {$url .= "&";} $url .= "c=".$c; } if($period_name) { $CurrDate = date("Ymd"); $CurrWeekDay=date("w"); if($CurrWeekDay == 0) {$CurrWeekDay = 7;} if($period_name=="today") { if($first_param) {$url .= "?";$first_param=false;} else {$url .= "&";} $url .= "start_date=".$CurrDate; } else if($period_name=="tomorrow") { if($first_param) {$url .= "?";$first_param=false;} else {$url .= "&";} $url .= "start_date=".date('Ymd', (strtotime($CurrDate)+(60*60*24))); } else if($period_name=="thisweekend") { if($first_param) {$url .= "?";$first_param=false;} else {$url .= "&";} if($CurrWeekDay == 0) { $url .= "start_date=".$CurrDate; } else { $url .= "start_date=".date('Ymd', (strtotime($CurrDate)+((5-$CurrWeekDay)*60*60*24)))."&end_date=".date('Ymd', (strtotime($CurrDate)+((7-$CurrWeekDay)*60*60*24))); } } else if($period_name=="thisweek") { if($first_param) {$url .= "?";$first_param=false;} else {$url .= "&";} if($CurrWeekDay == 0) { $url .= "start_date=".$CurrDate; } else { $url .= "start_date=".date('Ymd', strtotime($CurrDate))."&end_date=".date('Ymd', strtotime($CurrDate)+((7-$CurrWeekDay)*60*60*24)); } } else if($period_name=="nextweek") { if($first_param) {$url .= "?";$first_param=false;} else {$url .= "&";} $url .= "start_date=".date('Ymd', strtotime($CurrDate)+(8-$CurrWeekDay)*60*60*24)."&end_date=".date('Ymd', strtotime($CurrDate)+(14-$CurrWeekDay)*60*60*24); } else if($period_name=="nextweekend") { if($first_param) {$url .= "?";$first_param=false;} else {$url .= "&";} return "start_date=".date('Ymd', strtotime($CurrDate)+(12-$CurrWeekDay)*60*60*24)."&end_date=".date('Ymd', (strtotime($CurrDate)+(14-$CurrWeekDay)*60*60*24)); } if($period_name=="afternextweek") { if($first_param) {$url .= "?";$first_param=false;} else {$url .= "&";} $url .= "start_date=".date('Ymd', strtotime($CurrDate)+(15-$CurrWeekDay)*60*60*24)."&end_date=".date('Ymd', (strtotime($CurrDate)+365*60*60*24)); } else if($period_name=="past") { if($first_param) {$url .= "?";$first_param=false;} else {$url .= "&";} $url .= "end_date=".$CurrDate; } } else { if($start_date) { if($first_param) {$url .= "?";$first_param=false;} else {$url .= "&";} $url .= "start_date=".$start_date; } if($end_date) { if($first_param) {$url .= "?";$first_param=false;} else {$url .= "&";} $url .= "end_date=".$end_date; } } if($sort_by) { if($first_param) {$url .= "?";$first_param=false;} else {$url .= "&";} $url .= "sort_by=".$sort_by; } return $url; } function nice_substr($str, $max_len, $postfix=' ...') { if(mb_strlen($str, "utf-8") <= $max_len) { return $str; } $tmp = mb_substr($str, 0, $max_len, "utf-8"); $f = mb_strripos($tmp, ' ', 0, "utf-8"); if($f < intval($max_len/2)) { return $tmp.$postfix; } else { return mb_substr($tmp, 0, $f, "utf-8").$postfix; } } function set_biz_activity($type, $biz_id, $source_type="website") { global $db; $sess_id = session_id(); $biz_id = intval($biz_id); //return; /* if(!in_array($type, array("biz_page", "bookmark", "checkin", "map", "phone", "website", "photo", "promocode"))) { return; } */ if(intval($type)>15) { return; } $request_time = $_SERVER["REQUEST_TIME"]; $user_id = intval($_SESSION["id"]); $bot_id = isBot(); if($bot_id==0) { $arFieldNamePar = array("type", "biz_id", "user_id", "sess_id", "request_time", "activity_count", "source_type", "date_post", "day_idx", "month_idx", "bot_id"); $arFieldValuePar = array($type, $biz_id, $user_id, $sess_id, $request_time, 1, $source_type, date("Y-m-d H:i:s"), intval(date("ymd")), intval(date("ym")), $bot_id); $res = $db->insert("biz_activity", $arFieldNamePar, $arFieldValuePar); } } function isBot(){ $bots = array( 'rambler','googlebot','aport','yahoo','msnbot','turtle','mail.ru','omsktele','yetibot','picsearch','sape.bot', 'sape_context','gigabot','snapbot','alexa.com','megadownload.net','askpeter.info','igde.ru','ask.com','qwartabot', 'yanga.co.uk','scoutjet','similarpages','oozbot','shrinktheweb.com','aboutusbot','followsite.com','dataparksearch', 'google-sitemaps','appEngine-google','feedfetcher-google', 'liveinternet.ru','xml-sitemaps.com','agama','metadatalabs.com','h1.hrn.ru', 'googlealert.com','seo-rus.com','yaDirectBot','yandeG','yandex', 'yandexSomething','Copyscape.com','AdsBot-Google','domaintools.com', 'Nigma.ru','bing.com','dotnetdotcom'); foreach($bots as $key => $bot) { if(stripos($_SERVER['HTTP_USER_AGENT'], $bot) !== false) { return $key; } } return 0; } function UpdateActivity($type, $activity_id, $filtered) { global $db; if(!in_array($filtered, array(0,1))) {return;} $res = $db->q("select activity_line.id, activity_header.id as header_id from activity_header, activity_line where activity_header.id=activity_line.activity_header_id and activity_header.type='".$type."' and activity_line.activity_id=".$activity_id." order by activity_line.id desc limit 1;"); if($activity_line_data = $res->fetch()) { $arFieldNamePar = Array("filtered"); $arFieldValuePar = Array($filtered); $res = $db->update("activity_line", $arFieldNamePar, $arFieldValuePar, $activity_line_data["id"]); if($filtered == 0) { $arFieldNamePar = Array("filtered"); $arFieldValuePar = Array($filtered); $res = $db->update("activity_header", $arFieldNamePar, $arFieldValuePar, $activity_line_data["header_id"]); } else if($filtered == 1) { $res = $db->q("select activity_line.id from activity_line where activity_line.activity_header_id=".$activity_line_data["header_id"]." and filtered=0 limit 1;"); if(!$unfiltered_activity_data = $res->fetch()) { $arFieldNamePar = Array("filtered"); $arFieldValuePar = Array($filtered); $res = $db->update("activity_header", $arFieldNamePar, $arFieldValuePar, $activity_line_data["header_id"]); } } } } function ChangeCategoryCityTotals($biz_id, $is_add, $all_reviews=false) { /* $reviews = 1; if($all_reviews) { $res = $db->q("select count(*) as count from review WHERE company_id=".$biz_id." and posted=1 and filtered<2;"); if($review_count = $res->fetch()) { $reviews = $review_count["count"]; } } if($is_add) {$inc_str = "+".$reviews;} else {$inc_str = "-".$reviews;} $res = $db->q("update category_city_total SET review_count=review_count".$inc_str." WHERE city_id=(SELECT city_id FROM company WHERE id=".$biz_id.") and (category_id in (select category_id FROM company_category WHERE company_id=".$biz_id." order by category_id) or category_id in (select category_root_id FROM company_category WHERE company_id=".$biz_id." ORDER BY category_id));"); */ } function UpdateUserReviewCount($user_id) { global $db; $res = $db->q("update user set review_count=(select count(*) from review where review.user_id=user.id and review.posted=1 and review.filtered!=2) where id=".$user_id.";"); } function removeEmoji($text_emoji) { return preg_replace('/[\x{1F3F4}](?:\x{E0067}\x{E0062}\x{E0077}\x{E006C}\x{E0073}\x{E007F})|[\x{1F3F4}](?:\x{E0067}\x{E0062}\x{E0073}\x{E0063}\x{E0074}\x{E007F})|[\x{1F3F4}](?:\x{E0067}\x{E0062}\x{E0065}\x{E006E}\x{E0067}\x{E007F})|[\x{1F3F4}](?:\x{200D}\x{2620}\x{FE0F})|[\x{1F3F3}](?:\x{FE0F}\x{200D}\x{1F308})|[\x{0023}\x{002A}\x{0030}\x{0031}\x{0032}\x{0033}\x{0034}\x{0035}\x{0036}\x{0037}\x{0038}\x{0039}](?:\x{FE0F}\x{20E3})|[\x{1F415}](?:\x{200D}\x{1F9BA})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F467}\x{200D}\x{1F467})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F467}\x{200D}\x{1F466})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F467})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F466}\x{200D}\x{1F466})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F466})|[\x{1F468}](?:\x{200D}\x{1F468}\x{200D}\x{1F467}\x{200D}\x{1F467})|[\x{1F468}](?:\x{200D}\x{1F468}\x{200D}\x{1F466}\x{200D}\x{1F466})|[\x{1F468}](?:\x{200D}\x{1F468}\x{200D}\x{1F467}\x{200D}\x{1F466})|[\x{1F468}](?:\x{200D}\x{1F468}\x{200D}\x{1F467})|[\x{1F468}](?:\x{200D}\x{1F468}\x{200D}\x{1F466})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F469}\x{200D}\x{1F467}\x{200D}\x{1F467})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F469}\x{200D}\x{1F466}\x{200D}\x{1F466})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F469}\x{200D}\x{1F467}\x{200D}\x{1F466})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F469}\x{200D}\x{1F467})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F469}\x{200D}\x{1F466})|[\x{1F469}](?:\x{200D}\x{2764}\x{FE0F}\x{200D}\x{1F469})|[\x{1F469}\x{1F468}](?:\x{200D}\x{2764}\x{FE0F}\x{200D}\x{1F468})|[\x{1F469}](?:\x{200D}\x{2764}\x{FE0F}\x{200D}\x{1F48B}\x{200D}\x{1F469})|[\x{1F469}\x{1F468}](?:\x{200D}\x{2764}\x{FE0F}\x{200D}\x{1F48B}\x{200D}\x{1F468})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F9BD})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F9BC})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F9AF})|[\x{1F575}\x{1F3CC}\x{26F9}\x{1F3CB}](?:\x{FE0F}\x{200D}\x{2640}\x{FE0F})|[\x{1F575}\x{1F3CC}\x{26F9}\x{1F3CB}](?:\x{FE0F}\x{200D}\x{2642}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F692})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F680})|[\x{1F468}\x{1F469}](?:\x{200D}\x{2708}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F3A8})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F3A4})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F4BB})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F52C})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F4BC})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F3ED})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F527})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F373})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F33E})|[\x{1F468}\x{1F469}](?:\x{200D}\x{2696}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F3EB})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F393})|[\x{1F468}\x{1F469}](?:\x{200D}\x{2695}\x{FE0F})|[\x{1F471}\x{1F64D}\x{1F64E}\x{1F645}\x{1F646}\x{1F481}\x{1F64B}\x{1F9CF}\x{1F647}\x{1F926}\x{1F937}\x{1F46E}\x{1F482}\x{1F477}\x{1F473}\x{1F9B8}\x{1F9B9}\x{1F9D9}\x{1F9DA}\x{1F9DB}\x{1F9DC}\x{1F9DD}\x{1F9DE}\x{1F9DF}\x{1F486}\x{1F487}\x{1F6B6}\x{1F9CD}\x{1F9CE}\x{1F3C3}\x{1F46F}\x{1F9D6}\x{1F9D7}\x{1F3C4}\x{1F6A3}\x{1F3CA}\x{1F6B4}\x{1F6B5}\x{1F938}\x{1F93C}\x{1F93D}\x{1F93E}\x{1F939}\x{1F9D8}](?:\x{200D}\x{2640}\x{FE0F})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F9B2})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F9B3})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F9B1})|[\x{1F468}\x{1F469}](?:\x{200D}\x{1F9B0})|[\x{1F471}\x{1F64D}\x{1F64E}\x{1F645}\x{1F646}\x{1F481}\x{1F64B}\x{1F9CF}\x{1F647}\x{1F926}\x{1F937}\x{1F46E}\x{1F482}\x{1F477}\x{1F473}\x{1F9B8}\x{1F9B9}\x{1F9D9}\x{1F9DA}\x{1F9DB}\x{1F9DC}\x{1F9DD}\x{1F9DE}\x{1F9DF}\x{1F486}\x{1F487}\x{1F6B6}\x{1F9CD}\x{1F9CE}\x{1F3C3}\x{1F46F}\x{1F9D6}\x{1F9D7}\x{1F3C4}\x{1F6A3}\x{1F3CA}\x{1F6B4}\x{1F6B5}\x{1F938}\x{1F93C}\x{1F93D}\x{1F93E}\x{1F939}\x{1F9D8}](?:\x{200D}\x{2642}\x{FE0F})|[\x{1F441}](?:\x{FE0F}\x{200D}\x{1F5E8}\x{FE0F})|[\x{1F1E6}\x{1F1E7}\x{1F1E8}\x{1F1E9}\x{1F1F0}\x{1F1F2}\x{1F1F3}\x{1F1F8}\x{1F1F9}\x{1F1FA}](?:\x{1F1FF})|[\x{1F1E7}\x{1F1E8}\x{1F1EC}\x{1F1F0}\x{1F1F1}\x{1F1F2}\x{1F1F5}\x{1F1F8}\x{1F1FA}](?:\x{1F1FE})|[\x{1F1E6}\x{1F1E8}\x{1F1F2}\x{1F1F8}](?:\x{1F1FD})|[\x{1F1E6}\x{1F1E7}\x{1F1E8}\x{1F1EC}\x{1F1F0}\x{1F1F2}\x{1F1F5}\x{1F1F7}\x{1F1F9}\x{1F1FF}](?:\x{1F1FC})|[\x{1F1E7}\x{1F1E8}\x{1F1F1}\x{1F1F2}\x{1F1F8}\x{1F1F9}](?:\x{1F1FB})|[\x{1F1E6}\x{1F1E8}\x{1F1EA}\x{1F1EC}\x{1F1ED}\x{1F1F1}\x{1F1F2}\x{1F1F3}\x{1F1F7}\x{1F1FB}](?:\x{1F1FA})|[\x{1F1E6}\x{1F1E7}\x{1F1EA}\x{1F1EC}\x{1F1ED}\x{1F1EE}\x{1F1F1}\x{1F1F2}\x{1F1F5}\x{1F1F8}\x{1F1F9}\x{1F1FE}](?:\x{1F1F9})|[\x{1F1E6}\x{1F1E7}\x{1F1EA}\x{1F1EC}\x{1F1EE}\x{1F1F1}\x{1F1F2}\x{1F1F5}\x{1F1F7}\x{1F1F8}\x{1F1FA}\x{1F1FC}](?:\x{1F1F8})|[\x{1F1E6}\x{1F1E7}\x{1F1E8}\x{1F1EA}\x{1F1EB}\x{1F1EC}\x{1F1ED}\x{1F1EE}\x{1F1F0}\x{1F1F1}\x{1F1F2}\x{1F1F3}\x{1F1F5}\x{1F1F8}\x{1F1F9}](?:\x{1F1F7})|[\x{1F1E6}\x{1F1E7}\x{1F1EC}\x{1F1EE}\x{1F1F2}](?:\x{1F1F6})|[\x{1F1E8}\x{1F1EC}\x{1F1EF}\x{1F1F0}\x{1F1F2}\x{1F1F3}](?:\x{1F1F5})|[\x{1F1E6}\x{1F1E7}\x{1F1E8}\x{1F1E9}\x{1F1EB}\x{1F1EE}\x{1F1EF}\x{1F1F2}\x{1F1F3}\x{1F1F7}\x{1F1F8}\x{1F1F9}](?:\x{1F1F4})|[\x{1F1E7}\x{1F1E8}\x{1F1EC}\x{1F1ED}\x{1F1EE}\x{1F1F0}\x{1F1F2}\x{1F1F5}\x{1F1F8}\x{1F1F9}\x{1F1FA}\x{1F1FB}](?:\x{1F1F3})|[\x{1F1E6}\x{1F1E7}\x{1F1E8}\x{1F1E9}\x{1F1EB}\x{1F1EC}\x{1F1ED}\x{1F1EE}\x{1F1EF}\x{1F1F0}\x{1F1F2}\x{1F1F4}\x{1F1F5}\x{1F1F8}\x{1F1F9}\x{1F1FA}\x{1F1FF}](?:\x{1F1F2})|[\x{1F1E6}\x{1F1E7}\x{1F1E8}\x{1F1EC}\x{1F1EE}\x{1F1F2}\x{1F1F3}\x{1F1F5}\x{1F1F8}\x{1F1F9}](?:\x{1F1F1})|[\x{1F1E8}\x{1F1E9}\x{1F1EB}\x{1F1ED}\x{1F1F1}\x{1F1F2}\x{1F1F5}\x{1F1F8}\x{1F1F9}\x{1F1FD}](?:\x{1F1F0})|[\x{1F1E7}\x{1F1E9}\x{1F1EB}\x{1F1F8}\x{1F1F9}](?:\x{1F1EF})|[\x{1F1E6}\x{1F1E7}\x{1F1E8}\x{1F1EB}\x{1F1EC}\x{1F1F0}\x{1F1F1}\x{1F1F3}\x{1F1F8}\x{1F1FB}](?:\x{1F1EE})|[\x{1F1E7}\x{1F1E8}\x{1F1EA}\x{1F1EC}\x{1F1F0}\x{1F1F2}\x{1F1F5}\x{1F1F8}\x{1F1F9}](?:\x{1F1ED})|[\x{1F1E6}\x{1F1E7}\x{1F1E8}\x{1F1E9}\x{1F1EA}\x{1F1EC}\x{1F1F0}\x{1F1F2}\x{1F1F3}\x{1F1F5}\x{1F1F8}\x{1F1F9}\x{1F1FA}\x{1F1FB}](?:\x{1F1EC})|[\x{1F1E6}\x{1F1E7}\x{1F1E8}\x{1F1EC}\x{1F1F2}\x{1F1F3}\x{1F1F5}\x{1F1F9}\x{1F1FC}](?:\x{1F1EB})|[\x{1F1E6}\x{1F1E7}\x{1F1E9}\x{1F1EA}\x{1F1EC}\x{1F1EE}\x{1F1EF}\x{1F1F0}\x{1F1F2}\x{1F1F3}\x{1F1F5}\x{1F1F7}\x{1F1F8}\x{1F1FB}\x{1F1FE}](?:\x{1F1EA})|[\x{1F1E6}\x{1F1E7}\x{1F1E8}\x{1F1EC}\x{1F1EE}\x{1F1F2}\x{1F1F8}\x{1F1F9}](?:\x{1F1E9})|[\x{1F1E6}\x{1F1E8}\x{1F1EA}\x{1F1EE}\x{1F1F1}\x{1F1F2}\x{1F1F3}\x{1F1F8}\x{1F1F9}\x{1F1FB}](?:\x{1F1E8})|[\x{1F1E7}\x{1F1EC}\x{1F1F1}\x{1F1F8}](?:\x{1F1E7})|[\x{1F1E7}\x{1F1E8}\x{1F1EA}\x{1F1EC}\x{1F1F1}\x{1F1F2}\x{1F1F3}\x{1F1F5}\x{1F1F6}\x{1F1F8}\x{1F1F9}\x{1F1FA}\x{1F1FB}\x{1F1FF}](?:\x{1F1E6})|[\x{00A9}\x{00AE}\x{203C}\x{2049}\x{2122}\x{2139}\x{2194}-\x{2199}\x{21A9}-\x{21AA}\x{231A}-\x{231B}\x{2328}\x{23CF}\x{23E9}-\x{23F3}\x{23F8}-\x{23FA}\x{24C2}\x{25AA}-\x{25AB}\x{25B6}\x{25C0}\x{25FB}-\x{25FE}\x{2600}-\x{2604}\x{260E}\x{2611}\x{2614}-\x{2615}\x{2618}\x{261D}\x{2620}\x{2622}-\x{2623}\x{2626}\x{262A}\x{262E}-\x{262F}\x{2638}-\x{263A}\x{2640}\x{2642}\x{2648}-\x{2653}\x{265F}-\x{2660}\x{2663}\x{2665}-\x{2666}\x{2668}\x{267B}\x{267E}-\x{267F}\x{2692}-\x{2697}\x{2699}\x{269B}-\x{269C}\x{26A0}-\x{26A1}\x{26AA}-\x{26AB}\x{26B0}-\x{26B1}\x{26BD}-\x{26BE}\x{26C4}-\x{26C5}\x{26C8}\x{26CE}-\x{26CF}\x{26D1}\x{26D3}-\x{26D4}\x{26E9}-\x{26EA}\x{26F0}-\x{26F5}\x{26F7}-\x{26FA}\x{26FD}\x{2702}\x{2705}\x{2708}-\x{270D}\x{270F}\x{2712}\x{2714}\x{2716}\x{271D}\x{2721}\x{2728}\x{2733}-\x{2734}\x{2744}\x{2747}\x{274C}\x{274E}\x{2753}-\x{2755}\x{2757}\x{2763}-\x{2764}\x{2795}-\x{2797}\x{27A1}\x{27B0}\x{27BF}\x{2934}-\x{2935}\x{2B05}-\x{2B07}\x{2B1B}-\x{2B1C}\x{2B50}\x{2B55}\x{3030}\x{303D}\x{3297}\x{3299}\x{1F004}\x{1F0CF}\x{1F170}-\x{1F171}\x{1F17E}-\x{1F17F}\x{1F18E}\x{1F191}-\x{1F19A}\x{1F201}-\x{1F202}\x{1F21A}\x{1F22F}\x{1F232}-\x{1F23A}\x{1F250}-\x{1F251}\x{1F300}-\x{1F321}\x{1F324}-\x{1F393}\x{1F396}-\x{1F397}\x{1F399}-\x{1F39B}\x{1F39E}-\x{1F3F0}\x{1F3F3}-\x{1F3F5}\x{1F3F7}-\x{1F3FA}\x{1F400}-\x{1F4FD}\x{1F4FF}-\x{1F53D}\x{1F549}-\x{1F54E}\x{1F550}-\x{1F567}\x{1F56F}-\x{1F570}\x{1F573}-\x{1F57A}\x{1F587}\x{1F58A}-\x{1F58D}\x{1F590}\x{1F595}-\x{1F596}\x{1F5A4}-\x{1F5A5}\x{1F5A8}\x{1F5B1}-\x{1F5B2}\x{1F5BC}\x{1F5C2}-\x{1F5C4}\x{1F5D1}-\x{1F5D3}\x{1F5DC}-\x{1F5DE}\x{1F5E1}\x{1F5E3}\x{1F5E8}\x{1F5EF}\x{1F5F3}\x{1F5FA}-\x{1F64F}\x{1F680}-\x{1F6C5}\x{1F6CB}-\x{1F6D2}\x{1F6D5}\x{1F6E0}-\x{1F6E5}\x{1F6E9}\x{1F6EB}-\x{1F6EC}\x{1F6F0}\x{1F6F3}-\x{1F6FA}\x{1F7E0}-\x{1F7EB}\x{1F90D}-\x{1F93A}\x{1F93C}-\x{1F945}\x{1F947}-\x{1F971}\x{1F973}-\x{1F976}\x{1F97A}-\x{1F9A2}\x{1F9A5}-\x{1F9AA}\x{1F9AE}-\x{1F9CA}\x{1F9CD}-\x{1F9FF}\x{1FA70}-\x{1FA73}\x{1FA78}-\x{1FA7A}\x{1FA80}-\x{1FA82}\x{1FA90}-\x{1FA95}]/u', '', $text_emoji); } function SaveActivity($type, $user_id, $city_id, $activity_id, $biz_id=0) { global $db; if(!$city_id) return; if(!$activity_id) { if($type == "review") { $res = $db->q("select id, company_id, DATE_FORMAT(date_post, '%Y-%m-%d') as date_post from review where user_id=".$user_id." order by id desc;"); if($r_data = $res->fetch()) { $activity_id = $r_data["id"]; $biz_id = $r_data["company_id"]; } } else if($type == "event") { $res = $db->q("select id, biz_id from event where user_id=".$user_id." order by id desc;"); if($e_data = $res->fetch()) { $activity_id = $e_data["id"]; $biz_id = $e_data["biz_id"]; } } else if($type == "biz_photo") { $res = $db->q("select id from image where table_name='Company' and rec_id=".$biz_id." and user_id=".$user_id." order by id desc;"); if($i_data = $res->fetch()) { $activity_id = $i_data["id"]; } } } if(!$activity_id) {return;} $pos1 = strpos($_SESSION["email"], "@nurlan.kz"); $pos2 = strpos($_SESSION["email"], "@adil.kz"); if((($pos1 !== false) || ($pos2 !== false)) && ($type == "review")) { $filtered = 1; } else { $filtered = 0; } if($type == "biz_photo") { $r = $db->q("select city_id from company where id=".$biz_id.""); if($b_data = $r->fetch()) { $city_id = $b_data["city_id"]; } $res = $db->q("select id, user_id, city_id, type, biz_id, (select count(*) from activity_line where activity_header_id=activity_header.id) as activity_count from activity_header where city_id=".$city_id." and filtered=0 order by id desc limit 1;"); if($activity_data = $res->fetch()) { if(($activity_data["user_id"] == $user_id) && ($activity_data["city_id"] == $city_id) && ($activity_data["biz_id"] == $biz_id) && ($activity_data["type"] == "biz_photo")) { $arFieldNamePar = Array("activity_header_id", "activity_id", "date_post"); $arFieldValuePar = Array($activity_data["id"], $activity_id, date("Y-m-d H:i:s")); $res = $db->insert("activity_line", $arFieldNamePar, $arFieldValuePar); return; } } } $arFieldNamePar = Array("type", "filtered", "user_id", "city_id", "biz_id", "date_post"); $arFieldValuePar = Array($type, $filtered, $user_id, $city_id, $biz_id, date("Y-m-d H:i:s")); $res = $db->insert("activity_header", $arFieldNamePar, $arFieldValuePar); if($res) { $res = $db->q("select id from activity_header where type='".$type."' and user_id=".$user_id." and city_id=".$city_id." order by id desc;"); if($activity_data = $res->fetch()) { $arFieldNamePar = Array("activity_header_id", "activity_id", "date_post"); $arFieldValuePar = Array($activity_data["id"], $activity_id, date("Y-m-d H:i:s")); $res = $db->insert("activity_line", $arFieldNamePar, $arFieldValuePar); } } } function DateDiff($date1, $date2) { global $l; $dt_elements = explode(' ',$date1); $date_elements = explode('-',$dt_elements[0]); $time_elements = explode(':',$dt_elements[1]); $date1 = mktime($time_elements[0], $time_elements[1],$time_elements[2], $date_elements[1],$date_elements[2], $date_elements[0]); $dt_elements = explode(' ',$date2); $date_elements = explode('-',$dt_elements[0]); $time_elements = explode(':',$dt_elements[1]); $date2 = mktime($time_elements[0], $time_elements[1],$time_elements[2], $date_elements[1],$date_elements[2], $date_elements[0]); $timedifference = $date2 - $date1; if($timedifference < 60) $res = $l->g("moment-ago"); else { if($timedifference < 3600) { $timedifference = intval($timedifference / 60); $period = $l->g_count("minute", $timedifference); } else if($timedifference < (3600*24)) { $timedifference = intval($timedifference / 3600); $period = $l->g_count("hour", $timedifference); } else if($timedifference < (3600*24*31)){ $timedifference = intval($timedifference / (3600*24)); $period = $l->g_count("day", $timedifference); } else { $timedifference = intval($timedifference / (3600*24*31)); $period = $l->g_count("month", $timedifference); } $res = $timedifference." ".$period." ".$l->g("ago"); } return $res; } function CalcDistance($distance) { global $l; $distance = intval($distance); if($distance < 50) { return $l->g("less-than-n-meters", 50); } else if($distance < 350) { return "".round($distance,-1)."".$l->g("meters"); } else if($distance < 1000000) { return "".round($distance/1000,1)."".$l->g("km"); } else { return $l->g("undefined"); } } function CreateRegCode() { $regcode = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","v","u","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","V","U","W","X","Y","Z","0","1","2","3","4","5","6","7","8","9"); for($i=0;$i<24;$i++) { $res .= $regcode[rand(0, sizeof($regcode))]; } return $res; } function transliterate($textcyr = null) { $cyr = array('а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п', 'р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я', 'А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П', 'Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я'); $lat = array('a','b','v','g','d','e','io','zh','z','i','y','k','l','m','n','o','p', 'r','s','t','u','f','h','ts','ch','sh','sht','a','i','y','e','yu','ya', 'A','B','V','G','D','E','Io','Zh','Z','I','Y','K','L','M','N','O','P', 'R','S','T','U','F','H','Ts','Ch','Sh','Sht','A','I','Y','e','Yu','Ya'); if($textcyr) return str_replace($cyr, $lat, $textcyr); else return null; } /* if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && (strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') && (!isset($_GET["lang"]))) { $lang = $_SESSION["lang"]; } else { $lang = $_GET["lang"]; $_SESSION["lang"] = $lang; } */ require_once($DocRoot."model/mobile_detect.php"); $detect = new Mobile_Detect; if($detect->isMobile()) { $is_responsive = true; $to_mobile = true; /* if($mobile_page || ($Page_n == "main3")) { header('Location: '.$mRootPath.$mobile_page); exit; } */ } else { $to_mobile = false; } require_once($DocRoot."model/db.php"); $db = new db(); require_once($DocRoot."model/lang.php"); $l = new lang(); ?>