• Модуль: 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; }