Сайт временно не работаетdocument.location.href='$url';\n"; } else { header("Location: ".$url); } } /* function GetBirthDate($i) { if ($i == 1) { $res = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31); } else if ($i == 2) { $res = array(Янв,Фев,Мар,Апр,Май,Июн,Июл,Авг,Сен,Окт,Ноя,Дек); } else if ($i == 3) { $res = array(2011,2010,2009,2008,2007,2006,2005,2004,2003,2002,2001,2000,1999,1998,1997,1996,1995,1994,1993,1992,1991,1990,1989,1988,1987,1986,1985,1984,1983,1982,1981,1980,1979,1978,1977,1976,1975,1974,1973,1972,1971,1970,1969,1968,1967,1966,1965,1964,1963,1962,1961,1960,1959,1958,1957,1956,1955,1954,1953,1952,1951,1950,1949,1948,1947,1946,1945,1944,1943,1942,1941,1940,1939,1938,1937,1936,1935,1934,1933,1932,1931,1930); } return $res; } */ /* function GetWorkingWeekHours($i) { if($i == 1) { $res = array('Понедельник','Вторник','Среда','Четверг','Пятница','Суббота','Воскресенье'); } elseif($i == 2) { $res = array('6:00','6:30','7:00','7:30','8:00','8:30','9:00','9:30','10:00','10:30','11:00','11:30','12:00','12:30','13:00','13:30','14:00','14:30','15:00','15:30','16:00','16:30','17:00','17:30','18:00','18:30','19:00','19:30', '20:00','20:30','21:00','21:30','22:00','22:30','23:00','23:30','00:00','00:30','01:00','01:30','02:00','02:30','03:00','03:30','04:00','04:30','05:00','05:30'); } return $res; } */ /* 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 CreateCookieCode($user_pass) { return substr(md5(md5($user_pass).md5($user_pass)).md5($user_pass),0,24); } function SendContactNotificationToAdmin($type_id, $name, $phone, $email, $comments, $spam=0) { global $l, $admin_email, $RootPath, $DocRoot; $type_id_arr = array("1"=>"Ошибки","2"=>"Идеи по улучшению ".$l->g("wikicity"),"3"=>"Партнерство","4"=>"Пресса","5"=>"Другое","6"=>"Удаление пользовательского аккаунта"); $subject = "Обратная связь на ".$l->g("wikicity")."!"; if(!$name) {$name = $_SESSION["name"];} $message = ""; if($spam > 0) { $msg .= "СПАМ (".$spam.")\n"; } if($_SESSION["id"]) { $msg .= "Обратная связь\n".$name." отправил сообщение на ".$l->g("wikicity").":\n"; $message .= "

Зарегистрированый в системе ".$name." отправил сообщение на ".$l->g("wikicity").":

"; } else { $message .= "

Пользователь по имени ".$name." отправил сообщение на ".$l->g("wikicity").":

"; $msg .= "Пользователь по имени ".$name." отправил сообщение на ".$l->g("wikicity").":"; } $msg .= "\nТема: '".$type_id_arr[$type_id]."'\n"; $msg .= "Комментарий: '".$comments."'\n"; $msg .= "Телефон: ".$phone."\n"; $msg .= "Email: ".$email."\n"; $msg .= "Город: ".$_SESSION["city_code"]; require($DocRoot."model/notification.php"); notification::send($msg); //mail_with_log("adil_askarov@mail.ru,adv_wikicity@mail.ru", $subject, $message, $headers); } /* function GetUsersCookie() { $cookie_userid = @$_COOKIE['USERID']; if ($cookie_userid <> "") { $res = $db->q("select id, first_name from user where cookie_id=$cookie_userid"); $res_var = $res->fetch(); } return $res_var; } */ function SecondDiff ($date1, $date2) { $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 = abs($date2 - $date1); return $timedifference; } /* function GetMarkStr($Mark) { $Mark = (double)$Mark; if ($Mark > 4.74) {return "5";} else if ($Mark > 4.24) {return "4_half";} else if ($Mark > 3.74) {return "4";} else if ($Mark > 3.24) {return "3_half";} else if ($Mark > 2.74) {return "3";} else if ($Mark > 2.24) {return "2_half";} else if ($Mark > 1.74) {return "2";} else if ($Mark > 1.24) {return "1_half";} else if ($Mark > 0.74) {return "1";} else if ($Mark > 0) {return "0_half";} else {return "0";} } */ //(SELECT (AVG(review.mark)*COUNT(*)+3)/(COUNT(*)+1) FROM review WHERE review.company_id = company.id AND review.filtered=0 AND review.posted=1 AND review.last_review=1) AS rating, /* function BestCompany($Category_id, $City_id, $Quantity, $from = 0) { global $db; $res = $db->q("SELECT distinctrow company.name as Name, company.str_id as str_id, company.address_1, company.mark, company.review_count, (select left(Review_text, 250) from review where review.company_id = company.id and posted=1 and Filtered=0 and last_review=1 limit 1) as Review_text, (select id from review where review.company_id = company.id and posted=1 and Filtered=0 and last_review=1 limit 1) as review_id, ((company.mark+company.mark_correction/10)*company.review_count+3)/(company.review_count+2) as rating, (select img from image where id = company.main_img_id) as Img_path FROM company, company_category WHERE (company_category.category_root_id=".$Category_id." or company_category.category_id=".$Category_id.") and company.id=company_category.company_id and company.city_id=".$City_id." and company.filtered=0 ORDER BY rating desc, mark DESC, review_count desc, Img_path desc LIMIT ".$from.", ".$Quantity.";"); return $res; } */ /* function PopularCompany($Category_id, $City_id, $Quantity, $from = 0) { global $db; $month_ago=date("Y-m-d", (strtotime(date("Y-m-d"))-(30*60*60*24))); $res = $db->q("SELECT distinctrow company.name as Name, company.str_id as str_id, company.mark, (select img from image where id = company.main_img_id) as Img_path, (select month_stat from company_total where id=company.id) as stat_count FROM company, company_category WHERE (company_category.category_root_id=".$Category_id." or company_category.category_id=".$Category_id.") and company.id=company_category.company_id and company.city_id=".$City_id." and company.filtered=0 ORDER BY stat_count desc, mark DESC, Img_path desc LIMIT ".$from.", ".$Quantity.";"); //(select sum(stat_count) from page_stat where page_type=1 and page_id=company.id and date_stat >= '$month_ago') stat_count return $res; } */ /* // Возвращает данные об изображении 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; } //добавил поглядеть //$matrix = array(array(-1,-1,-1), array(-1,16,-1), array(-1,-1,-1)); //imageconvolution($target_file, $matrix, 8, 0); imagedestroy($source_im); imagedestroy($result_im); return true; } */ function photo_show($size = "", $type = "", $Reg_code = "", $Imagefile = "", $alt = "", $img_id = "") { global $RootPath, $ImagePath, $ImagePath_ls, $ImagePath_ms, $ImagePath_ss, $ImagePath_xss; $gender = $img_id; if($size == "xss") {$Path = $ImagePath_xss;} else if($size == "ss") {$Path = $ImagePath_ss;} else if($size == "mss") {$Path = $ImagePath_ms;} else if($size == "ms") {$Path = $ImagePath_ms;} else if($size == "ms_event") {$Path = $ImagePath_ms;} else if(($size == "ls") || ($size == "mls")) {$Path = $ImagePath_ls;} else {$Path = $ImagePath;} if($type == "biz") { if($img_id == "") { $href = $RootPath."biz/".$Reg_code; } else { $href = $RootPath."biz_fotos/".$Reg_code."/".$img_id; } if($Imagefile == "") { if($size == "mls") {$size = "mls";} $src = "\"".$RootPath."styles/images/default_fotos/default_business_".$size.".png\""; } else { $src = "\"".$Path.$Imagefile."\""; } } else if($type == "user") { if($Reg_code == "") { $href = $RootPath."friends_confirm/";} else {$href = $RootPath."user_details/?Reg_code=".$Reg_code;} if($Imagefile == "") { if($gender == "2") { $src = "\"".$RootPath."styles/images/default_fotos/def_user/blank_user_woman_".$size."_".rand(1,5).".png\""; } else { $src = "\"".$RootPath."styles/images/default_fotos/def_user/blank_user_man_".$size."_".rand(1,5).".png\""; } } else { $src = "\"".$Path.$Imagefile."\""; } } else if($type == "event") { $href = $RootPath."events/?event_id=".$Reg_code; if($Imagefile == "") { $src = "\"".$RootPath."styles/images/default_fotos/default_event_".$size.".png\""; if($size == "ms_event") { $src = "\"".$RootPath."styles/images/default_fotos/default_event_ms.png\""; } else if($size == "mss") { $src = "\"".$RootPath."styles/images/default_fotos/default_event_ms.png\""; } } else { $src = "\"".$Path.$Imagefile."\""; } } $result = "
"; if($Reg_code != "") $result .= ""; $result .= "\"".$alt."\""; if($Reg_code!="") $result .= ""; $result .= "
"; return $result; } /* function review_vote_show($review_id=0) { global $lang_header_wasareview, $lang_header_usefull, $lang_header_funny, $lang_header_cool; for($i=1;$i<=3;$i++) { if($_SESSION["id"]!="") { $res = $db->q("select id from review_vote where review_id=".$review_id." and vote_type=".$i." and user_id=".intval($_SESSION["id"]).";"); if($vote_data = $res->fetch()) $votes[$i-1][0] = 1; } else {$votes[$i-1][0] = 0;} $res = $db->q("select count(*) as count from review_vote where review_id=".$review_id." and vote_type=".$i.";"); if($vote_data = $res->fetch()) $votes[$i-1][1] = $vote_data["count"]; } $result = "
"; $result .= "

".$lang_header_wasareview."

"; $result .= "

 

"; return $result; } */ /* function review_vote_show_new($review_id=0, $page_type="main") { global $lang_header_wasareview, $lang_header_usefull, $lang_header_funny, $lang_header_cool; for($i=1;$i<=3;$i++) { if(intval($_SESSION["id"])) { $res = $db->q("select id from review_vote where review_id=".intval($review_id)." and vote_type=".$i." and user_id=".intval($_SESSION["id"]).";"); if($vote_data = $res->fetch()) $votes[$i-1][0] = 1; } else {$votes[$i-1][0] = 0;} $res = $db->q("select count(*) as count from review_vote where review_id=".intval($review_id)." and vote_type=".$i.";"); if($vote_data = $res->fetch()) $votes[$i-1][1] = $vote_data["count"]; } if($page_type=="main") { $result = ""; } else if($page_type=="biz") { //

Спасибо за ваш голос!

$result = "

Был ли отзыв ...?

"; } else if($page_type=="my") { $result = "

"; } return $result; } */ function add_as_friend($user_to_id=0, $message = "") { global $db; //$message = substr(trim(htmlspecialchars($message)), 0, 1000); if(!intval($_SESSION["id"])) { $infoAlert[0] = "error"; $infoAlert[1] = "Уппс, так Вы же не залогинены."; return $infoAlert; } /* if(!$message) { $infoAlert[0] = "error"; $infoAlert[1] = "Не заполнено обязательное поле."; return $infoAlert; } */ if($user_to_id == intval($_SESSION["id"])) { $infoAlert[0] = "error"; $infoAlert[1] = "Мы итак уверены, что с собой Вы дружны :))"; return $infoAlert; } $accepted = "0"; $res = $db->q("select user_friends.id, user_friends.accepted from user_friends where user_friends.friend_user_id=".intval($_SESSION["id"])." and user_friends.user_id=".$user_to_id." and user_friends.accepted>=0;"); if($f_d = $res->fetch()) { $accepted = "1"; if($f_d["accepted"]=="0") { $arFieldNamePar = Array("accepted"); $arFieldValuePar = Array($accepted); $res = $db->update("user_friends", $arFieldNamePar, $arFieldValuePar, $f_d["id"]); UpdateUserFriendCount(intval($_SESSION["id"])); UpdateUserFriendCount($user_to_id); } } $res = $db->q("select user_friends.id, user_friends.accepted from user_friends where user_friends.friend_user_id=".$user_to_id." and user_friends.user_id=".intval($_SESSION["id"]).";"); if($f_d = $res->fetch()) { $accepted = "1"; if($f_d["accepted"] == "0") { $arFieldNamePar = Array("accepted"); $arFieldValuePar = Array($accepted); $res = $db->update("user_friends", $arFieldNamePar, $arFieldValuePar, $f_d["id"]); UpdateUserFriendCount(intval($_SESSION["id"])); } else if($f_d["accepted"] == "1") { $infoAlert[0] = "error"; $infoAlert[1] = "А Вы уже дружите :))"; return $infoAlert; } else { $infoAlert[0] = "error"; $infoAlert[1] = "У Вас уже есть запрос на ожидании, отосланный ранее."; return $infoAlert; } } else { $str_id = CreateRegCode(); $arFieldNamePar = Array("user_id", "friend_user_id", "str_id", "accepted", "date_post"); $arFieldValuePar = Array(intval($_SESSION["id"]), $user_to_id, $str_id, $accepted, date("Y-m-d H:i:s")); $res = $db->insert("user_friends", $arFieldNamePar, $arFieldValuePar); UpdateUserFriendCount(intval($_SESSION["id"])); } $infoAlert[0] = "success"; $infoAlert[1] = "Запрос на дружбу отправлен."; return $infoAlert; } function following_user_add($user_to_id=0) { global $db; if(!$_SESSION["id"]) {$infoAlert[0] = "error"; $infoAlert[1] = "Уппс, так Вы же не залогинены."; return $infoAlert;} $res = $db->q("select user_following.id from user_following where user_following.user_id=".intval($_SESSION["id"])." and user_following.followed_user_id=".$user_to_id.";"); if($user_data = $res->fetch()) { $infoAlert[0] = "error"; $infoAlert[1] = "Вы уже подписаны."; return $infoAlert; } else { $arFieldNamePar = Array("user_id", "followed_user_id", "date_insert", "date_edit"); $arFieldValuePar = Array($_SESSION["id"], $user_to_id, date("Y-m-d H:i:s"), date("Y-m-d H:i:s")); $res = $db->insert("user_following", $arFieldNamePar, $arFieldValuePar); } $infoAlert[0] = "success"; $infoAlert[1] = "Подписка удачно оформлена."; return $infoAlert; } function following_user_remove($user_to_id = "") { global $db; if($_SESSION["id"] == "") {$infoAlert[0] = "error"; $infoAlert[1] = "Вы вышли из системы"; return $infoAlert;} $res = $db->q("select user_following.id from user_following where user_following.user_id=".intval($_SESSION["id"])." and user_following.followed_user_id=".$user_to_id.";"); if($user_data = $res->fetch()) { $res = $db->q("delete from user_following where id=".$user_data["id"].";"); } else { $infoAlert[0] = "error"; $infoAlert[1] = "Вы не были подписаны."; return $infoAlert; } $infoAlert[0] = "success"; $infoAlert[1] = "Подписка удалена."; return $infoAlert; } function SendMessage_ref($rel, $return_url) { global $RootPath, $lang_header_send_message; $result = "".$lang_header_send_message.""; return $result; } function SendCompliment_ref($Reg_code, $return_url, $company_id = "") { global $RootPath, $lang_header_send_compliment; $result = "".$lang_header_send_compliment.""; return $result; } function Bookmark_ref($return_url, $biz_id = "", $rid = "", $bookmark_id = "") { global $RootPath, $lang_bookmark; if($bookmark_id) { $result = "".$lang_bookmark.""; return $result; } } /* function CreateBookmark($biz_id, $rid=0, $bookmark_id=0) { if(!intval($_SESSION["id"])) { $infoAlert[0] = "error"; $infoAlert[1] = "Уппс, так Вы же не залогинены."; return $infoAlert; } if($bookmark_id) { $res = $db->q("select id, description from company_bookmark where id=".intval($bookmark_id)." and user_id=".intval($_SESSION["id"]).";"); if($biz_bookmark_d = $res->fetch()) { $infoAlert['bookmark_id'] = $biz_bookmark_d["id"]; $infoAlert['desc'] = $biz_bookmark_d["description"]; } else { $infoAlert[0] = "error"; $infoAlert[1] = "Закладка не существует."; } return $infoAlert; } $res = $db->q("select id, description from company_bookmark where user_id=".intval($_SESSION["id"])." and biz_id=".$biz_id." limit 1;"); if($biz_bookmark_d = $res->fetch()) { $infoAlert[0] = "warning"; $infoAlert[1] = "Похоже Вы уже добавили это место в Избранное."; $infoAlert['bookmark_id'] = $biz_bookmark_d["id"]; $infoAlert['desc'] = $biz_bookmark_d["description"]; } else { $arFieldNamePar = Array("biz_id", "rid", "user_id", "date_insert", "date_edit"); $arFieldValuePar = Array($biz_id, 0, intval($_SESSION["id"]), date("Y-m-d H:i:s"), date("Y-m-d H:i:s")); $res = $db->insert("company_bookmark", $arFieldNamePar, $arFieldValuePar, true); if(!$res) { $infoAlert[0] = "error"; $infoAlert[1] = "Не удалось добавить в Избранное."; return $infoAlert; } else { $infoAlert[0] = "success"; $infoAlert[1] = "Место добавлено в Избранное. Вы можете написать заметку."; $infoAlert['bookmark_id'] = $db->lastInsertId(); set_biz_activity("bookmark", $biz_id); } } return $infoAlert; } function UpdateBookmark($bookmark_id, $desc = "", $remove=0) { $desc = substr(trim(htmlspecialchars($desc)),0,199); if(!$_SESSION["id"]) { $infoAlert[0] = "error"; $infoAlert[1] = "Уппс, так Вы же не залогинены."; return $infoAlert; } $res = $db->q("select id from company_bookmark where user_id=".intval($_SESSION["id"])." and id=".$bookmark_id.";"); if(!$biz_bookmark_d = $res->fetch()) { $infoAlert[0] = "error"; $infoAlert[1] = "Произошла ошибка при сохранении."; return $infoAlert; } else { if($remove == 1) { $res = $db->q("delete from company_bookmark where id=".intval($bookmark_id)." limit 1;"); if(!$res) { $infoAlert[0] = "error"; $infoAlert[1] = "Не удалось удалить из Избранного."; } else { $infoAlert[0] = "success"; $infoAlert[1] = "Удалено из Избранного."; } } else { $arFieldNamePar = Array("description", "date_edit"); $arFieldValuePar = Array($desc, date("Y-m-d H:i:s")); $res = $db->update("company_bookmark", $arFieldNamePar, $arFieldValuePar, $bookmark_id); if(!$res) { $infoAlert[0] = "error"; $infoAlert[1] = "Не удалось сохранить в Избранном."; } else { $infoAlert[0] = "success"; $infoAlert[1] = "Избранное успешно сохранено."; } } } return $infoAlert; } */ function SendMessage($user_to_id, $subject, $message_text, $related_id=0) { global $db; $subject = substr(trim(htmlspecialchars($subject)),0,100); $message_text = substr(trim(htmlspecialchars($message_text)),0,10000); if(!$_SESSION["id"]) { $infoAlert[0] = "error"; $infoAlert[1] = "Уппс, так Вы же не залогинены."; return $infoAlert; } if($related_id != 0) {$isRe = 1;} else {$isRe = 0;} if($message_text=="") { $infoAlert[0] = "error"; $infoAlert[1] = "Не заполнен текст сообщения."; return $infoAlert; } $message_id = CreateRegCode(); $res = $db->q("select e_mail, first_name from user where id=".$user_to_id.";"); if(!$notif_d = $res->fetch()) { $infoAlert[0] = "error"; $infoAlert[1] = "Не найден получатель сообщения."; return $infoAlert; } $arFieldNamePar = Array("user_to_id", "user_from_id", "subject", "message_text", "date_post", "related_id", "message_id", "is_re"); $arFieldValuePar = Array($user_to_id, $_SESSION["id"], $subject, $message_text, date("Y-m-d H:i:s"), $related_id, $message_id, $isRe); $res = $db->insert("message", $arFieldNamePar, $arFieldValuePar); if(!$res) { $infoAlert[0] = "error"; $infoAlert[1] = "Не удалось отправить сообщение."; return $infoAlert; } if($related_id == 0) { $res = $db->q("update message set related_id=message.id where message_id='".$message_id."';"); if(!$res) { $infoAlert[0] = "error"; $infoAlert[1] = "Не удалось отправить сообщение."; return $infoAlert; } } else { $res = $db->q("update message set user_to_remove=0, user_from_remove=0 where id=".$related_id." and (user_to_remove=1 or user_from_remove=1) limit 1;"); } require_once($DocRoot."model/mailing.php"); $mailing = new mailing(); $mailing->message($message_id); $infoAlert[0] = "success"; $infoAlert[1] = "Ваше сообщение успешно отправлено."; $infoAlert[2] = $message_id; return $infoAlert; } function SendMessage_new($user_to_id, $subject, $message_text, $related_id=0) { global $db; $subject = substr(trim(htmlspecialchars($subject)),0,100); $message_text = substr(trim(htmlspecialchars($message_text)),0,10000); if(!$_SESSION["id"]) { $infoAlert[0] = "error"; $infoAlert[1] = "Упс, так вы же не залогинены."; return $infoAlert; } if($related_id != 0) {$isRe = 1;} else {$isRe = 0;} if($message_text=="") { $infoAlert[0] = "error"; $infoAlert[1] = "Не заполнен текст сообщения."; return $infoAlert; } $message_id = CreateRegCode(); $res = $db->q("select id, e_mail, first_name from user where reg_code='".$user_to_id."' limit 1;"); if(!$notif_d = $res->fetch()) { $infoAlert[0] = "error"; $infoAlert[1] = "Не найден получатель сообщения."; return $infoAlert; } $arFieldNamePar = Array("user_to_id", "user_from_id", "subject", "message_text", "date_post", "related_id", "message_id", "is_re"); $arFieldValuePar = Array($notif_d["id"], intval($_SESSION["id"]), $subject, $message_text, date("Y-m-d H:i:s"), $related_id, $message_id, $isRe); $res = $db->insert("message", $arFieldNamePar, $arFieldValuePar); if(!$res) { $infoAlert[0] = "error"; $infoAlert[1] = "Не удалось отправить сообщение."; return $infoAlert; } if($related_id == 0) { $res = $db->q("update message set related_id=message.id where message_id='".$message_id."';"); if(!$res) { $infoAlert[0] = "error"; $infoAlert[1] = "Не удалось отправить сообщение."; return $infoAlert; } } else { $res = $db->q("update message set user_to_remove=0, user_from_remove=0 where id=".$related_id." and (user_to_remove=1 or user_from_remove=1) limit 1;"); } require_once($DocRoot."model/mailing.php"); $mailing = new mailing(); $mailing->message($message_id); $infoAlert[0] = "success"; $infoAlert[1] = "Ваше сообщение успешно отправлено."; $infoAlert[2] = $message_id; return $infoAlert; } function SendComliment($user_to_reg_code, $message_text, $type, $for_type, $for_id) { global $db; $message_text = substr(stripslashes(strip_tags(trim($message_text))),0,1000); $type = substr(trim(htmlspecialchars($type)),0,20); $user_to_reg_code = substr(htmlspecialchars($user_to_reg_code),0,25); $for_type = substr(trim(htmlspecialchars($for_type)),0,10); $for_id = intval($for_id); if(!$_SESSION["id"]) { $infoAlert[0] = "error"; $infoAlert[1] = "Уппс, так Вы же не залогинены."; return $infoAlert; } if($message_text=="") { $infoAlert[0] = "error"; $infoAlert[1] = "Не заполнен текст сообщения."; return $infoAlert; } $comp_id = CreateRegCode(); $res = $db->q("select id, e_mail, first_name, reg_code from user where reg_code='".$user_to_reg_code."';"); if(!($user_d = $res->fetch())) { $infoAlert[0] = "error"; $infoAlert[1] = "Не найден получатель комплимента."; return $infoAlert; } if($for_type == "review") { $res = $db->q("select review.id from review where review.id=".$for_id." and review.user_id=".$user_d["id"].";"); if(!$for_data = $res->fetch()) { $infoAlert[0] = "error"; $infoAlert[1] = "Не удалось отправить Комплимент. Попробуйте перегрузить страницу."; return $infoAlert; } //$for_type_v = $for_type; //$for_id_v = $for_id; } $arFieldNamePar = Array("user_id", "from_user_id", "description", "for_type", "for_id", "type", "accepted", "compliment_id", "date_post"); $arFieldValuePar = Array($user_d["id"], intval($_SESSION["id"]), $message_text, $for_type, $for_id, $type, 0, $comp_id, date("Y-m-d H:i:s")); $res = $db->insert("user_compliment",$arFieldNamePar, $arFieldValuePar); if(!$res) { $infoAlert[0] = "error"; $infoAlert[1] = "Не удалось отправить комплимент."; return $infoAlert; } else { SendNewComplimentNotification($user_d["e_mail"], $user_d["first_name"], $user_d["reg_code"]); $infoAlert[0] = "success"; $infoAlert[1] = "Комплимент успешно отправлен."; } return $infoAlert; } function SendComliment_new($user_to_reg_code, $message_text, $type, $for_type, $for_id) { global $db; $message_text = substr(stripslashes(strip_tags(trim($message_text))),0,1000); $type = substr(trim(htmlspecialchars($type)),0,20); $user_to_reg_code = substr(htmlspecialchars($user_to_reg_code),0,25); $for_type = substr(trim(htmlspecialchars($for_type)),0,10); $for_id = substr(htmlspecialchars($for_id),0,25); if(!intval($_SESSION["id"])) { $infoAlert[0] = "error"; $infoAlert[1] = "Уппс, так Вы же не залогинены."; return $infoAlert; } if($message_text=="") { $infoAlert[0] = "error"; $infoAlert[1] = "Ой, а где же текст комплимента? Нужно что-то написать."; return $infoAlert; } $res = $db->q("select id, e_mail, first_name, reg_code from user where reg_code='".$user_to_reg_code."';"); if(!($user_d = $res->fetch())) { $infoAlert[0] = "error"; $infoAlert[1] = "Не найден получатель комплимента."; return $infoAlert; } if(intval($_SESSION["id"])==$user_d["id"]) { $infoAlert[0] = "error"; $infoAlert[1] = "Себе комплименты отправлять нельзя. ;)"; return $infoAlert; } if($for_type == "review") { $res = $db->q("select id from review where review_id='".$for_id."' and user_id=".$user_d["id"].";"); if(!$for_data = $res->fetch()) { $infoAlert[0] = "error"; $infoAlert[1] = "Не удалось отправить Комплимент. Не указан отзыв."; return $infoAlert; } $for_id = $for_data["id"]; } else if($for_type == "image") { $res = $db->q("select id from image where img_id='".$for_id."' and user_id=".$user_d["id"].";"); if(!$for_data = $res->fetch()) { $infoAlert[0] = "error"; $infoAlert[1] = "Не удалось отправить Комплимент. Не указано фото."; return $infoAlert; } $for_id = $for_data["id"]; } else { $for_type = ""; $for_id = 0; } $comp_id = CreateRegCode(); $arFieldNamePar = Array("user_id", "from_user_id", "description", "for_type", "for_id", "type", "accepted", "compliment_id", "date_post"); $arFieldValuePar = Array($user_d["id"], intval($_SESSION["id"]), $message_text, $for_type, $for_id, $type, 0, $comp_id, date("Y-m-d H:i:s")); $res = $db->insert("user_compliment",$arFieldNamePar, $arFieldValuePar); if(!$res) { $infoAlert[0] = "error"; $infoAlert[1] = "Не удалось отправить комплимент."; return $infoAlert; } else { SendNewComplimentNotification($user_d["e_mail"], $user_d["first_name"], $user_d["reg_code"]); $infoAlert[0] = "success"; $infoAlert[1] = "Комплимент успешно отправлен."; } return $infoAlert; } function SaveMapMarker($lat, $lng, $company_id) { global $db; $lat = substr(trim($lat),0,20); $lng = substr(trim($lng),0,20); if($_SESSION["permission_id"]>=10) {$priority = 5;} else {$priority = 1;} $company_id = substr(trim($company_id),0,25); if(!$_SESSION["id"]) { $infoAlert[0] = "error"; $infoAlert[1] = "Уппс, так Вы же не залогинены."; return $infoAlert; } $res = $db->q("select id from company where reg_code='".$company_id."';"); if(!($biz_d = $res->fetch())) { $infoAlert[0] = "error"; $infoAlert[1] = "Не опознано место, для которого определено положение."; return $infoAlert; } $res = $db->q("select id from company_map where biz_id=".$biz_d["id"]." and user_id=".intval($_SESSION["id"]).";"); if($biz_map_d = $res->fetch()) { $arFieldNamePar = Array("user_id", "biz_id", "map_lat", "map_lng", "priority", "date_post"); $arFieldValuePar = Array($_SESSION["id"], $biz_d["id"], $lat, $lng, $priority, date("Y-m-d H:i:s")); $res = $db->update("company_map",$arFieldNamePar, $arFieldValuePar, $biz_map_d["id"]); if(!$res) { $infoAlert[0] = "error"; $infoAlert[1] = "Не удалось сохранить метку."; return $infoAlert; } } else { $arFieldNamePar = Array("user_id", "biz_id", "map_lat", "map_lng", "priority", "date_post"); $arFieldValuePar = Array($_SESSION["id"], $biz_d["id"], $lat, $lng, $priority, date("Y-m-d H:i:s")); $res = $db->insert("company_map",$arFieldNamePar, $arFieldValuePar); if(!$res) { $infoAlert[0] = "error"; $infoAlert[1] = "Не удалось сохранить метку."; return $infoAlert; } } $infoAlert[0] = "success"; $infoAlert[1] = "Новое положение успешно сохранено."; return $infoAlert; } function GetUrlParam($ref) { $url_arr = parse_url($ref); $queryParts = explode('&', $url_arr["query"]); $params = array(); foreach($queryParts as $param) { $item = explode('=', $param); if(!$params[$item[0]]) { $params[$item[0]] = $item[1]; } } return $params; } function searchcompany($q_orig, $city, $cat, $sortby, $Pagestart, $is_count, $filter="", $near="", $attr="") { global $db; $q_orig = mb_strtolower($q_orig, "utf-8"); $q = htmlspecialchars(trim(mb_substr($q_orig, 0, 100, 'utf-8'))); $good = preg_replace("/[^a-zа-я\s]/ui", " ", $q); $fixed_layout_q = FixLayout($good); $tgood = RuTextToEng($good); $good_arr = explode(" ", $good); $tgood_arr = explode(" ", $tgood); if(!($q or $cat or $near or $city)) return 0; $cat_list = ""; if($q) { $res = $db->q("select id from category where lower(name)=lower('".$q."') or (LOWER(keywords) like '%,".$q.",%');"); while($cat_data = $res->fetch()) { if($cat_list) {$cat_data .= ",";} $cat_list .= $cat_data["id"]; } } if($attr) { $attr_ar = explode(",", $attr); $sql_attr = ""; foreach($attr_ar as $attr_cur) { $attr_cur_ar = explode(".", $attr_cur); $sql_attr .= " and id in (select biz_id from company_additional where additional_id='".$attr_cur_ar[0]."' and value_id=".$attr_cur_ar[1].") "; } } $SQL_select = "select company.id, company.str_id, company.Reg_code, company.name, company.address_1, company.phone, company.city_id, company.filtered, (select map_lat from company_map where biz_id=company.id order by priority desc, date_post desc limit 1) as map_lat, (select map_lng from company_map where biz_id=company.id order by priority desc, date_post desc limit 1) as map_lng, (select name from city where id=company.city_id) as city_name, (select Img from image where id = company.main_img_id) as Img_path, company.Mark, company.rating as f_rating, DATE_FORMAT(company.date_edit, '%d.%m.%Y') as date_edit_str, (select review.review_text from review where review.company_id=company.id and posted=1 and filtered=0 and last_review=1 order by mark desc limit 1) as review_text, company.review_count, (select month_stat FROM company_total where id=company.id) as stat_count "; if($near) { $SQL_select .= ",IF((SELECT SQRT(POWER((".$near["lat"]." - map_lat)*110349.7867154,2)+POWER((".$near["lng"]." - map_lng)*64505.305504,2)) from company_map where biz_id=company.id order by priority desc, date_post desc limit 1) is null, 100000, (SELECT SQRT(POWER((".$near["lat"]." - map_lat)*110349.7867154,2)+POWER((".$near["lng"]." - map_lng)*64505.305504,2)) from company_map where biz_id=company.id order by priority desc, date_post desc limit 1)) as distance"; } if($q && (!$cat_list)) { $SQL_select .= ","; $SQL_select_q = "IF(LOWER(company.name)='$q', 500, IF(LOWER(company.name)='$tgood', 400, IF(LOWER(company.name)='$fixed_layout_q', 300, IF(LOWER(company.name) like '$q%', 100, IF(LOWER(company.name) like '$tgood%', 99, IF(LOWER(company.name) like '$fixed_layout_q%', 98, IF(LOWER(company.name) like '%$q%', 80, IF(LOWER(company.name) like '%$tgood%', 79, IF(LOWER(company.name) like '%$fixed_layout_q%', 78, IF((LOWER(company.alter_name) like '$q%') and (company.alter_name <> ''), 60, IF((LOWER(company.alter_name) like '$tgood%') and (company.alter_name <> ''), 59, IF((LOWER(company.alter_name) like '$fixed_layout_q%') and (company.alter_name <> ''), 58, IF((LOWER(company.alter_name) like '%$q%') and (company.alter_name <> ''), 55, IF((LOWER(company.alter_name) like '%$tgood%') and (company.alter_name <> ''), 54, IF((LOWER(company.alter_name) like '%$fixed_layout_q%') and (company.alter_name <> ''), 53, IF((LOWER(company.address_1) like '%$q%') and (company.address_1 <> ''), 10, IF((LOWER(company.address_1) like '%$fixed_layout_q%') and (company.address_1 <> ''), 9,0) +IF(company.id in (select distinct cc.company_id from company_category as cc, category as c where (cc.category_id=c.id or cc.category_root_id=c.id) and (LOWER(c.name) like '%$q%')), 6, 0)"; $max_word_q = 3; $small_word = 0; $word_count = sizeof($good_arr); for($i=0;$i < min($word_count, $max_word_q + $small_word);$i++) { $word_size = mb_strlen($good_arr[$i], 'UTF-8'); if($word_size > 2) { if($word_count > 1) { $SQL_select_q .= "+IF(LOWER(company.name) like '%".$good_arr[$i]."%', 20-(".$i."-".$small_word."), IF(LOWER(company.name) like '%".$tgood_arr[$i]."%', 19-(".$i."-".$small_word."), IF((LOWER(company.alter_name) like '%".$good_arr[$i]."%') and (company.alter_name <> ''), 17-(".$i."-".$small_word."), IF((LOWER(company.address_1) like '%".$good_arr[$i]."%') and (company.alter_name <> ''), 15-(".$i."-".$small_word."),0))))"; } for($j=0;$j < $word_size; $j++) { $startString = mb_substr($good_arr[$i], 0, $word_size-$j-1, "UTF-8"); $endString = mb_substr($good_arr[$i], $word_size-$j, mb_strlen($good_arr[$i]), "UTF-8"); if((!$startString) | (!$endString)) { $similar_word = $startString . "_" . $endString; } else { $similar_word = $startString . "%" . $endString; } $SQL_select_q .= "+IF(LOWER(company.name) like '%$similar_word%', 10-($i-$small_word), IF((LOWER(company.alter_name) like '%$similar_word%') and (company.alter_name <> ''), 9-($i-$small_word), IF((LOWER(company.address_1) like '%$similar_word%') and (company.alter_name <> ''), 9-($i-$small_word), 0)))"; } } else { $small_word++; } } $SQL_select_q .= "))))))))))))))))"; $SQL_select_q_sel = " as relev"; } $SQL_select2 = " from company "; $SQL_select2 .= "where (company.city_id = ".$city.") "; if($cat_list) { $SQL_select2 .= "and (company.id in (select company_id from company_category where category_id in (".$cat_list.") or category_root_id in (".$cat_list."))) "; } if($filter != "removed") { $SQL_select2 .= "and (company.filtered=0) "; } if($filter) { if($filter == "withoutmark") { $SQL_select2 .= "and company.id not in (select biz_id from company_map order by id) "; } else if($filter == "withoutphoto") { $SQL_select2 .= "and (main_img_id = 0) "; } else if($filter == "withoutphone") { $SQL_select2 .= "and (phone = '') "; } else if($filter == "withoutreview") { $SQL_select2 .= "and company.review_count=0 "; } else if($filter == "removed") { $SQL_select2 .= "and (company.filtered = -2) "; } else if($filter == "owneractive") { $SQL_select2 .= "and company.id in (select biz_id from owner_request where accept=1) "; } else if($filter == "chocofood") { $SQL_select2 .= "and (company.chocofood_id<>'') "; } else if($filter == "new_biz") { $SQL_select2 .= "and (company.main_img_id<>0)"; } } if($cat != "") $SQL_select2 .= "and (company.id in (select distinct company_id from company_category as cc where (cc.category_id=".$cat." or cc.category_root_id=".$cat."))) "; if($attr) { $SQL_select2 .= $sql_attr; } $SQL_select .= $SQL_select_q.$SQL_select_q_sel.$SQL_select2; if($q && (!$cat_list)) { $SQL_select .= " having (relev >= 11)"; } if($near) { $SQL_select .= " having (distance <> 0)"; $SQL_select .= " order by filtered desc, ceiling(distance/100), f_rating desc, review_count desc"; } else if($filter == "new_biz") { $SQL_select .= " order by new_biz desc, id desc"; } else if($sortby == "relevance") { $SQL_select .= " order by "; if(!$cat_list) { $SQL_select .= "relev desc,"; } $SQL_select .= "filtered desc, f_rating desc"; } else if($sortby == "rating") { $SQL_select .= " order by filtered desc, f_rating desc"; } else if($sortby == "review_count") { $SQL_select .= " order by review_count desc, filtered desc, f_rating desc"; } else if($sortby == "date_add") { $SQL_select .= " order by company.date_insert desc, filtered desc, review_count desc"; } else if($sortby == "popular") { $SQL_select .= " order by filtered desc, stat_count desc, review_count desc, f_rating desc"; } else if($sortby == "name") { $SQL_select .= " order by name, review_count desc"; } else if($sortby == "marker") { $SQL_select .= " order by map_lat, review_count desc, f_rating desc"; } else if($sortby == "date_edit_asc") { $SQL_select .= " order by date_edit"; } else if($q) { $SQL_select .= " order by "; if(!$cat_list) { $SQL_select .= "relev desc,"; } $SQL_select .= "filtered desc, f_rating desc"; } else { $SQL_select .= " order by filtered desc, f_rating desc, Img_path desc"; } if($Pagestart == -1) { $SQL_select .= ";"; } else { $SQL_select .= " limit ".$Pagestart.",30;"; } if($is_count) { $SQL_count = "select count(distinct(company.id)) as company_count".$SQL_select2; if($q && (!$cat_list)) { $SQL_count .= "and (".$SQL_select_q.">=11)"; } return $SQL_count; } else { return $SQL_select; } } function search_for_mailing($q_orig, $city, $cat, $sortby, $Pagestart, $is_count, $filter="", $near='') { global $db; $q = htmlspecialchars(trim(mb_substr($q_orig, 0, 100, 'utf-8'))); $good = preg_replace("/[^a-zа-я\s]/ui", " ", $q); $fixed_layout_q = FixLayout($good); $tgood = RuTextToEng($good); $good_arr = explode(" ", $good); $tgood_arr = explode(" ", $tgood); if(!($q or $cat or $near or $city)) return 0; $month_ago=date("Y-m-d", (strtotime(date("Y-m-d"))-(30*60*60*24))); $SQL_select = "select company.id, company.str_id, company.Reg_code, company.name, company.address_1, company.phone, company.city_id, company.filtered, (select map_lat from company_map where biz_id=company.id order by priority desc, date_post desc limit 1) as map_lat, (select map_lng from company_map where biz_id=company.id order by priority desc, date_post desc limit 1) as map_lng, (select name from city where id=company.city_id) as city_name, (select Img from image where id = company.main_img_id) as Img_path, company.Mark, ((company.mark+company.mark_correction/10)*company.review_count+3)/(company.review_count+2) AS f_rating, (SELECT left(review.REVIEW_TEXT, 250) FROM review WHERE review.company_id = company.id and Posted=1 and filtered=0 and last_review=1 order by Mark desc LIMIT 1) AS review_text, company.review_count, (select name from owner_request where biz_id=company.id order by id desc limit 1) as owner_name, (select phone from owner_request where biz_id=company.id order by id desc limit 1) as owner_phone, (select email from owner_request where biz_id=company.id order by id desc limit 1) as owner_email, (select comment from owner_request where biz_id=company.id order by id desc limit 1) as owner_comment, (select month_stat FROM company_total where id=company.id) as stat_count "; if($near) { $SQL_select .= ",IF((SELECT SQRT(POWER((".$near["lat"]." - map_lat)*110349.7867154,2)+POWER((".$near["lng"]." - map_lng)*64505.305504,2)) from company_map where biz_id=company.id order by priority desc, date_post desc limit 1) is null, 100000, (SELECT SQRT(POWER((".$near["lat"]." - map_lat)*110349.7867154,2)+POWER((".$near["lng"]." - map_lng)*64505.305504,2)) from company_map where biz_id=company.id order by priority desc, date_post desc limit 1)) as distance"; } if($q) { $SQL_select .= ","; $SQL_select_q = "IF(LOWER(company.name)=LOWER('$q'), 500, IF(LOWER(company.name)=LOWER('$tgood'), 400, IF(LOWER(company.name)=LOWER('$fixed_layout_q'), 300, IF(LOWER(company.name) like '$q%', 100, IF(LOWER(company.name) like '$tgood%', 99, IF(LOWER(company.name) like '$fixed_layout_q%', 98, IF(LOWER(company.name) like '%$q%', 80, IF(LOWER(company.name) like '%$tgood%', 79, IF(LOWER(company.name) like '%$fixed_layout_q%', 78, IF((LOWER(company.alter_name) like '$q%') and (company.alter_name <> ''), 60, IF((LOWER(company.alter_name) like '$tgood%') and (company.alter_name <> ''), 59, IF((LOWER(company.alter_name) like '$fixed_layout_q%') and (company.alter_name <> ''), 58, IF((LOWER(company.alter_name) like '%$q%') and (company.alter_name <> ''), 55, IF((LOWER(company.alter_name) like '%$tgood%') and (company.alter_name <> ''), 54, IF((LOWER(company.alter_name) like '%$fixed_layout_q%') and (company.alter_name <> ''), 53, IF((LOWER(company.address_1) like '%$q%') and (company.address_1 <> ''), 10, IF((LOWER(company.address_1) like '%$fixed_layout_q%') and (company.address_1 <> ''), 9,0) +IF(company.id in (select distinct cc.company_id from company_category as cc, category as c where (cc.category_id=c.id or cc.category_root_id=c.id) and (LOWER(c.name) like '%$q%')), 6, 0)"; $max_word_q = 3; $small_word = 0; $word_count = sizeof($good_arr); for($i=0;$i < min($word_count, $max_word_q + $small_word);$i++) { $word_size = mb_strlen($good_arr[$i], 'UTF-8'); if($word_size > 2) { if($word_count > 1) { $SQL_select_q .= "+IF(LOWER(company.name) like '%".$good_arr[$i]."%', 20-(".$i."-".$small_word."), IF(LOWER(company.name) like '%".$tgood_arr[$i]."%', 19-(".$i."-".$small_word."), IF((LOWER(company.alter_name) like '%".$good_arr[$i]."%') and (company.alter_name <> ''), 17-(".$i."-".$small_word."), IF((LOWER(company.address_1) like '%".$good_arr[$i]."%') and (company.alter_name <> ''), 15-(".$i."-".$small_word."),0))))"; } for($j=0;$j < $word_size; $j++) { $startString = mb_substr($good_arr[$i], 0, $word_size-$j-1, "UTF-8"); $endString = mb_substr($good_arr[$i], $word_size-$j, mb_strlen($good_arr[$i]), "UTF-8"); if((!$startString) | (!$endString)) { $similar_word = $startString . "_" . $endString; } else { $similar_word = $startString . "%" . $endString; } $SQL_select_q .= "+IF(LOWER(company.name) like '%$similar_word%', 10-($i-$small_word), IF((LOWER(company.alter_name) like '%$similar_word%') and (company.alter_name <> ''), 9-($i-$small_word), IF((LOWER(company.address_1) like '%$similar_word%') and (company.alter_name <> ''), 9-($i-$small_word), 0)))"; } } else { $small_word++; } } $SQL_select_q .= "))))))))))))))))"; $SQL_select_q_sel = " as relev"; } $SQL_select2 = " from company "; $SQL_select2 .= "where (company.city_id = ".$city.") "; if($filter != "removed") { $SQL_select2 .= "and (company.filtered != -2) "; } if($filter) { if($filter == "withoutmark") { $SQL_select2 .= "and company.id not in (select biz_id from company_map order by id) "; } else if($filter == "withoutphoto") { $SQL_select2 .= "and (main_img_id = 0) "; } else if($filter == "withoutphone") { $SQL_select2 .= "and (phone = '') "; } else if($filter == "withoutreview") { $SQL_select2 .= "and company.id not in (select company_id from review where Posted=1 and filtered=0) "; } else if($filter == "removed") { $SQL_select2 .= "and (company.filtered = -2) "; } else if($filter == "owneractive") { $SQL_select2 .= "and company.id in (select biz_id from owner_request where accept=1) "; } } if($cat != "") $SQL_select2 .= "and (company.id in (select distinct company_id from company_category as cc where (cc.category_id=".$cat." or cc.category_root_id=".$cat."))) "; $SQL_select .= $SQL_select_q.$SQL_select_q_sel.$SQL_select2; if($q) { $SQL_select .= " having (relev >= 6)"; } if($near) { $SQL_select .= " having (distance <> 0)"; $SQL_select .= " order by filtered desc, ceiling(distance/100), f_rating desc, review_count desc"; } else if($sortby == "relevance") { $SQL_select .= " order by relev desc, filtered desc, f_rating desc, Mark desc, review_count desc"; } else if($sortby == "rating") { $SQL_select .= " order by filtered desc, f_rating desc, Mark desc, review_count desc"; } else if($sortby == "review_count") { $SQL_select .= " order by review_count desc, filtered desc, f_rating desc, mark desc"; } else if($sortby == "date_add") { $SQL_select .= " order by company.date_insert desc, filtered desc, review_count desc"; } else if($sortby == "popular") { $SQL_select .= " order by filtered desc, stat_count desc, review_count desc, f_rating desc"; } else if($sortby == "name") { $SQL_select .= " order by name, review_count desc"; } else if($sortby == "marker") { $SQL_select .= " order by map_lat, review_count desc, f_rating desc"; } else if($q) { $SQL_select .= " order by relev desc, filtered desc, f_rating desc, Mark desc, review_count desc"; } else { $SQL_select .= " order by filtered desc, f_rating desc, Mark desc, review_count desc, Img_path desc"; } $SQL_select .= " limit $Pagestart,10;"; if($is_count) { $SQL_count = "select count(distinct(company.id)) as company_count".$SQL_select2; if($q) { $SQL_count .= "and (".$SQL_select_q.">=6)"; } return $SQL_count; } else { return $SQL_select; } } function MakeCorrectDate($date) { $date_v = explode('.', $date); if(checkdate(intval($date_v[1]), intval($date_v[0]), intval($date_v[2]))) { return $date_v[2]."-".$date_v[1]."-".$date_v[0]; } return NULL; } function ShowGoodDate($date, $hours="", $show_year=true) { $datetime_v = explode(' ', $date); $date_v = explode('-', $datetime_v[0]); if(($date_v[2]=="00") | (!$date_v[2])) {return "";} $time_v = substr($datetime_v[1],0,5); if($hours == "0") $time_v = ""; $wday = date("w", mktime(0,0,0, $date_v[1], $date_v[2], $date_v[0])); $weekday_arr = array("Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"); $month_arr = array("", "Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря"); $result = $weekday_arr[$wday].", ".strval(intval($date_v[2]))." ".$month_arr[intval($date_v[1])]; if($show_year) { $result .= " ".$date_v[0]; } $result .= " ".substr($time_v, 0, 5); return $result; } function CalcWeekDay($type) { $CurrDate = date("Ymd"); $CurrWeekDay=date("w"); if($CurrWeekDay == 0) {$CurrWeekDay = 7;} if($type=="today") { return "start_date=".$CurrDate; } else if($type=="tomorrow") { return "start_date=".date('Ymd', (strtotime($CurrDate)+(60*60*24))); } else if($type=="thisweekend") { if($CurrWeekDay == 0) { return "start_date=".$CurrDate; } else { return "start_date=".date('Ymd', (strtotime($CurrDate)+((5-$CurrWeekDay)*60*60*24)))."&end_date=".date('Ymd', (strtotime($CurrDate)+((7-$CurrWeekDay)*60*60*24))); } } else if($type=="thisweek") { if($CurrWeekDay == 0) { return "start_date=".$CurrDate; } else { return "start_date=".date('Ymd', strtotime($CurrDate))."&end_date=".date('Ymd', strtotime($CurrDate)+((7-$CurrWeekDay)*60*60*24)); } } else if($type=="nextweek") { return "start_date=".date('Ymd', strtotime($CurrDate)+(8-$CurrWeekDay)*60*60*24)."&end_date=".date('Ymd', strtotime($CurrDate)+(14-$CurrWeekDay)*60*60*24); } else /* if($type=="nextweekend") { return "start_date=".date('Ymd', strtotime($CurrDate)+(12-$CurrWeekDay)*60*60*24)."&end_date=".date('Ymd', (strtotime($CurrDate)+(14-$CurrWeekDay)*60*60*24)); } */ if($type=="afternextweek") { return "start_date=".date('Ymd', strtotime($CurrDate)+(15-$CurrWeekDay)*60*60*24)."&end_date=".date('Ymd', (strtotime($CurrDate)+365*60*60*24)); } else if($type=="past") { return "end_date=".$CurrDate; } } function event_browse_url($param, $City_id, $audience, $sort_by, $c, $start_date, $end_date) { global $RootPath; $url_add = $RootPath."events/browse/?city=".$City_id; if($param=="sort_by") { if($audience <> "") $url_add = $url_add."&audience=".$audience; for($i=0;$i "") $url_add = $url_add."&c[]=".$c[$i]; } if($start_date <> "") $url_add = $url_add."&start_date=".$start_date; if($end_date <> "") $url_add = $url_add."&end_date=".$end_date; } else if($param=="audience") { if($sort_by <> "") $url_add = $url_add."&sort_by=".$sort_by; for($i=0;$i "") $url_add = $url_add."&c[]=".$c[$i]; } if($start_date <> "") $url_add = $url_add."&start_date=".$start_date; if($end_date <> "") $url_add = $url_add."&end_date=".$end_date; } else if($param=="c") { if($sort_by <> "") $url_add = $url_add."&sort_by=".$sort_by; if($audience <> "") $url_add = $url_add."&audience=".$audience; if($start_date <> "") $url_add = $url_add."&start_date=".$start_date; if($end_date <> "") $url_add = $url_add."&end_date=".$end_date; } else if($param=="date") { if($audience <> "") $url_add = $url_add."&audience=".$audience; if($sort_by <> "") $url_add = $url_add."&sort_by=".$sort_by; for($i=0;$i "") $url_add = $url_add."&c[]=".$c[$i]; } } else if($param=="") { if($audience <> "") $url_add = $url_add."&audience=".$audience; if($sort_by <> "") $url_add = $url_add."&sort_by=".$sort_by; for($i=0;$i "") $url_add = $url_add."&c[]=".$c[$i]; } if($start_date <> "") $url_add = $url_add."&start_date=".$start_date; if($end_date <> "") $url_add = $url_add."&end_date=".$end_date; } return $url_add; } /* function SetMainPhoto($biz_id) { $res = $db->q("select id, (select sum(vote_type + 2*first_photo) from image_vote where img_id=image.id) as mark from image where table_name='Company' and Rec_id=".$biz_id." order by mark desc limit 1;"); if($img_data = $res->fetch()) { $arFieldNamePar = Array("main_img_id"); $arFieldValuePar = Array($img_data["id"]); $res = $db->update("company", $arFieldNamePar, $arFieldValuePar, $biz_id); } return 0; } */ // функция превода текста с кириллицы в траскрипт function RuTextToEng($str) { $replace = array ("," => "", "." => "", " " => " ", "а" => "a", "б" => "b", "в" => "v", "г" => "g", "д" => "d", "е" => "e", "ё" => "e", "ж" => "zh", "з" => "z", "и" => "i", "й" => "y", "к" => "k", "л" => "l", "м" => "m", "н" => "n", "о" => "o", "п" => "p", "р" => "r", "с" => "s", "т" => "t", "у" => "u", "ф" => "f", "х" => "h", "ц" => "c", "ч" => "ch", "ш" => "sh", "щ" => "sch", "ъ" => "", "ы" => "y", "ь" => "", "э" => "e", "ю" => "yu", "я" => "ya"); return $str = iconv("UTF-8","UTF-8//IGNORE",strtr($str,$replace)); } function FixLayout($str) { $replace = array ("a" => "ф", "b" => "и", "c" => "с", "d" => "в", "e" => "у", "f" => "а", "g" => "п", "h" => "р", "i" => "ш", "j" => "о", "q" => "й", "r" => "к", "s" => "ы", "t" => "е", "v" => "м", "w" => "ц", "x" => "ч", "y" => "н", "z" => "я", "а" => "f", "в" => "d", "г" => "u", "д" => "l", "е" => "t", "з" => "p", "и" => "b", "й" => "q", "к" => "r", "л" => "k", "м" => "v", "н" => "y", "о" => "j", "п" => "g", "р" => "h", "с" => "c", "т" => "n", "у" => "e", "ф" => "a", "ц" => "w", "ч" => "x", "ш" => "i", "щ" => "o", "ы" => "s", "ь" => "m", "я" => "z"); return $str = iconv("UTF-8","UTF-8//IGNORE", strtr($str,$replace)); } function CreateSrtId($name, $biz_id, $city_id) { global $db; //$name = preg_replace ("/[^a-zA-ZА-Яа-я0-9\s]/", " ", $name); //$name = trim(preg_replace("/(\s){2,}/", ' ', $name)); $name = str_replace(""", "", str_replace("&", " ", $name)); $name = str_replace("'", "", str_replace("\"", "", $name)); $name = preg_replace("/[^a-zа-я0-9\s]/ui", " ", $name); while(str_replace(" ", " ", $name) != $name) { $name = str_replace(" ", " ", $name); }; $name = mb_substr(trim($name), 0, 45, 'utf-8'); $name = RuTextToEng($name); $name = str_replace(" ", "-", $name); $name = trim($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 company where str_id='".$name."-".$city_str["str_id"]."' and id<>".$biz_id." limit 1;"); while($biz_str = $res1->fetch()) { $i++; $res1 = $db->q("select str_id from company where str_id='".$name."-".$i."-".$city_str["str_id"]."' and id<>".$biz_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'); $arFieldNamePar = Array("str_id"); $arFieldValuePar = Array($name); $res = $db->update("company", $arFieldNamePar, $arFieldValuePar, $biz_id); if(!$res) { echo "Ошибка"; } return $name; } function UpdateUserFriendCount($user_id) { global $db; $res = $db->q("update user set friend_count=(select count(*) from user_friends where user_friends.user_id=user.id and user_friends.accepted=1) where id=".$user_id.";"); } /* function UpdateBizTipTotal($biz_id) { global $db; $res = $db->q("update company set tip_count=(select count(*) from tip where biz_id=company.id and filtered=0), where id=".$biz_id." limit 1;"); } */ function getOS($userAgent) { // Создадим список операционных систем в виде элементов массива $oses = array ('iPhone', 'iPad', 'Android', 'Macintosh'); foreach($oses as $os){ if(strpos($userAgent, $os)) { $_SERVER['user_os'] = $os; return true; } } return false; } /* function show_rating($size, $mark) { global $RootPath; $width = 132; $height = 560; $result = "
"; $result .= "\"оценка"; $result .= "
"; return $result; } */ function user_browser($agent) { preg_match("/(MSIE|Opera|Firefox|Chrome|Version|Opera Mini|Netscape|Konqueror|SeaMonkey|Camino|Minefield|Iceweasel|K-Meleon|Maxthon)(?:\/| )([0-9.]+)/", $agent, $browser_info); // регулярное выражение, которое позволяет отпределить 90% браузеров list(,$browser,$version) = $browser_info; // получаем данные из массива в переменную if(preg_match("/Opera ([0-9.]+)/i", $agent, $opera)) return 'Opera '.$opera[1]; // определение _очень_старых_ версий Оперы (до 8.50), при желании можно убрать if ($browser == 'MSIE') { // если браузер определён как IE preg_match("/(Maxthon|Avant Browser|MyIE2)/i", $agent, $ie); // проверяем, не разработка ли это на основе IE if ($ie) return $ie[1].' based on IE '.$version; // если да, то возвращаем сообщение об этом return 'IE '.$version; // иначе просто возвращаем IE и номер версии } if ($browser == 'Firefox') { // если браузер определён как Firefox preg_match("/(Flock|Navigator|Epiphany)\/([0-9.]+)/", $agent, $ff); // проверяем, не разработка ли это на основе Firefox if ($ff) return $ff[1].' '.$ff[2]; // если да, то выводим номер и версию } if($browser == 'Opera' && $version == '9.80') return 'Opera '.substr($agent,-5); // если браузер определён как Opera 9.80, берём версию Оперы из конца строки if($browser == 'Version') return 'Safari '.$version; // определяем Сафари if(!$browser && strpos($agent, 'Gecko')) return 'Browser based on Gecko'; // для неопознанных браузеров проверяем, если они на движке Gecko, и возращаем сообщение об этом return $browser.' '.$version; // для всех остальных возвращаем браузер и версию } /* function review_count_str($review_count) { global $lang_, $lang_review_one, $lang_review_several; $count = substr($review_count, -2); if(($lang_=="ru") || (!$lang_)) { if(($count >= 10) && ($count <= 20)) { return "отзывов"; } else { $count = substr($count, -1); if($count == 1) { return "отзыв"; } else { if(($count > 1) && ($count < 5)) { return "отзыва"; } else { return "отзывов"; } } } } else { if($count == 1) { return $lang_review_one; } else { return $lang_review_several; } } } */ /* function set_user_img_path($user_id) { $res = $db->q("select img from image where table_name='User' and rec_id=".intval($user_id)." and main=1 limit 1;"); if($img_data = $res->fetch()) { $db->q("update user set img_path='".$img_data["img"]."' where id=".intval($user_id).";"); } else { $db->q("update user set img_path='' where id=".intval($user_id).";"); } } */ function Pagination($ref="", $page_start=0, $rec_count=0, $rec_per_page=20, $pagination_class="") { global $l; if($rec_count == 0) {return "";} if(strpos($ref, "?") === false) {$first_param = true;} else {$first_param = false;} $result = "
"; if(ceil($rec_count/$rec_per_page) > 1) { $result .= ""; } $result .= "
". $l->g("page-x-of-y",max(1,round($page_start/$rec_per_page)+1),ceil($rec_count/$rec_per_page)). "
"; $result .= "
"; return $result; } ?>