Вход Регистрация
Файл: DESURE-dcms-f12de01ac63e/sys/plugins/classes/log_of_visits.class.php
Строк: 21
<?php

/**
 * Запись посещений
 */
class log_of_visits
{

    private 
$db;

    function 
__construct()
    {
        global 
$dcms;
        
$this->db DB::me();
        if (!
cache_log_of_visits::get($dcms->ip_long)) {
            
$res $this->db->prepare("INSERT INTO `log_of_visits_today` (`time`, `browser_type`, `id_browser`, `iplong`) VALUES (?, ?, ?, ?)");
            
$res->execute(Array(DAY_TIMEbrowser::getIsRobot()?'robot':browser::getType(), $dcms->browser_id$dcms->ip_long));
            
cache_log_of_visits::set($dcms->ip_longtrue1);
        }
    }

    
// подведение итогов посещений по дням
    
function tally()
    {
        
//   $res = $this->db->query("LOCK TABLES `log_of_visits_today` WRITE READ, `log_of_visits_for_days` WRITE READ");
        // запрашиваем дни, которые есть в базе исключая текущий
        
$q $this->db->prepare("SELECT DISTINCT `time`  FROM `log_of_visits_today` WHERE `time` <> ?");
        
$q->execute(Array(DAY_TIME));
        
$res_hits $this->db->prepare("SELECT COUNT(*) FROM `log_of_visits_today` WHERE `time` = ? AND `browser_type` = ?");
        
$res_hosts $this->db->prepare("SELECT COUNT(DISTINCT `iplong` , `id_browser`) FROM `log_of_visits_today` WHERE `time` = ? AND `browser_type` = ?");
        
$res_insert $this->db->prepare("INSERT INTO `log_of_visits_for_days` (`time_day`, `hits_full`,`hosts_full`,`hits_light`,`hosts_light`,`hits_mobile`,`hosts_mobile`,`hits_robot`,`hosts_robot`) VALUES (?,?,?,?,?,?,?,?,?)");
        while (
$day $q->fetch()) {
            
$res_hits->execute(Array($day['time'], 'light'));
            
$hits['light'] = $res_hits->fetchColumn();
            
$res_hits->execute(Array($day['time'], 'mobile'));
            
$hits['mobile'] = $res_hits->fetchColumn();
            
$res_hits->execute(Array($day['time'], 'full'));
            
$hits['full'] = $res_hits->fetchColumn();
            
$res_hits->execute(Array($day['time'], 'robot'));
            
$hits['robot'] = $res_hits->fetchColumn();
            
$res_hosts->execute(Array($day['time'], 'light'));
            
$hosts['light'] = $res_hosts->fetchColumn();
            
$res_hosts->execute(Array($day['time'], 'mobile'));
            
$hosts['mobile'] = $res_hosts->fetchColumn();
            
$res_hosts->execute(Array($day['time'], 'full'));
            
$hosts['full'] = $res_hosts->fetchColumn();
            
$res_hosts->execute(Array($day['time'], 'robot'));
            
$hosts['robot'] = $res_hosts->fetchColumn();

            
$res_insert->execute(Array($day['time'], $hits['full'], $hosts['full'], $hits['light'], $hosts['light'], $hits['mobile'], $hosts['mobile'], $hits['robot'], $hosts['robot']));
        }
        
$res $this->db->prepare("DELETE FROM `log_of_visits_today` WHERE `time` <> ?");
        
$res->execute(Array(DAY_TIME));
        
// оптимизация таблиц после удаления данных
        
$this->db->query("OPTIMIZE TABLE `log_of_visits_today`");
        
// разблокируем таблицы
        
$this->db->query("UNLOCK TABLES");
    }
}
Онлайн: 1
Реклама