- Модуль: security
- Путь к файлу: ~/bitrix/modules/security/classes/general/event.php
- Класс: CSecurityEvent
- Вызов: CSecurityEvent::getEventsCount
public function getEventsCount($timestamp = '')
{
if (!$this->isDBEngineActive)
return 0;
/**
* @global CCacheManager $CACHE_MANAGER
* @global CDataBase $DB
*/
global $DB, $CACHE_MANAGER;
$ttl = 3600;
$cacheId = 'sec_events_count';
$cacheDir = '/security/events';
if ($CACHE_MANAGER->read($ttl, $cacheId, $cacheDir))
{
$result = $CACHE_MANAGER->get($cacheId);
}
else
{
if ($timestamp == '')
{
$days = COption::getOptionInt("main", "event_log_cleanup_days", 7);
if ($days > 7)
$days = 7;
$timestamp = convertTimeStamp(time()-$days*24*3600+CTimeZone::getOffset());
}
$arAudits = array(
"SECURITY_FILTER_SQL",
"SECURITY_FILTER_XSS",
"SECURITY_FILTER_XSS2",
"SECURITY_FILTER_PHP"
);
$strAuditsSql = implode("', '",$arAudits);
$strSql = "
SELECT COUNT(ID) AS COUNT
FROM
b_event_log
WHERE
AUDIT_TYPE_ID in ('".$strAuditsSql."')
AND
(MODULE_ID = 'security' and MODULE_ID is not null)
AND
TIMESTAMP_X >= ".$DB->charToDateFunction($DB->forSQL($timestamp))."
";
$res = $DB->query($strSql, false, "FILE: ".__FILE__."
LINE: ".__LINE__);
if ($arRes = $res->fetch())
$result = $arRes["COUNT"];
else
$result = 0;
$CACHE_MANAGER->set($cacheId, $result);
}
return $result;
}