";
}
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 = "