• Модуль: statistic
  • Путь к файлу: ~/bitrix/modules/statistic/classes/mysql/traffic.php
  • Класс: CTraffic
  • Вызов: CTraffic::GetRefererList
static function GetRefererList($by = 'ref_today', $order = 'desc', $arFilter = [], &$is_filtered = false, $limit = 10)
{
	$err_mess = "File: ".__FILE__."
Line: "; $DB = CDatabase::GetModuleConnection('statistic'); $site_id = $arFilter["SITE_ID"]; if ($site_id <> '' && $site_id!="NOT_REF") { $is_filtered = true; $strSqlSearch = " and SITE_ID = '".$DB->ForSql($site_id, 2)."' "; } else { $is_filtered = false; $strSqlSearch = ""; } $date1 = $arFilter["DATE1"]; $date2 = $arFilter["DATE2"]; $date_from = MkDateTime(ConvertDateTime($date1,"D.M.Y"),"d.m.Y"); $date_to = MkDateTime(ConvertDateTime($date2,"D.M.Y")." 23:59","d.m.Y H:i"); if ($date1 <> '') { $date_filtered = $is_filtered = true; if ($date2 <> '') $strSqlPeriod = " sum(if(DATE_HITFROM_UNIXTIME('$date_to'),0,1)))"; else $strSqlPeriod = " sum(if(DATE_HIT '') { $date_filtered = $is_filtered = true; $strSqlPeriod = " sum(if(DATE_HIT>FROM_UNIXTIME('$date_to'),0,1))"; } else { $date_filtered = false; $strSqlPeriod = ""; } if ($by == "ref_server") $strSqlOrder = " ORDER BY SITE_NAME "; elseif($by == "ref_today") $strSqlOrder = " ORDER BY TODAY_REFERERS "; elseif($by == "ref_yesterday") $strSqlOrder = " ORDER BY YESTERDAY_REFERERS "; elseif($by == "ref_bef_yesterday") $strSqlOrder = " ORDER BY B_YESTERDAY_REFERERS "; elseif($by == "ref_total") $strSqlOrder = " ORDER BY TOTAL_REFERERS "; elseif($by == "ref_period" && $date_filtered) $strSqlOrder = " ORDER BY PERIOD_REFERERS"; else { $strSqlOrder = "ORDER BY TODAY_REFERERS desc, YESTERDAY_REFERERS desc, B_YESTERDAY_REFERERS desc, TOTAL_REFERERS "; } if ($order!="asc") { $strSqlOrder .= " desc "; } $strSql = " SELECT SITE_NAME, count('x') TOTAL_REFERERS, sum(if(to_days(curdate())-to_days(DATE_HIT)=0,1,0)) TODAY_REFERERS, sum(if(to_days(curdate())-to_days(DATE_HIT)=1,1,0)) YESTERDAY_REFERERS, sum(if(to_days(curdate())-to_days(DATE_HIT)=2,1,0)) B_YESTERDAY_REFERERS ". ($date_filtered ? ','.$strSqlPeriod.' as PERIOD_REFERERS ' : '') ." FROM b_stat_referer_list WHERE 1=1 ".$strSqlSearch." GROUP BY SITE_NAME ".$strSqlOrder." "; if(intval($limit)>0) { $strSql .= " LIMIT ".intval($limit); } return $DB->Query($strSql, false, $err_mess.__LINE__); }