• Модуль: statistic
  • Путь к файлу: ~/bitrix/modules/statistic/classes/mysql/traffic.php
  • Класс: CTraffic
  • Вызов: CTraffic::GetPhraseList
static function GetPhraseList($s_by = 's_today', $s_order = 'desc', $arFilter = [], &$is_filtered = false, $limit = 10)
{
	$err_mess = "File: ".__FILE__."
Line: "; $DB = CDatabase::GetModuleConnection('statistic'); $strSqlSearch = ""; $site_id = $arFilter["SITE_ID"]; if ($site_id <> '' && $site_id!="NOT_REF") { $is_filtered = true; $strSqlSearch = " and SITE_ID = '".$DB->ForSql($site_id, 2)."' "; } $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 ($s_by == "s_phrase") $strSqlOrder = " ORDER BY PHRASE "; elseif ($s_by == "s_today") $strSqlOrder = " ORDER BY TODAY_PHRASES "; elseif ($s_by == "s_yesterday") $strSqlOrder = " ORDER BY YESTERDAY_PHRASES "; elseif ($s_by == "s_bef_yesterday") $strSqlOrder = " ORDER BY B_YESTERDAY_PHRASES "; elseif ($s_by == "s_total") $strSqlOrder = " ORDER BY TOTAL_PHRASES "; elseif($s_by == "s_period" && $date_filtered) $strSqlOrder = " ORDER BY PERIOD_PHRASES "; else { $strSqlOrder = " ORDER BY TODAY_PHRASES desc, YESTERDAY_PHRASES desc, B_YESTERDAY_PHRASES desc, TOTAL_PHRASES "; } if ($s_order != "asc") { $strSqlOrder .= " desc "; } $strSql = " SELECT PHRASE, count('x') TOTAL_PHRASES, sum(if(to_days(curdate())-to_days(DATE_HIT)=0,1,0)) TODAY_PHRASES, sum(if(to_days(curdate())-to_days(DATE_HIT)=1,1,0)) YESTERDAY_PHRASES, sum(if(to_days(curdate())-to_days(DATE_HIT)=2,1,0)) B_YESTERDAY_PHRASES ". ($date_filtered ? ','.$strSqlPeriod.' PERIOD_PHRASES ' : '') ." FROM b_stat_phrase_list WHERE 1=1 ".$strSqlSearch." GROUP BY PHRASE ".$strSqlOrder." "; if(intval($limit)>0) { $strSql .= " LIMIT ".intval($limit); } return $DB->Query($strSql, false, $err_mess.__LINE__); }