= 0){
$time_zone = '+'.$gmtmsk.' hour';
} else {
$time_zone = '-'.$gmtmsk.' hour';
}
$sql_advert_status_check = '';
$sql_advert_status_with_objects = '';
$advert_status_condition = '';
if (!$_GET['compObj'])
{
$sql_advert_status_check = ", IF(use_in_advert = 1 OR ads_source > 0, 1, 0) AS is_advert_enabled_or_rscan ";
$sql_advert_status_with_objects = ", IF(objects.use_in_advert = 1 OR objects.ads_source > 0, 1, 0) AS is_advert_enabled_or_rscan ";
$advert_status_condition = " AND is_advert_enabled_or_rscan = 1 ";
}
if ($_GET['ok']) {
$get['agencyId'] = $user->agencyId;
$get['parent_region'] = $region[1]['parent'];
if ($_GET['ok'] == 'archComp') {
$get['compObj'] = '1';
}
list($mas_usl_bd, $mas_url_add, $order) = search($get, false, $favor);
list($mas_usl_sph, $mas_url_add, $order) = search($get, false, $favor, true);
$mas_url_add = array_merge($mas_url_add, $mas_url_add2);
$mas_url_add = array_unique($mas_url_add);
if ($mas_usl_bd[0] === "1") {
//убираем 1
array_shift($mas_usl_bd);
}
$mas_url_add[] = "ok=$get[ok]";
$mas_url_add[] = "hide_form=1";
$mas_url_add[] = "operation_type=" . $get['operation_type'];
if ($mas_usl_bd) $str_usl_bd = implode(" AND ", $mas_usl_bd);
$dop_str_usl_sph = '';
$str_usl_sph = '';
if (isset($mas_usl_sph['match'])) {
$dop_str_usl_sph = "MATCH('" . implode(' ', $mas_usl_sph['match']) . "')";
unset($mas_usl_sph['match']);
}
if ($mas_usl_sph) $str_usl_sph = implode(" AND ", $mas_usl_sph);
if ($str_usl_sph != '') {
$str_usl_sph .= " AND ";
}
$str_usl_sph .= $dop_str_usl_sph;
//$get['dev'] = $_GET['dev'] = 1;
$countJoin = 'LEFT JOIN ads_objects ON ads_objects.obj_id = objects.id';
$join = " LEFT JOIN rayon rayon on objects.rayon = rayon.id LEFT JOIN land_usage_type lu on objects.land_usage_type_id = lu.id LEFT JOIN ads_objects ON ads_objects.obj_id = objects.id";
if ($_GET['ads_source']) {
$countJoin .= " LEFT JOIN ads_objects ads_objects on objects.id = ads_objects.ads_source_id ";
}
if ($_GET['raion']) {
$countJoin .= " LEFT JOIN rayon rayon on objects.rayon = rayon.id ";
}
if ($_GET['metro']) {
$countJoin .= " LEFT JOIN sp_metro sp_metro on objects.id = sp_metro.id_obj ";
}
if ($_GET['operation_type'] == 1) {
$countJoin .= " LEFT JOIN sale_objects sale_objects on objects.id = sale_objects.object_id ";
}
if ($_GET['type'] == 4) {
$countJoin .= " LEFT JOIN objects_additional_information as a on objects.id = a.object_id ";
}
// если доступ ограничен - просто затыкаем поиск на объекты агентов
if ($hasRestrictedAccess) {
$str_usl_bd .= " AND objects.id_add_user > 0 AND objects.archive = 0";
$str_usl_sph .= " AND id_add_user > 0 AND archive = 0";
if ($_GET['operation_type'] == 0) {
$str_usl_bd .= " AND objects.operation_type = 0";
$str_usl_sph .= " AND operation_type = 0";
} else {
if ($_GET['operation_type'] == 1) {
$str_usl_bd .= " AND objects.operation_type = 1";
$str_usl_sph .= " AND operation_type = 1";
}
}
} else {
if ($_GET['operation_type'] == 0) {
$str_usl_bd .= " AND objects.operation_type = 0";
$str_usl_sph .= " AND operation_type = 0";
if (!$get['object_id']) {
if ($_GET['ok'] == "fr") {
$str_usl_bd .= " AND ads_objects.ads_agent = 0 AND objects.archive = 0";
$str_usl_sph .= " AND is_agent = 0 AND archive = 0";
} elseif ($_GET['ok'] == "ap") {
$str_usl_bd .= " AND (objects.id_add_user > 0 or ads_objects.ads_agent > 0) AND objects.archive < 1";
$str_usl_sph .= " AND is_agent_ap = 1 AND archive < 1";
} elseif ($_GET['ok'] == 'kv') {
$str_usl_bd .= " AND objects.id_kv > 0 AND objects.archive = 0";
$str_usl_sph .= " AND id_kv > 0 AND archive = 0";
} elseif ($_GET['ok'] == 'arch') {
$str_usl_bd .= " AND objects.archive = 1 AND objects.id_add_user = 0";
$str_usl_sph .= " AND archive = 1 AND id_add_user = 0";
} elseif ($_GET['ok'] == 'archComp') {
$str_usl_bd .= " AND objects.archive = 1";
$str_usl_sph .= " AND archive = 1";
} elseif ($_GET['ok'] == 'all' && !$_GET['favor']) {
$str_usl_bd .= " AND objects.archive = 0";
$str_usl_sph .= " AND archive = 0";
} elseif ($_GET['favor'] && $_GET['favor'] == '1') {
$str_usl_bd .= " ";
$str_usl_sph .= " ";
} else {
$str_usl_bd .= " AND objects.archive = 0 ";
$str_usl_sph .= " AND archive = 0 ";
}
}
} else {
if ($_GET['operation_type'] == 1) {
$str_usl_bd .= " AND objects.operation_type = 1";
$str_usl_sph .= " AND operation_type = 1";
if (!$get['object_id']) {
if ($_GET['ok'] == "fr") {
$str_usl_bd .= " AND objects.archive = 0 AND ads_objects.ads_agent < 1";
$str_usl_sph .= " AND archive = 0 AND is_agent = 0";
} elseif ($_GET['ok'] == "ap") {
$str_usl_bd .= " AND objects.archive = 0 AND (fbn_id is not null or objects.id_add_user > 0 or ads_objects.ads_agent > 0)";
$str_usl_sph .= " AND archive = 0 AND is_agent_fbn = 1";
} elseif ($_GET['ok'] == 'arch') {
$str_usl_bd .= " AND objects.archive = 1 AND objects.id_add_user = 0";
$str_usl_sph .= " AND archive = 1 AND id_add_user = 0";
} elseif ($_GET['ok'] == 'archComp') {
$str_usl_bd .= " AND objects.archive = 1";
$str_usl_sph .= " AND archive = 1";
} elseif ($_GET['ok'] == 'all') {
$str_usl_bd .= " AND objects.archive = 0 AND (fbn_id is not null or objects.id_add_user > 0 or ads_objects.id > 0)";
$str_usl_sph .= " AND archive = 0 AND is_agent_all = 1";
}
}
}
}
}
// Фильтрация по доп. полям
if (isset($fields_filter['sql'])) {
$obj_ids = [];
foreach ($fields_filter['sql'] as $sql) {
$sql = "SELECT `object_id` FROM `object_data` WHERE $sql";
$query = mysql_query($sql);
$result = [];
while ($row = mysql_fetch_row($query)) {
$result[] = $row[0];
}
if (!empty($obj_ids))
$obj_ids = array_intersect($obj_ids, $result);
else
$obj_ids = $result;
}
$obj_ids = array_unique($obj_ids);
if (count($obj_ids))
$str_usl_sph .= ' AND id IN (' . implode(',', $obj_ids) . ') ';
else
$str_usl_sph .= ' AND id < 0 '; // искусственно ограничиваем выборку, поскольку нет совпадений с кастомными полями
}
if ($_GET['dev'])
var_export($fields_filter);
$arrActivities = [];
$sql_adv = "SELECT * FROM `activities` WHERE `user_id` = '".$user->id."' OR `manager_id` = '".$user->id."'";
if ($user->id_manager)
$sql_adv .= " OR `manager_id` = '".$user->id_manager."' OR `user_id` = '".$user->id_manager."'";
if ($user->agencyId)
$sql_adv .= " OR `manager_id` = '".$user->agencyId."' OR `user_id` = '".$user->agencyId."'";
$sql_adv .= ' ORDER BY `name`';
$q_adv = mysql_query($sql_adv);
$rows_adv = mysql_num_rows($q_adv);
if ($rows_adv > 0) {
while ($r_adv = mysql_fetch_assoc($q_adv)) {
$arrActivities[$r_adv['id']] = $r_adv;
}
}
$kol_on_page = 20;
$amountExport = 1500;
$komnSphExp = '';
$komnSphExpWhere = '';
//фильтруем по комнатам - в части SELECT пишем условие через OR и в WHERE добавляем фильтр по результату этого условия
if ($get['rn1'] || $get['rn2'] || $get['rn3'] || $get['rn4'] || $get['rnStudio']) {
$komn_sph = array();
if ($get['rn1']) {
$komn_sph[] = "komnat = 1";
}
if ($get['rn2']) {
$komn_sph[] = "komnat = 2";
}
if ($get['rn3']) {
$komn_sph[] = "komnat = 3";
}
if ($get['rn4']) {
$komn_sph[] = "komnat >= 4";
}
if ($get['rnStudio']) {
$komn_sph[] = "studio_flag = '1'";
}
$komnSphExp = ", (" . implode(' OR ', $komn_sph) . ") AS komnCond";
$komnSphExpWhere = ' AND komnCond > 0 ';
}
if (isset($get['ads_source'])) {
$str_usl_sph .= " AND ads_source IN (" . implode(',', $get['ads_source']) . ")";
}
$sql_count = "SELECT COUNT(DISTINCT objects.id) as total
$sql_advert_status_with_objects
FROM objects objects
$countJoin
WHERE objects.black = 0
AND objects.moder = 0
$advert_status_condition
AND $str_usl_bd";
$sql_count_sph = "SELECT count(*) as total $komnSphExp
$sql_advert_status_check
FROM objects, objects_delta
WHERE black = 0
AND moder = 0
$advert_status_condition
$komnSphExpWhere
AND $str_usl_sph
OPTION max_matches=10000000 ";
if (isset($_GET['dev'])) {
echo $sql_count_sph;
echo '
';
}
//echo '
'.$sql_count_sph.'
';
//$res = mysql_fetch_assoc(mysql_query($sql_count));
$res = $db->fetch_assoc($db->query($sql_count_sph));
$vsego = $res['total'];
if ($_SESSION['id'] == 93) {
echo (microtime(true) - $start) . " сек. первый подсчет";
}
$sql_count = "SELECT COUNT(DISTINCT objects.id) as total
$sql_advert_status_with_objects
FROM objects objects
$countJoin
WHERE objects.black = 0
$advert_status_condition
AND objects.moder = 0
AND $str_usl_bd
AND (fbn_id !='' or objects.id_add_user > 0 or ads_objects.ads_agent > 0)";
$sql_count_sph = "SELECT count(*) as total $komnSphExp
$sql_advert_status_check
FROM objects, objects_delta
WHERE black = 0
AND moder = 0
$advert_status_condition
$komnSphExpWhere
AND $str_usl_sph
AND is_agent_fbn = 1
OPTION max_matches=10000000 ";
/* if(isset($_GET['dev']) || $_SESSION['id'] == 5238) {
echo $sql_count_sph;
echo '
';
}*/
//$res = mysql_fetch_assoc(mysql_query($sql_count));
$res = $db->fetch_assoc($db->query($sql_count_sph));
$vsego_a = $res['total'];
if ($_SESSION['id'] == 93) {
echo (microtime(true) - $start) . " сек. второй подсчет";
}
$sql_count = "SELECT COUNT(DISTINCT objects.id) as total
$sql_advert_status_with_objects
FROM objects objects
$countJoin
WHERE objects.black = 0
$advert_status_condition
AND objects.moder = 0
AND $str_usl_bd
AND objects.id_add_user = 0
AND (ads_objects.ads_agent < 1 or ads_objects.ads_agent is null)
AND objects.fbn_id is null";
$sql_count_sph = "SELECT count(*) as total $komnSphExp
$sql_advert_status_check
FROM objects, objects_delta
WHERE black = 0
AND moder = 0
$advert_status_condition
$komnSphExpWhere
AND $str_usl_sph
AND id_add_user = 0
AND ads_agent < 1
AND fbn_id = 0
OPTION max_matches=10000000";
/* if(isset($_GET['dev']) || $_SESSION['id'] == 5238) {
echo $sql_count_sph;
echo '
';
}*/
//$res = mysql_fetch_assoc(mysql_query($sql_count));
$res = $db->fetch_assoc($db->query($sql_count_sph));
$vsego_s = $res['total'];
if ($_SESSION['id'] == 93) {
echo (microtime(true) - $start) . " сек. третий подсчет";
}
$str_kol_find = '
';
if ($_GET['ok'] == "arch") {
$str_kol_find .= "Архив ";
}
if ($vsego_s and $vsego_a) {
$str_kol_find .= "Всего найдено: $vsego.";
}
if ($vsego_s) {
$str_kol_find .= " Собственников: $vsego_s.";
}
if ($vsego_a) {
$str_kol_find .= " Агентов: более $vsego_a";
}
$str_kol_find .= "
";
$all_pages = ceil($vsego / $kol_on_page);
if ($_GET['page']) $page = $_GET['page'];
else $page = 1;
if ($page > 1) {
$str_usl_sph = $_SESSION['str_usl_sph'];
} else {
$_SESSION['str_usl_sph'] = $str_usl_sph;
}
$ot = ($page - 1) * $kol_on_page;
$ot = ($page - 1) * $kol_on_page;
$sqlIds = "SELECT objects.id as objId
$sql_advert_status_with_objects
FROM objects objects
$countJoin
WHERE objects.black = 0
$advert_status_condition
AND objects.moder = 0
AND $str_usl_bd
GROUP BY objects.id
$order
LIMIT $ot, $kol_on_page";
$sqlIdsSph = "SELECT * $komnSphExp
$sql_advert_status_check
FROM objects, objects_delta
WHERE black = 0
$advert_status_condition
AND moder = 0
$komnSphExpWhere
AND $str_usl_sph
$order
LIMIT $ot, $kol_on_page
OPTION max_matches=1000000
";
$sqlIdsToExcel = "SELECT * $komnSphExp
$sql_advert_status_check
FROM objects, objects_delta
WHERE black = 0
$advert_status_condition
AND moder = 0
$komnSphExpWhere
AND $str_usl_sph
$order
LIMIT $amountExport
OPTION max_matches=1000000
";
$objToExcel = $db->query($sqlIdsToExcel);
$objectIdsToExcel = [];
while ($objForGetId = $db->fetch_assoc($objToExcel)) {
$objectIdsToExcel[] = $objForGetId['id'];
}
if (isset($_GET['dev'])) {
echo $sqlIdsSph;
echo '
';
}
/*$rez = $db->query($sqlIdsSph);
$ids = array();
while($obj = $db->fetch_assoc($rez)) {
$ids[] = $obj['objId'];
}*/
/* $sql="SELECT objects.*,ads_objects.ads_id,ads_objects.ads_source,ads_objects.ads_agent,ads_objects.ads_url, rayon.rayon, DATE_FORMAT(objects.date_add,'%d.%m.%Y %H:%i') as date_add, lu.name as land_usage_name
FROM objects objects
$join
WHERE objects.id in (" . implode(", ", $ids) .")";
// echo $sql;
if ($_GET['order'] == "cena") {
$sql .= " ORDER BY objects.stoim";
} else {
$sql .= " order by objects.date_add desc";
}
if($_GET['dev']) {
echo $sql;
}
if($_GET['dev'] || $_SESSION['id'] == 5238) {
echo $sql;
echo '
';
}*/
$rez = $db->query($sqlIdsSph);
if ($_SESSION['id'] == 93) {
echo (microtime(true) - $start) . " сек. поиск";
}
if ($db->num_rows($rez)) {
echo '
';
if (isset($_SESSION['notes_bd_usl'])) {
$notes_bd_usl = $_SESSION['notes_bd_usl'];
} else {
$agencyId = User::getAgencyIdForUser($_SESSION['id']);
$usersIds = User::getAllAgencyUsers($agencyId);
$usersIds[] = $_SESSION['id'];
$usersIds = array_unique($usersIds);
$notes_bd_usl = "created_by IN (" . implode(",", $usersIds) . ")";
$_SESSION['notes_bd_usl'] = $notes_bd_usl;
}
if ($_SESSION['id'] == 93) {
echo (microtime(true) - $start) . " сек. перед циклом";
}
while ($obj = $db->fetch_assoc($rez)) {
$startTime = microtime(true);
$sqlPhotoInfo = "SELECT oop.sort_order, p.photo FROM objects_object_photo oop, object_photo p WHERE p.id = oop.object_photo_id AND oop.object_id = $obj[id] ORDER BY oop.sort_order";
$rezPhotoInfo = mysql_query($sqlPhotoInfo);
if (mysql_num_rows($rezPhotoInfo) > 0) {
while ($photoInfo = mysql_fetch_assoc($rezPhotoInfo)) {
$obj['photo' . $photoInfo['sort_order']] = $photoInfo['photo'];
}
}
if ($get['compObj'] == '1') {
$showAdvState = true;
$isCompanyObjects = true;
// commission_agent и commission_counter_agent не хранятся как атрибуты Sphinx,
// поэтому дозапрашиваем их из MySQL для корректного отображения тултипа
$sqlObjComm = "SELECT commission_agent, commission_counter_agent, commission_counter_agent_type FROM objects WHERE id = {$obj['id']}";
if ($rezObjComm = mysql_query($sqlObjComm)) {
if ($rowObjComm = mysql_fetch_assoc($rezObjComm)) {
$obj['commission_agent'] = $rowObjComm['commission_agent'];
$obj['commission_counter_agent'] = $rowObjComm['commission_counter_agent'];
$obj['commission_counter_agent_type'] = $rowObjComm['commission_counter_agent_type'];
}
}
}
$hasSearchLayout = true;
$use_advert_budget = ($_SESSION['use_advert_budget']);
$sqlPrices = "SELECT * FROM `object_prices`
WHERE `object_id`= {$obj['id']}";
if ($queryPrices = mysql_query($sqlPrices)) {
if (mysql_num_rows($queryPrices) > 0) {
$objPricese = mysql_fetch_assoc($queryPrices);
$obj['currency'] = $objPricese['currency'];
}
}
$sqlAddInfo = "SELECT object_id, activity_id FROM objects_activities WHERE object_id = $obj[id]";
$rezAddInfo = mysql_query($sqlAddInfo);
if (mysql_num_rows($rezAddInfo) > 0) {
while ($objActivity = mysql_fetch_assoc($rezAddInfo)) {
$obj['activities'][] = $objActivity['activity_id'];
}
}
$obj['commission_agency'] = 0;
$obj['commission_agency_type'] = null;
$sqlAddInfo = "SELECT oai.building_area, oai.commission_agency, oai.commission_agency_type
FROM objects_additional_information oai
WHERE object_id = $obj[id]";
$rezAddInfo = mysql_query($sqlAddInfo);
if (mysql_num_rows($rezAddInfo) > 0) {
while ($objAddInfo = mysql_fetch_assoc($rezAddInfo)) {
$obj['building_area'] = $objAddInfo['building_area'];
$obj['commission_agency'] = $objAddInfo['commission_agency'];
$obj['commission_agency_type'] = $objAddInfo['commission_agency_type'];
}
}
include($_SERVER['DOCUMENT_ROOT'] . "/templates/system__object_new.php");
$endTime = microtime(true);
}
if ($_SESSION['id'] == 93) {
echo (microtime(true) - $start) . " сек. после цикла";
}
echo '
' . $str_kol_find . '';
} else {
?>
К сожалению, по вашему запросу объявлений не найдено