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

/**
 * Class api_stat
 */
class api_stat implements api_controller
{
    
/**
     * @param $request_data
     * @throws ApiException
     */
    
public function write($request_data)
    {
        
$data = array(
            
'host' => '',
            
'version_dcms' => '',
            
'version_php' => '',
            
'version_mysql' => '',
            
'translate_length' => 0,
            
'users_count' => 0,
            
'hosts_full' => 0,
            
'hosts_mobile' => 0,
            
'hosts_light' => 0
        
);

        
$data array_merge($data$request_data);

        if (empty(
$data['host']))
            throw new 
ApiException($request_data__('Не указан параметр %s''host'));

        
$ips gethostbynamel($data['host']);

        if (!
$ips)
            throw new 
ApiException($request_data__('Не удалось получить список IP дресов для узла %s'$data['host']));

        if (!
in_array(long2ip(dcms::getInstance()->ip_long), $ips))
            throw new 
ApiException($request_data__('IP адрес запроса не соответствует IP адресу хоста'));

        
$res db::me()->prepare('SELECT COUNT(*) FROM `statistic` WHERE `host` = :h AND `time` > :t LIMIT 1');
        
$res->execute(array(':h' => $data['host'], ':t' => DAY_TIME));
        if (
$res->fetchColumn())
            throw new 
ApiException($request_data__('Данные о статистике за cегодня уже имеются'));

        
$res db::me()->prepare("INSERT INTO `statistic`
        (`time`, `host`, `version_dcms`, `version_php`, `version_mysql`,  `translate_length`, `users_count`, `hosts_full`, `hosts_mobile`, `hosts_light`)
        VALUES (:t, :h, :v_dcms, :v_php, :v_mysql, :tr_len, :us_count, :hosts_full, :hosts_mobile, :hosts_light)"
);

        
$res->execute(array(
            
':t' => TIME,
            
':h' => $data['host'],
            
':v_dcms' => $data['version_dcms'],
            
':v_php' => $data['version_php'],
            
':v_mysql' => $data['version_mysql'],
            
':tr_len' => $data['translate_length'],
            
':us_count' => $data['users_count'],
            
':hosts_full' => $data['hosts_full'],
            
':hosts_mobile' => $data['hosts_mobile'],
            
':hosts_light' => $data['hosts_light']
        ));

        if (
$err $res->errorInfo())
            throw new 
ApiException($request_data$err);
    }
}
Онлайн: 5
Реклама