Joywork/ajax/analytics/getAnalyticsBaloon.php

456 lines
30 KiB
PHP
Raw Normal View History

2026-05-22 20:21:54 +02:00
<?php
header('Content-Type: application/json; charset=utf-8');
require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
$get=clearInputData($_GET);
ini_set('display_errors', 0);
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE);
if (isset($get['id']) && is_numeric($get['id'])) {
$db = new MysqlPdo(hstsph, null, null, null, true, '9306');
$view = array();
$favour = array();
$objectIdForLowPrice = $get['selObjId'];
$forCabinet = isset($get['cabinet']) && $get['cabinet'] == 1;
//если у нас форма для кабинета, то тащим все, что было выбрано раньше для отметка как выбранного
if ($forCabinet) {
$cabinetObjCompetitors[] = ObjectCabinet::getCabinetObjCompetitorsAsObjectIds($mdb, $objectIdForLowPrice);
}
$sql = "SELECT * FROM views WHERE id_user = $_SESSION[id]";
$rez = mysql_query($sql);
while($f=mysql_fetch_assoc($rez)) $view[] = $f['id_obj'];
$sql = "SELECT * FROM favor WHERE id_user = $_SESSION[id]";
$rez = mysql_query($sql);
while($f=mysql_fetch_assoc($rez)) $favour[] = $f['id_obj'];
$sql = "SELECT * FROM objects, objects_delta WHERE id = $get[id] OPTION max_matches=1000000";
$rezSearch = $db->query($sql);
while ($obj = $db->fetch_assoc($rezSearch)) {
$user = new User;
$user->get($_SESSION['id']);
if (!isset($user->agencyId)) {
$user->agencyId = $_SESSION['id'];
$user->agencyName = $user->agency_name;
$user->fio = trim($user->last_name . ' ' . $user->first_name . ' ' . $user->middle_name);
}
$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'];
}
}
$agencyId = User::getAgencyIdForUser($_SESSION['id']);
$usersIds = User::getAllAgencyUsers($agencyId);
$usersIds[] = $_SESSION['id'];
$usersIds = array_unique($usersIds);
$notes_bd_usl = "created_by IN (" . implode(",", $usersIds) . ")";
$sql_count_notes = "SELECT COUNT(*) FROM object_notes WHERE object_id = $obj[id] AND $notes_bd_usl";
if ($_SESSION['id'] == 10246) {
echo '<div style="display: none;">' . $sql_count_notes . '</div>';
}
$obj['notes'] = mysql_result(mysql_query($sql_count_notes), 0);
//Доп обработка
if(!$obj['etazh']) {
$obj['etazh'] = Filter::getFloorFromName($obj['nazv'],true);
} else {
Filter::getFloorFromName($obj['nazv'],true);
}
if(!$obj['etazh_iz']) {
$obj['etazh_iz']=Filter::getMaxFloorFromName($obj['nazv'],true);
} else {
Filter::getMaxFloorFromName($obj['nazv'],true);
}
Filter::getSpaceFromName($obj['nazv'],true);
$obj['nazv']=Filter::name($obj['nazv']);
$obj['sobstv'] = Filter::replaceSobstv($obj['sobstv']);
$obj['opis'] = str_replace("<br>","\n",$obj['opis']);
if ($obj['stoim_prim'] == 0) {
$obj['stoim_prim'] = '';
}
if (isset($_SESSION['notes_bd_usl']))
$notes_bd_usl = $_SESSION['notes_bd_usl'];
if (empty($notes_bd_usl))
$notes_bd_usl = ' true';
$sql_count_notes = "SELECT COUNT(*) FROM object_notes WHERE object_id = $obj[id] AND $notes_bd_usl";
$obj['notes'] = mysql_result(mysql_query($sql_count_notes),0);
$photo = "";
for($num=1;$num<=20;$num++) {
if($obj['photo'.$num]) {
$photo = $obj['photo'.$num];
break;
}
}
?>
<li class="object-card <?php if($view) if(in_array($obj['id'],$view)) echo " viewed";?>" id="item_map<?php echo $obj['id'];?>">
<div class="swiper js-object-swiper">
<div class="swiper-wrapper">
<?php
if(empty($photo)) {
?>
<div class="no-image">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" width="130px" height="130px" viewBox="0 0 217.267 217.267" style="enable-background:new 0 0 217.267 217.267;" xml:space="preserve">
<g>
<path d="M163.627,138.057c1.94,0,3.505-1.564,3.505-3.505V83.749c0-1.937-1.564-3.504-3.505-3.504 c-1.937,0-3.504,1.567-3.504,3.504v50.803C160.123,136.493,161.69,138.057,163.627,138.057z" fill="#506979"/>
<path d="M108.633,0C48.73,0,0,48.732,0,108.633c0,29.931,12.167,57.071,31.816,76.738c0.014,0.014,0.017,0.034,0.031,0.048 s0.032,0.018,0.046,0.031c19.666,19.646,46.807,31.815,76.74,31.815c59.901,0,108.634-48.731,108.634-108.633S168.531,0,108.633,0 z M108.633,7.009c26.758,0,51.12,10.416,69.285,27.379l-26.936,26.938H52.564c-9.661,0-17.521,7.861-17.521,17.521v59.573 c0,9.661,7.861,17.521,17.521,17.521h3.805l-21.979,21.978C17.42,159.753,7.009,135.394,7.009,108.633 C7.009,52.599,52.595,7.009,108.633,7.009z M86.196,108.63c0-12.363,10.056-22.42,22.417-22.42c4.921,0,9.466,1.615,13.172,4.313 l-1.875,1.875c-3.207-2.24-7.094-3.564-11.297-3.564c-10.913,0-19.789,8.879-19.789,19.792c0,4.195,1.321,8.09,3.559,11.3 l-1.874,1.868C87.811,118.095,86.196,113.554,86.196,108.63z M131.034,108.63c0,12.364-10.054,22.418-22.418,22.418 c-4.915,0-9.449-1.608-13.145-4.298l1.874-1.876c3.203,2.231,7.082,3.546,11.274,3.546c10.91,0,19.794-8.877,19.794-19.791 c0-4.187-1.321-8.071-3.549-11.272l1.875-1.875C129.433,99.181,131.034,103.717,131.034,108.63z M95.833,108.63 c0-7.051,5.735-12.784,12.78-12.784c2.257,0,4.347,0.639,6.184,1.668l-17.304,17.306C96.469,112.972,95.833,110.885,95.833,108.63 z M121.397,108.63c0,7.049-5.735,12.782-12.781,12.782c-2.244,0-4.322-0.633-6.158-1.652l17.29-17.289 C120.769,104.31,121.397,106.383,121.397,108.63z M90.467,131.753c5.005,3.936,11.298,6.311,18.146,6.311 c16.229,0,29.431-13.206,29.431-29.431c0-6.848-2.375-13.141-6.311-18.149l22.148-22.146h10.814 c5.797,0,10.513,4.717,10.513,10.513v59.573c0,5.797-4.716,10.513-10.513,10.513H73.289L90.467,131.753z M126.784,85.523 c-5.007-3.948-11.311-6.326-18.168-6.326c-16.23,0-29.426,13.204-29.426,29.429c0,6.858,2.375,13.158,6.321,18.172l-22.136,22.135 H52.561c-5.797,0-10.513-4.716-10.513-10.514V78.847c0-5.795,4.716-10.513,10.513-10.513h91.413L126.784,85.523z M108.633,210.257 c-26.759,0-51.12-10.417-69.287-27.377l26.934-26.939h98.422c9.66,0,17.521-7.86,17.521-17.521V78.847 c0-9.661-7.861-17.521-17.521-17.521h-3.806l21.977-21.979c16.968,18.17,27.381,42.529,27.381,69.287 C210.258,164.667,164.667,210.257,108.633,210.257z" fill="#506979"/>
<path d="M53.002,54.317h23.654c1.937,0,3.504-1.567,3.504-3.504s-1.567-3.504-3.504-3.504H53.002 c-1.938,0-3.504,1.567-3.504,3.504S51.064,54.317,53.002,54.317z" fill="#506979"/>
</g>
</svg>
</div>
<?php
} else {
for ($num = 1; $num <= 40; $num++) {
if ($obj['photo' . $num]) {
if (stripos($obj['photo' . $num], "http") === false && stripos($obj['photo' . $num], "https://") === false) {
$obj['photo' . $num] = "/photos/" . $obj['photo' . $num];
}
echo '<div class="swiper-slide"><a href="' . $obj['photo' . $num] . '" target="_blank"><img src="' . $obj['photo' . $num] . '" alt="фото объекта" width="292" height="340"></a></div>';
}
}
}
?>
</div>
<div class="swiper-button-prev custom-slider-button-prev"></div>
<div class="swiper-button-next custom-slider-button-next"></div>
</div>
<div class="object__content">
<div class="object-card__section object-card__header"><span class="object-card__text"><?php
$date_add_temp = explode(" ", date("d.m.Y H:i",strtotime($obj['date_add'])));
if(isset($obj['date'])) {
$date_add_temp = explode(" ", date("d.m.Y H:i",strtotime($obj['date'])));
}
list($dateAdd, $timeAdd) = $date_add_temp;
list($d, $m, $y) = explode(".", $dateAdd);
$date_add = $d." ".getRusMonth($m)." ".$y;
$date = $date_add."&nbsp;&nbsp;".$timeAdd;
echo $date;
?></span><span class="object-card__text"><?php
if ($obj['operation_type'] == 0) {
echo "Сдается" . $SROK_ARENDY["$obj[srok]"];
if ($obj['prim_srok']) echo "&nbsp;(".$obj['prim_srok'].")";
} else {
if ($obj['operation_type'] == 1) {
echo "Продается";
}
}
?> </span><span class="object-card__text">ID <?php echo $obj['id'];?></span><a style="text-decoration: none !important;border-bottom: none;position: absolute;right: 10px;" href="javascript:{}" onclick="deleteFromAnalyticsView(<?=$obj['id']?>)" title="Исключить объект из сравнения"><i class="ti-trash" style="font-size: 20px;"></i></a></div>
<div class="object-card__section object-card__title" style="min-height: 55px;width: 100%;padding-right: 0;z-index: 89;">
<table style="width: 100%;">
<tr>
<td style="width: 80%;">
<a class="object-card__link" href="javascript:{}" onclick="openObjectModal(<?=$obj['id']?>)" title="<?php echo $obj['nazv']; ?>"><?php echo $obj['nazv']; ?></a>
</td>
<td style="width: 60px;">
<a href="javascript:{}" class="object-card__btn <?php if($view) if(in_array($obj['id'],$view)) echo " activated"; ?>" id="view-eye-map<? echo $obj['id']; ?>" onClick="to_viewed_analytics(<? echo $obj['id']; ?>); this.blur();" aria-label="Подробно">
<svg width="28" height="28">
<use xlink:href="#icon-eye"></use>
</svg>
</a>
</td>
<td style="width: 60px;">
<a href="javascript:{}" class="object-card__btn <?php if($favour) if(in_array($obj['id'],$favour)) echo " activated__fav"; ?>" id="favor-analyt-map<? echo $obj['id']; ?>" onClick="to_favour_analytics(<? echo $obj['id']; ?>); this.blur();" aria-label="Избранное">
<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd"><path d="M12 21.593c-5.63-5.539-11-10.297-11-14.402 0-3.791 3.068-5.191 5.281-5.191 1.312 0 4.151.501 5.719 4.457 1.59-3.968 4.464-4.447 5.726-4.447 2.54 0 5.274 1.621 5.274 5.181 0 4.069-5.136 8.625-11 14.402m5.726-20.583c-2.203 0-4.446 1.042-5.726 3.238-1.285-2.206-3.522-3.248-5.719-3.248-3.183 0-6.281 2.187-6.281 6.191 0 4.661 5.571 9.429 12 15.809 6.43-6.38 12-11.148 12-15.809 0-4.011-3.095-6.181-6.274-6.181"/></svg>
</a>
</td>
</tr>
</table>
</div>
<div class="object-card__section object-card__chars">
<div class="object-card__chars-left">
<span class="object-card__text">
<?php
$mtr = array();
$sql = "SELECT metro.metro FROM metro, sp_metro WHERE sp_metro.id_metro = metro.id AND sp_metro.id_obj = $obj[id]";
$result = mysql_query($sql);
while($m = mysql_fetch_row($result)) {
$mtr[] = $m[0];
}
if (count($mtr) > 0) {
?>
<span class="subway-logo"></span>
<span><?php echo $mtr[0]; ?></span><?php if (count($mtr) > 1) {
echo ",";
$k = 0;
foreach ($mtr as $metro_res) {
if ($k == 0) {
$k++;
} else {
$k++;
if ($k > 2) {
echo ",";
}
?>&nbsp;<span><?php echo $metro_res ?></span><?php
}
}
?>
<?php
}
}
?>
</span>
<?php
if ($obj['rayon']) {
echo '<span class="object-card__text">' . str_replace([' район', 'район', ' р-н', 'р-н'], '', $obj['rayon']) . ' район</span>';
}
if($obj['peshkom'] || $obj['transport']) {
if($obj['peshkom']) {
echo '<span class="object-card__text">' . $obj['peshkom']." минут пешком" . '</span>';
}
if($obj['transport']) {
echo '<span class="object-card__text">' . $obj['transport']." минут на транспорте" . '</span>';
}
}
$objCoordinates = null;
$sql_coordinates = "SELECT address FROM object_location WHERE object_id=".$obj['id'];
$rezCoordinates = mysql_query($sql_coordinates);
if (mysql_num_rows($rezCoordinates) > 0) {
$objCoordinates = mysql_fetch_assoc($rezCoordinates);
}
if ($objCoordinates && isset($objCoordinates['address'])) {
?>
<span class="object-card__text object-card__text--black address"><?php echo $objCoordinates['address']; ?></span>
<?php
} else{
?>
<span class="object-card__text object-card__text--black address"><?php echo $obj['adres']; if ($obj['dom']) {echo ", " . $obj['dom'];} if ($obj['korpus']) {echo ", корпус " . $obj['korpus'];} if ($obj['litera']) {echo ", литера " . $obj['litera'];} ?></span>
<?php }
if ($obj['ads_url']) {
?>
<span class="object-card__text" style="padding-right: 5px;">Ссылка на источник:
<span class="object-card__text"><a style="text-decoration: none !important;" target="_blank" href="<?php echo $obj['ads_url'] ;?>"><?php
if ($obj['ads_source'] == 3) {
echo "Яндекс";
}
if ($obj['ads_source'] == 1) {
echo "Авито";
}
if ($obj['ads_source'] == 4) {
echo "Циан";
}
if ($obj['ads_source'] == 6) {
echo "Юла";
}
if ($obj['ads_source'] == 2) {
echo "Из рук в руки";
}
if ($obj['ads_source'] == 5) {
echo "SOB.RU";
}
if ($obj['ads_source'] == 7) {
echo "N1.RU";
}
if ($obj['ads_source'] == 10) {
echo "Моя реклама";
}
?></a></span></span>
<?php
}
?>
</div>
<div class="object-card__chars-right">
<?php
if ($obj['type'] == 7) {
if ($obj['land_area'] * 1 != 0) {
echo '<span class="object-card__text"> Площадь: <span>' . $obj['land_area'] * 1 . '</span> cоток</span>';
}
if ($obj['land_usage_name']) {
echo '<span class="object-card__text object-card__text--black"> Назначение: <span>' . $obj['land_usage_name'] . '</span></span>';
}
} else {
if ($obj['type'] == 3 || $obj['type'] == 5) {
if ($obj['ploshad'] * 1 != 0) {
echo '<span class="object-card__text"> Площадь: <span>' . $obj['ploshad'] * 1 . '</span> кв. м</span>';
}
if ($obj['land_area']) {
echo '<span class="object-card__text object-card__text--black"> Площадь участка: <span>' . $obj['land_area'] * 1 . '</span> cоток</span>';
}
if ($obj['house_category']) {
echo '<span class="object-card__text">Вид объекта: <span>';
if ($obj['house_category'] == 1) {
echo 'Дача';
}
if ($obj['house_category'] == 2) {
echo 'Коттедж';
}
if ($obj['house_category'] == 3) {
echo 'Таунхаус';
}
if ($obj['house_category'] == 4) {
echo 'Дом';
}
echo '</span></span>';
}
} else {
if ($obj['ploshad'] * 1 != 0) {
echo '<span class="object-card__text"> Площадь: <span>' . $obj['ploshad'] * 1 . '</span> кв. м</span>';
}
if ($obj['ploshad_komn']) {
echo '<span class="object-card__text object-card__text--black">Жилая: <span>' . $obj['ploshad_komn'] . '</span> кв. м</span>';
}
if ($obj['ploshad_k'] * 1 != 0) {
echo '<span class="object-card__text">Кухни: <span>' . $obj['ploshad_k'] * 1 . '</span> кв. м</span>';
}
if ($obj['land_usage_name']) {
echo '<span class="object-card__text object-card__text--black"> Назначение: <span>' . $obj['land_usage_name'] . '</span></span>';
}
if ($obj['type_category'] == 6) {
echo '<span class="object-card__text">Всего этажей: <span>';
if ($obj['etazh_iz'] * 1 != 0) {
echo "&nbsp;" . $obj['etazh_iz'];
}
echo '</span></span>';
} else {
if ($obj['etazh'] * 1 != 0) {
if ($obj['type'] == 3) {
echo '<span class="object-card__text">';
if ($obj['etazh_iz'] * 1 != 0) {
echo $obj['etazh_iz'] . " этажей";
}
echo '</span>';
} else {
$etaz = $obj['etazh'] . ' этаж';
if ((int)$obj['etazh'] == 1 && !empty($obj['etaz_first_type'])) {
$etaz = $etaz_first_types[$obj['etaz_first_type']];
}
echo '<span class="object-card__text">' . $etaz;
if ($obj['etazh_iz'] * 1 != 0) {
echo "&nbsp;из&nbsp;" . $obj['etazh_iz'];
}
echo '</span>';
}
}
}
}
}
?>
</div>
</div>
<div class="object-card__section object-card__action"><div class="jw__action-button">
<input type="checkbox" class="form-control to_send_input" id="to_send<?php echo $obj['id']; ?>">
<div class="action-button sendPDF to_send <?php if(@in_array($obj['id'],$_SESSION['to_send'])) echo "active"; ?>" id="to_send_button<?php echo $obj['id']; ?>" data-id="<?php echo $obj['id']; ?>">
<span class="get_pdf" title="К отправке">pdf</span>
</div>
</div><?php
if($user->agencyId != 5530 || $_SESSION['id'] == 5530) {
if(!empty($user->vk_token) && (stripos($_SERVER['SCRIPT_NAME'],"getObjectsView.php") !== false || $obj['id_add_user'] == 0)) { ?><a class="object-card__action-link object-card__action-link--blue addVkPost" data-id="<?php echo $obj['id']; ?>" aria-label="Перейти во вконтакте">
<svg width="24" height="24">
<use xlink:href="#icon-vk"></use>
</svg></a><?php } } if (!empty($photo) && ($user->agencyId != 5530 || $_SESSION['id'] == 5530)) { ?><a class="object-card__action-link download-photo" data-id="<?= $obj['id']; ?>" href="javascript:{};" aria-label="Скачать">
<svg width="16" height="16">
<use xlink:href="#icon-download"></use>
</svg></a><?php } ?><?php if ($obj['archive'] || $obj['ads_url'] || ((stripos($_SERVER['SCRIPT_NAME'], "getObjectsView.php") !== false || stripos($_SERVER['SCRIPT_NAME'], "ajax_vue_autosearch.php") !== false) && $obj['id_add_user'] > 0)) {?><a class="object-card__action-link add-event" href="javascript:{};" data-id="<?php echo $obj['id']; ?>">Задачи</a><?php } ?><div class="jw__action-button">
<div class="action-button actionJW fltr-req-list"
title="Заявки типа «Подбор объекта»"
data-id="<?php echo $obj['id']; ?>">
Автопоиск
</div>
</div><a class="object-card__action-link addEditNote <?= (($obj['notes']) ? ' haveNotes' : ''); ?>" href="javascript:{};" data-id="<?php echo $obj['id']; ?>">
<svg width="16" height="16">
<use xlink:href="#icon-note" aria-label="Добавить заметку"></use>
</svg></a>
<?php if (isset($forCabinet) && $forCabinet) {?>
<div class="checkbox small competitors-check">
<input name="use_in_advert" id="addToSelectedCabinetMap__<?= $obj['id']; ?>" onchange="cabinetCompetitorSwitch(this);" type="checkbox" value="1" data-id="<?= $obj['id']; ?>" <?= in_array($obj['id'], $_SESSION['cabinetCompetitor'][$objectIdForLowPrice]) ? " checked" : ""; ?>>
<label for="addToSelectedCabinetMap__<?= $obj['id']; ?>">В конкуренты</label>
</div>
<?php } ?>
</div>
<div class="object-card__section object-card__footer">
<div class="object-card__footer-price <?php if (isset($objectIdForLowPrice) && isset($_SESSION['analytics']) && isset($_SESSION['analytics'][$objectIdForLowPrice]) &&
isset($_SESSION['analytics'][$objectIdForLowPrice]['low']) && in_array($obj['id'], $_SESSION['analytics'][$objectIdForLowPrice]['low'])) {echo "color-red";}?>"><table cellpadding="0" cellspacing="0"><tr><td><span class="nowrap" style="font-size: 23px;"><?php echo number_format($obj['stoim'], 0, ',', ' ');?> р.</span>
<?php if (isset($objectIdForLowPrice) && isset($_SESSION['analytics']) && isset($_SESSION['analytics'][$objectIdForLowPrice]) &&
isset($_SESSION['analytics'][$objectIdForLowPrice]['low']) && in_array($obj['id'], $_SESSION['analytics'][$objectIdForLowPrice]['low'])) {?>
<svg width="14" height="14">
<use xlink:href="#icon-price-down"></use>
</svg>
<?php } ?>
</td></tr>
<?php
if ($obj['type'] == 7) {
if ($obj['land_area'] && $obj['stoim']) {
echo '<tr><td style="font-size: 15px;line-height: 15px;">';
echo number_format($obj['stoim'] / $obj['land_area'], 0, ',', ' ');
echo '<span class="rub" style="font-size: 15px;">p</span>(сотку)';
echo '</td></tr>';
}
} else {
if ($obj['ploshad'] && $obj['stoim']) {
echo '<tr><td style="font-size: 15px;line-height: 15px;">';
echo number_format($obj['stoim'] / $obj['ploshad'], 0, ',', ' ');
echo '<span class="rub" style="font-size: 15px;">p</span>(м<sup>2</sup>)';
echo '</td></tr>';
}
}
?>
</table>
</div>
<div class="object-card__footer-contacts">
<div class="object-card__footer-contacts-wrapper">
<button class="btn-underline btn-default inner-modal-opener" type="button" data-modal-name="map-modal" onclick="let that = this; setTimeout(function() {openMap(that);}, 10)" data-id="<?php echo $obj['id']; ?>">На карте</button>
<button class="btn-underline btn-default inner-modal-opener" type="button" data-modal-name="description-modal">Описание</button>
<div class="description-drop">
<div class="description-drop__header">
<button class="drop-close btn-default" type="button">
<svg width="18" height="18">
<use xlink:href="#icon-close"></use>
</svg>
</button>
</div>
<p><?php echo $obj['opis']; ?></p>
</div>
</div><span class="object-card__text object-card__text--light"><?php echo $obj['sobstv'];?></span><a class="object-card__footer-contacts-phone" href="tel:<?php echo $obj['phone'];?>"><?php echo $obj['phone'];?></a>
</div>
</div>
</div>
</li>
<script type="text/javascript" src="/js/analytics/bundle.js?v=<?=filemtime($_SERVER['DOCUMENT_ROOT'].'/js/analytics/bundle.js')?>"></script>
<?php
}
}
?>