304 lines
20 KiB
PHP
304 lines
20 KiB
PHP
|
|
<?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> <span class='ti-eye'></span> " . $rezSumStatRes['sum_view_count'] . "</p>";
|
|||
|
|
|
|||
|
|
while ($stat = mysql_fetch_assoc($rezStat)) {
|
|||
|
|
echo "<p><a href='" . $stat['link'] ."' target='_blank'>" . $stat['feed_name'] ."</a> <span class='ti-eye'></span> " . $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;"> <i class="ti-alert"></i> </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;"> <i class="ti-alert"></i> </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;"> <i class="ti-alert"></i> </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;"> <i class="ti-alert"></i> </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>
|