Joywork/ajax/getAdObjectStats.php
2026-05-22 21:21:54 +03:00

304 lines
20 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
if($_SESSION['id'] && $_GET['id'] && is_numeric($_GET['id'])) {
//error_reporting(E_ALL | E_STRICT);
//ini_set('display_errors', 1);
$user = new User;
$user->checkPermissions();
$sql3="SELECT objects.* FROM objects objects WHERE objects.id = $_GET[id]";
$rez_obj=mysql_query($sql3);
$obj=mysql_fetch_assoc($rez_obj);
$whereSqlPack = "zipal_id in (select pp.zipal_id from advertising_package_object_publish pp where pp.object_id = $obj[id] and pp.active=1)";
$whereSqlBut = "";
if ($obj['add_to_zipal'] == 1) {
$whereSqlBut = "or zipal_id in (select zo.zipal_id from zipal_objects zo where zo.object_id = $obj[id])";
}
$whereSqlJcat = "or jcat_id in (select zo.jcat_id from jcat_feed_report_objects zo where zo.object_id = $obj[id] and zo.active = 1)";
$sqlStat = "SELECT * from object_feed_stat where object_id = $_GET[id] and deleted = 0 and ($whereSqlPack $whereSqlBut $whereSqlJcat)";
$rezStat = mysql_query($sqlStat);
$sqlSumStat = "SELECT sum(view_count) as sum_view_count from object_feed_stat where object_id = $_GET[id] and deleted = 0 and ($whereSqlPack $whereSqlBut $whereSqlJcat)";
$rezSumStat = mysql_query($sqlSumStat);
$rezSumStatRes = mysql_fetch_assoc($rezSumStat);
echo "<p><b>Общее количество просмотров</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class='ti-eye'></span>&nbsp;" . $rezSumStatRes['sum_view_count'] . "</p>";
while ($stat = mysql_fetch_assoc($rezStat)) {
echo "<p><a href='" . $stat['link'] ."' target='_blank'>" . $stat['feed_name'] ."</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class='ti-eye'></span>&nbsp;" . $stat['view_count'] . "</p>";
}
if (isset($user)) {
$advrStat = [];
$obj_id = $obj['id'];
$period = [
'date_from' => date('Y-m-d', strtotime($obj['date_add'])),
'date_to' => date('Y-m-d'),
];
$api = new AdvertStats();
$agency_id = User::getUserAgencyID();
$available = [];
if ($obj['add_to_avito_feed'] == 1)
$available[1] = 'avito';
if ($obj['add_to_cian_feed'] == 1)
$available[2] = 'cian';
if ($obj['add_to_bn_feed'] == 1)
$available[3] = 'yandex';
if ($obj['add_to_domclick_feed'] == 1)
$available[4] = 'domclick';
$services = [];
$settings = $api->getApiSettings($agency_id, true);
if (count($settings)) {
foreach ($settings as $setting) {
$service_id = $setting['service_id'];
$service = $api->getServiceName($service_id);
$services[] = $service;
}
$reports = $api->getReports(null, $agency_id, $obj_id);
foreach ($reports as $service => $report) {
if (!is_null($report)) {
$advrStat['stats'][$service] = $report;
}
}
/*if (count($available)) {
foreach ($settings as $setting) {
$service_id = $setting['service_id'];
if ($service = $available[$service_id]) {
if ($service == 'yandex' && strtotime($period['date_from']) < strtotime('-120 days')) {
$period['date_from'] = date('Y-m-d', strtotime('-120 days'));
} else if ($service == 'cian' && strtotime($period['date_from']) < strtotime('-180 days')) {
$period['date_from'] = date('Y-m-d', strtotime('-180 days'));
} else if ($service == 'avito' && strtotime($period['date_from']) < strtotime('-270 days')) {
$period['date_from'] = date('Y-m-d', strtotime('-270 days'));
}
if (!isset($advrStat['stats'][$service])) {
$client_id = $setting['client_id'];
$secret_key = $setting['secret_key'];
$ext_user_id = $setting['ext_user_id'];
if ($stats = $api->getStats($service_id, $period, $client_id, $secret_key, $ext_user_id, $obj_id, true))
$advrStat['stats'][$service] = $stats;
else
$advrStat['stats'][$service] = null;
if (count($api->errors))
$advrStat['errors'][$service] = array_merge($advrStat['stats'][$service]['errors'], array_unique($api->errors));
if (count($advrStat['errors'][$service]))
$advrStat['errors'][$service] = array_unique($advrStat['errors'][$service]);
}
}
}
}*/
}
}
/*echo "<!-- advrStat: " . var_export($advrStat, true) . " -->";
echo "<!-- logs: " . var_export($api->logs, true) . " -->";
echo "<!-- errors: " . var_export($api->errors, true) . " -->";*/
$not_av = "Не предоставляется сайтом";
?>
<div class="clear"></div>
<?php if (count($advrStat) > 0) : ?>
<h3 style="font-size:22px;margin:30px 0 5px 0;">
Статистика размещения
<?php /*= (isset($period['date_from']) && isset($period['date_to'])) ? ' <span style="font-size:14px;float:right;">с '.date('d.m.Y', strtotime($period['date_from'])).' по '.date('d.m.Y', strtotime($period['date_to'])).'</span>' : "" */ ?>
</h3>
<div class="jw__NB">
<div class="jw__NB__flat-list">
<table style="width:100%;">
<thead>
<tr>
<th>Площадка</th>
<th style="text-align:center;">Просмотров объявления</th>
<th style="text-align:center;">Просмотров контактов</th>
<th style="text-align:center;">Добавили в избранное</th>
<th style="text-align:center;">Звонков с сайта</th>
</tr>
</thead>
<tbody>
<?php if (in_array('avito', $services)) : ?>
<?php if (!is_null($advrStat['stats']['avito'])) :
$stats = $advrStat['stats']['avito'];
?>
<tr>
<td style="font-weight:bold;min-width:196px;">
<?= (!is_null($stats['url'])) ? '<a href="'.$stats['url'].'" title="'.$stats['url'].'" target="_blank">Авито</a>' : "Авито" ?>
<?= (count($stats['errors']) > 0) ? '<span title="'.implode(' ', $stats['errors']).'" style="color:lightcoral;">&nbsp<i class="ti-alert"></i>&nbsp</span>' : "" ?>
</td>
<td style="text-align:center;"><?= (!is_null($stats['views'])) ? $stats['views'] : '<span style="color:#a1a1a1;"><small>' . $not_av . '</small></span>'; ?></td>
<td style="text-align:center;"><?= (!is_null($stats['contacts'])) ? $stats['contacts'] : '<span style="color:#a1a1a1;"><small>' . $not_av . '</small></span>'; ?></td>
<td style="text-align:center;"><?= (!is_null($stats['favorites'])) ? $stats['favorites'] : '<span style="color:#a1a1a1;"><small>' . $not_av . '</small></span>'; ?></td>
<td style="text-align:center;"><?= (!is_null($stats['calls'])) ? $stats['calls'] : '<span style="color:#a1a1a1;"><small>' . $not_av . '</small></span>'; ?></td>
</tr>
<?php elseif (!is_null($advrStat['avito']['error'])) : ?>
<tr>
<td style="font-weight:bold;min-width:196px;">Авито</td>
<td colspan="4" style="text-align:center;color: lightcoral;"><i class="ti-alert"></i> <?= implode('<br/>', $advrStat['avito']['error']); ?></td>
</tr>
<?php else : ?>
<?php if ($obj['add_to_avito_feed'] == 1) : ?>
<tr>
<td style="font-weight:bold;min-width:196px;">Авито</td>
<td colspan="4" style="text-align:center;">Ожидается получение информации от площадки</td>
</tr>
<?php else : ?>
<tr>
<td style="font-weight:bold;min-width:196px;">Авито</td>
<td colspan="4" style="text-align:center;">Объект не размещается через XML-фид</td>
</tr>
<?php endif; ?>
<?php endif; ?>
<?php else : ?>
<tr>
<td style="font-weight:bold;min-width:196px;">Авито</td>
<td colspan="4" style="text-align:center;color:lightcoral;"><i class="ti-alert"> Не настроен доступ к API. Вы можете сделать это из <a href="/settings.php#advertApi" target="_blank">настроек профиля</a>.</td>
</tr>
<?php endif; ?>
<?php if (in_array('cian', $services)) : ?>
<?php if (!is_null($advrStat['stats']['cian'])) :
$stats = $advrStat['stats']['cian'];
?>
<tr>
<td style="font-weight:bold;min-width:196px;">
<?= (!is_null($stats['url'])) ? '<a href="'.$stats['url'].'" title="'.$stats['url'].'" target="_blank">ЦИАН</a>' : "ЦИАН" ?>
<?= (count($stats['errors']) > 0) ? '<span title="'.implode(' ', $stats['errors']).'" style="color:lightcoral;">&nbsp<i class="ti-alert"></i>&nbsp</span>' : "" ?>
</td>
<td style="text-align:center;"><?= (!is_null($stats['views'])) ? $stats['views'] : '<span style="color:#a1a1a1;"><small>' . $not_av . '</small></span>'; ?></td>
<td style="text-align:center;"><?= (!is_null($stats['contacts'])) ? $stats['contacts'] : '<span style="color:#a1a1a1;"><small>' . $not_av . '</small></span>'; ?></td>
<td style="text-align:center;"><?= (!is_null($stats['favorites'])) ? $stats['favorites'] : '<span style="color:#a1a1a1;"><small>' . $not_av . '</small></span>'; ?></td>
<td style="text-align:center;"><?= (!is_null($stats['calls'])) ? $stats['calls'] : '<span style="color:#a1a1a1;"><small>' . $not_av . '</small></span>'; ?></td>
</tr>
<?php elseif (!is_null($advrStat['cian']['error'])) : ?>
<tr>
<td style="font-weight:bold;min-width:196px;">ЦИАН</td>
<td colspan="4" style="text-align:center;color: lightcoral;"><i class="ti-alert"></i> <?= implode('<br/>', $advrStat['cian']['error']); ?></td>
</tr>
<?php else : ?>
<?php if ($obj['add_to_cian_feed'] == 1) : ?>
<tr>
<td style="font-weight:bold;min-width:196px;">ЦИАН</td>
<td colspan="4" style="text-align:center;">Ожидается получение информации от площадки</td>
</tr>
<?php else : ?>
<tr>
<td style="font-weight:bold;min-width:196px;">ЦИАН</td>
<td colspan="4" style="text-align:center;">Объект не размещается через XML-фид</td>
</tr>
<?php endif; ?>
<?php endif; ?>
<?php else : ?>
<tr>
<td style="font-weight:bold;min-width:196px;">ЦИАН</td>
<td colspan="4" style="text-align:center;color:lightcoral;"><i class="ti-alert"> Не настроен доступ к API. Вы можете сделать это из <a href="/settings.php#advertApi" target="_blank">настроек профиля</a>.</td>
</tr>
<?php endif; ?>
<?php if (in_array('yandex', $services)) : ?>
<?php if (!is_null($advrStat['stats']['yandex'])) :
$stats = $advrStat['stats']['yandex'];
?>
<tr>
<td style="font-weight:bold;min-width:196px;">
<?= (!is_null($stats['url'])) ? '<a href="'.$stats['url'].'" title="'.$stats['url'].'" target="_blank">Я.Недвижимость</a>' : "Яндекс.Недвижимость" ?>
<?= (count($stats['errors']) > 0) ? '<span title="'.implode(' ', $stats['errors']).'" style="color:lightcoral;">&nbsp<i class="ti-alert"></i>&nbsp</span>' : "" ?>
</td>
<td style="text-align:center;"><?= (!is_null($stats['views'])) ? $stats['views'] : '<span style="color:#a1a1a1;"><small>' . $not_av . '</small></span>'; ?></td>
<td style="text-align:center;"><?= (!is_null($stats['contacts'])) ? $stats['contacts'] : '<span style="color:#a1a1a1;"><small>' . $not_av . '</small></span>'; ?></td>
<td style="text-align:center;"><?= (!is_null($stats['favorites'])) ? $stats['favorites'] : '<span style="color:#a1a1a1;"><small>' . $not_av . '</small></span>'; ?></td>
<td style="text-align:center;"><?= (!is_null($stats['calls'])) ? $stats['calls'] : '<span style="color:#a1a1a1;"><small>' . $not_av . '</small></span>'; ?></td>
</tr>
<?php elseif (!is_null($advrStat['yandex']['error'])) : ?>
<tr>
<td style="font-weight:bold;min-width:196px;">Я.Недвижимость</td>
<td colspan="4" style="text-align:center;color: lightcoral;"><i class="ti-alert"></i> <?= implode('<br/>', $advrStat['yandex']['error']); ?></td>
</tr>
<?php else : ?>
<?php if ($obj['add_to_bn_feed'] == 1) : ?>
<tr>
<td style="font-weight:bold;min-width:196px;">Я.Недвижимость</td>
<td colspan="4" style="text-align:center;">Ожидается получение информации от площадки</td>
</tr>
<?php else : ?>
<tr>
<td style="font-weight:bold;min-width:196px;">Я.Недвижимость</td>
<td colspan="4" style="text-align:center;">Объект не размещается через XML-фид</td>
</tr>
<?php endif; ?>
<?php endif; ?>
<?php else : ?>
<tr>
<td style="font-weight:bold;min-width:196px;">Я.Недвижимость</td>
<td colspan="4" style="text-align:center;color:lightcoral;"><i class="ti-alert"> Не настроен доступ к API. Вы можете сделать это из <a href="/settings.php#advertApi" target="_blank">настроек профиля</a>.</td>
</tr>
<?php endif; ?>
<?php if (in_array('domclick', $services)) : ?>
<?php if (!is_null($advrStat['stats']['domclick'])) :
$stats = $advrStat['stats']['domclick'];
?>
<tr>
<td style="font-weight:bold;min-width:196px;">
<?= (!is_null($stats['url'])) ? '<a href="'.$stats['url'].'" title="'.$stats['url'].'" target="_blank">ДомКлик</a>' : "ДомКлик" ?>
<?= (count($stats['errors']) > 0) ? '<span title="'.implode(' ', $stats['errors']).'" style="color:lightcoral;">&nbsp<i class="ti-alert"></i>&nbsp</span>' : "" ?>
</td>
<td style="text-align:center;"><?= (!is_null($stats['views'])) ? $stats['views'] : '<span style="color:#a1a1a1;"><small>' . $not_av . '</small></span>'; ?></td>
<td style="text-align:center;"><?= (!is_null($stats['contacts'])) ? $stats['contacts'] : '<span style="color:#a1a1a1;"><small>' . $not_av . '</small></span>'; ?></td>
<td style="text-align:center;"><?= (!is_null($stats['favorites'])) ? $stats['favorites'] : '<span style="color:#a1a1a1;"><small>' . $not_av . '</small></span>'; ?></td>
<td style="text-align:center;"><?= (!is_null($stats['calls'])) ? $stats['calls'] : '<span style="color:#a1a1a1;"><small>' . $not_av . '</small></span>'; ?></td>
</tr>
<?php elseif (!is_null($advrStat['domclick']['error'])) : ?>
<tr>
<td style="font-weight:bold;min-width:196px;">ДомКлик</td>
<td colspan="4" style="text-align:center;color: lightcoral;"><i class="ti-alert"></i> <?= implode('<br/>', $advrStat['domclick']['error']); ?></td>
</tr>
<?php else : ?>
<?php if ($obj['add_to_domclick_feed'] == 1) : ?>
<tr>
<td style="font-weight:bold;min-width:196px;">ДомКлик</td>
<td colspan="4" style="text-align:center;">Ожидается получение информации от площадки</td>
</tr>
<?php else : ?>
<tr>
<td style="font-weight:bold;min-width:196px;">ДомКлик</td>
<td colspan="4" style="text-align:center;">Объект не размещается через XML-фид</td>
</tr>
<?php endif; ?>
<?php endif; ?>
<?php else : ?>
<tr>
<td style="font-weight:bold;min-width:196px;">ДомКлик</td>
<td colspan="4" style="text-align:center;color:lightcoral;"><i class="ti-alert"> Не настроен доступ к API. Вы можете сделать это из <a href="/settings.php#advertApi" target="_blank">настроек профиля</a>.</td>
</tr>
<?php endif; ?>
</tbody>
</table>
</div>
</div>
<?php endif; ?>
<?php
}
?>
<script>
$('#ad_stat_bg .object-content__preloader').fadeOut();
</script>