1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
hit.php
См. документацию.
1<?php
2class CHit
3{
4 public static function GetList($by = 's_id', $order = 'desc', $arFilter = [])
5 {
6 $DB = CDatabase::GetModuleConnection('statistic');
7 $arSqlSearch = Array();
8 $select = "";
9 $from1 = $from2 = "";
10
11 if (is_array($arFilter))
12 {
13 foreach ($arFilter as $key => $val)
14 {
15 if(is_array($val))
16 {
17 if(count($val) <= 0)
18 continue;
19 }
20 else
21 {
22 if( ((string)$val == '') || ($val === "NOT_REF") )
23 continue;
24 }
25 $match_value_set = array_key_exists($key."_EXACT_MATCH", $arFilter);
26 $key = strtoupper($key);
27 switch($key)
28 {
29 case "ID":
30 case "GUEST_ID":
31 case "SESSION_ID":
32 case "STOP_LIST_ID":
33 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
34 $arSqlSearch[] = GetFilterQuery("H.".$key, $val, $match);
35 break;
36 case "URL":
37 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
38 $arSqlSearch[] = GetFilterQuery("H.URL", $val, $match, array("/","\\",".","?","#",":"));
39 break;
40 case "URL_404":
41 case "NEW_GUEST":
42 $arSqlSearch[] = ($val=="Y") ? "H.".$key."='Y'" : "H.".$key."='N'";
43 break;
44 case "REGISTERED":
45 $arSqlSearch[] = ($val=="Y") ? "H.USER_ID>0" : "(H.USER_ID<=0 or H.USER_ID is null)";
46 break;
47 case "DATE_1":
49 $arSqlSearch[] = "H.DATE_HIT >= ".$DB->CharToDateFunction($val, "SHORT");
50 break;
51 case "DATE_2":
53 $arSqlSearch[] = "H.DATE_HIT < ".CStatistics::DBDateAdd($DB->CharToDateFunction($val, "SHORT"), 1);
54 break;
55 case "IP":
56 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
57 $arSqlSearch[] = GetFilterQuery("H.IP",$val,$match,array("."));
58 break;
59 case "USER_AGENT":
60 case "COUNTRY_ID":
61 case "CITY_ID":
62 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
63 $arSqlSearch[] = GetFilterQuery("H.".$key, $val, $match);
64 break;
65 case "COOKIE":
66 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
67 $arSqlSearch[] = GetFilterQuery("H.COOKIES",$val,$match);
68 break;
69 case "USER":
70 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
71 $arSqlSearch[] = $DB->IsNull("H.USER_ID","0").">0";
72 $arSqlSearch[] = GetFilterQuery("H.USER_ID,A.LOGIN,A.LAST_NAME,A.NAME", $val, $match);
73 $select = ", A.LOGIN, ".$DB->Concat($DB->IsNull("A.NAME","''"), "' '", $DB->IsNull("A.LAST_NAME","''"))." USER_NAME";
74 $from1 = "LEFT JOIN b_user A ON (A.ID = H.USER_ID)";
75 break;
76 case "COUNTRY":
77 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
78 $arSqlSearch[] = GetFilterQuery("C.NAME", $val, $match);
79 $from2 = "INNER JOIN b_stat_country C ON (C.ID = H.COUNTRY_ID)";
80 break;
81 case "REGION":
82 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
83 $arSqlSearch[] = GetFilterQuery("CITY.REGION", $val, $match);
84 break;
85 case "CITY":
86 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
87 $arSqlSearch[] = GetFilterQuery("CITY.NAME", $val, $match);
88 break;
89 case "STOP":
90 $arSqlSearch[] = ($val=="Y") ? "H.STOP_LIST_ID>0" : "(H.STOP_LIST_ID<=0 or H.STOP_LIST_ID is null)";
91 break;
92 case "SITE_ID":
93 if (is_array($val)) $val = implode(" | ", $val);
94 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
95 $arSqlSearch[] = GetFilterQuery("H.SITE_ID", $val, $match);
96 break;
97 }
98 }
99 }
100
101 if ($by == "s_id") $strSqlOrder = "ORDER BY H.ID";
102 elseif ($by == "s_site_id") $strSqlOrder = "ORDER BY H.SITE_ID";
103 elseif ($by == "s_session_id") $strSqlOrder = "ORDER BY H.SESSION_ID";
104 elseif ($by == "s_date_hit") $strSqlOrder = "ORDER BY H.DATE_HIT";
105 elseif ($by == "s_user_id") $strSqlOrder = "ORDER BY H.USER_ID";
106 elseif ($by == "s_guest_id") $strSqlOrder = "ORDER BY H.GUEST_ID";
107 elseif ($by == "s_ip") $strSqlOrder = "ORDER BY H.IP";
108 elseif ($by == "s_url") $strSqlOrder = "ORDER BY H.URL ";
109 elseif ($by == "s_country_id") $strSqlOrder = "ORDER BY H.COUNTRY_ID ";
110 elseif ($by == "s_region_name") $strSqlOrder = "ORDER BY CITY.REGION ";
111 elseif ($by == "s_city_id") $strSqlOrder = "ORDER BY H.CITY_ID ";
112 else
113 {
114 $strSqlOrder = "ORDER BY H.ID";
115 }
116
117 if ($order != "asc")
118 {
119 $strSqlOrder .= " desc ";
120 }
121
122 $strSqlSearch = GetFilterSqlSearch($arSqlSearch);
123 $strSql = "
124 SELECT /*TOP*/
125 H.ID,
126 H.SESSION_ID,
127 H.GUEST_ID,
128 H.NEW_GUEST,
129 H.USER_ID,
130 H.USER_AUTH,
131 H.URL,
132 H.URL_404,
133 H.URL_FROM,
134 H.IP,
135 H.METHOD,
136 H.COOKIES,
137 H.USER_AGENT,
138 H.STOP_LIST_ID,
139 H.COUNTRY_ID,
140 H.CITY_ID,
141 CITY.REGION REGION_NAME,
142 CITY.NAME CITY_NAME,
143 H.SITE_ID,
144 ".$DB->DateToCharFunction("H.DATE_HIT")." DATE_HIT
145 ".$select."
146 FROM
147 b_stat_hit H
148 LEFT JOIN b_stat_city CITY ON (CITY.ID = H.CITY_ID)
149 ".$from1."
150 ".$from2."
151 WHERE
152 ".$strSqlSearch."
153 ".$strSqlOrder."
154 ";
155
156 $res = $DB->Query(CStatistics::DBTopSql($strSql));
157
158 return $res;
159 }
160
161 public static function GetByID($ID)
162 {
163 $DB = CDatabase::GetModuleConnection('statistic');
164 $ID = intval($ID);
165 $res = $DB->Query("
166 SELECT
167 H.*,
168 ".$DB->DateToCharFunction("H.DATE_HIT")." DATE_HIT,
169 C.NAME COUNTRY_NAME,
170 CITY.REGION REGION_NAME,
171 CITY.NAME CITY_NAME
172 FROM
173 b_stat_hit H
174 INNER JOIN b_stat_country C ON (C.ID = H.COUNTRY_ID)
175 LEFT JOIN b_stat_city CITY ON (CITY.ID = H.CITY_ID)
176 WHERE
177 H.ID = '$ID'
178 ");
179
180 $res = new CStatResult($res);
181 return $res;
182 }
183}
Определения hit.php:3
static GetByID($ID)
Определения hit.php:161
static GetList($by='s_id', $order='desc', $arFilter=[])
Определения hit.php:4
Определения statresult.php:3
static DBTopSql($strSql, $nTopCount=false)
Определения statistic.php:628
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$res
Определения filter_act.php:7
GetFilterSqlSearch($arSqlSearch=array(), $FilterLogic="FILTER_logic")
Определения filter_tools.php:397
GetFilterQuery($field, $val, $procent="Y", $ex_sep=array(), $clob="N", $div_fields="Y", $clob_upper="N")
Определения filter_tools.php:383
if($ajaxMode) $ID
Определения get_user.php:27
$select
Определения iblock_catalog_list.php:194
global $DB
Определения cron_frame.php:29
CheckDateTime($datetime, $format=false)
Определения tools.php:398
$order
Определения payment.php:8
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
if(empty($signedUserToken)) $key
Определения quickway.php:257
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
Определения waybill.php:936
$val
Определения options.php:1793
$arFilter
Определения user_search.php:106