1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
session.php
См. документацию.
1<?php
2
4{
5 public static function GetAttentiveness($DATE_STAT, $SITE_ID=false)
6 {
7 $DB = CDatabase::GetModuleConnection('statistic');
8 if ($SITE_ID!==false)
9 $str = " and S.FIRST_SITE_ID = '".$DB->ForSql($SITE_ID,2)."' ";
10 else
11 $str = "";
12
13 $strSql = "
14 SELECT
15 sum(UNIX_TIMESTAMP(S.DATE_LAST)-UNIX_TIMESTAMP(S.DATE_FIRST))/count(S.ID) AM_AVERAGE_TIME,
16 sum(if(UNIX_TIMESTAMP(S.DATE_LAST)-UNIX_TIMESTAMP(S.DATE_FIRST)<60,1,0)) AM_1,
17 sum(if(UNIX_TIMESTAMP(S.DATE_LAST)-UNIX_TIMESTAMP(S.DATE_FIRST)>=60
18 and UNIX_TIMESTAMP(S.DATE_LAST)-UNIX_TIMESTAMP(S.DATE_FIRST)<180,1,0)) AM_1_3,
19 sum(if(UNIX_TIMESTAMP(S.DATE_LAST)-UNIX_TIMESTAMP(S.DATE_FIRST)>=180
20 and UNIX_TIMESTAMP(S.DATE_LAST)-UNIX_TIMESTAMP(S.DATE_FIRST)<360,1,0)) AM_3_6,
21 sum(if(UNIX_TIMESTAMP(S.DATE_LAST)-UNIX_TIMESTAMP(S.DATE_FIRST)>=360
22 and UNIX_TIMESTAMP(S.DATE_LAST)-UNIX_TIMESTAMP(S.DATE_FIRST)<540,1,0)) AM_6_9,
23 sum(if(UNIX_TIMESTAMP(S.DATE_LAST)-UNIX_TIMESTAMP(S.DATE_FIRST)>=540
24 and UNIX_TIMESTAMP(S.DATE_LAST)-UNIX_TIMESTAMP(S.DATE_FIRST)<720,1,0)) AM_9_12,
25 sum(if(UNIX_TIMESTAMP(S.DATE_LAST)-UNIX_TIMESTAMP(S.DATE_FIRST)>=720
26 and UNIX_TIMESTAMP(S.DATE_LAST)-UNIX_TIMESTAMP(S.DATE_FIRST)<900,1,0)) AM_12_15,
27 sum(if(UNIX_TIMESTAMP(S.DATE_LAST)-UNIX_TIMESTAMP(S.DATE_FIRST)>=900
28 and UNIX_TIMESTAMP(S.DATE_LAST)-UNIX_TIMESTAMP(S.DATE_FIRST)<1080,1,0)) AM_15_18,
29 sum(if(UNIX_TIMESTAMP(S.DATE_LAST)-UNIX_TIMESTAMP(S.DATE_FIRST)>=1080
30 and UNIX_TIMESTAMP(S.DATE_LAST)-UNIX_TIMESTAMP(S.DATE_FIRST)<1260,1,0)) AM_18_21,
31 sum(if(UNIX_TIMESTAMP(S.DATE_LAST)-UNIX_TIMESTAMP(S.DATE_FIRST)>=1260
32 and UNIX_TIMESTAMP(S.DATE_LAST)-UNIX_TIMESTAMP(S.DATE_FIRST)<1440,1,0)) AM_21_24,
33 sum(if(UNIX_TIMESTAMP(S.DATE_LAST)-UNIX_TIMESTAMP(S.DATE_FIRST)>=1440,1,0)) AM_24,
34
35 sum(S.HITS)/count(S.ID) AH_AVERAGE_HITS,
36 sum(if(S.HITS<=1, 1, 0)) AH_1,
37 sum(if(S.HITS>=2 and S.HITS<=5, 1, 0)) AH_2_5,
38 sum(if(S.HITS>=6 and S.HITS<=9, 1, 0)) AH_6_9,
39 sum(if(S.HITS>=10 and S.HITS<=13, 1, 0)) AH_10_13,
40 sum(if(S.HITS>=14 and S.HITS<=17, 1, 0)) AH_14_17,
41 sum(if(S.HITS>=18 and S.HITS<=21, 1, 0)) AH_18_21,
42 sum(if(S.HITS>=22 and S.HITS<=25, 1, 0)) AH_22_25,
43 sum(if(S.HITS>=26 and S.HITS<=29, 1, 0)) AH_26_29,
44 sum(if(S.HITS>=30 and S.HITS<=33, 1, 0)) AH_30_33,
45 sum(if(S.HITS>=34, 1, 0)) AH_34
46 FROM
47 b_stat_session S
48 WHERE
49 S.DATE_STAT = cast(".$DB->CharToDateFunction($DATE_STAT, "SHORT")." as date)
50 $str
51 ";
52
53 $rs = $DB->Query($strSql);
54 $ar = $rs->Fetch();
55 $arKeys = array_keys($ar);
56 foreach($arKeys as $key)
57 {
58 if ($key=="AM_AVERAGE_TIME" || $key=="AH_AVERAGE_HITS")
59 {
60 $ar[$key] = (float) $ar[$key];
61 $ar[$key] = round($ar[$key],2);
62 }
63 else
64 {
65 $ar[$key] = intval($ar[$key]);
66 }
67 }
68 return $ar;
69 }
70
71 public static function GetList($by = 's_id', $order = 'desc', $arFilter = [])
72 {
73 $DB = CDatabase::GetModuleConnection('statistic');
74 $arSqlSearch = Array();
75 $select = "";
76 $from1 = "";
77 $from2 = "";
78 if (is_array($arFilter))
79 {
80 foreach ($arFilter as $key => $val)
81 {
82 if(is_array($val))
83 {
84 if(count($val) <= 0)
85 continue;
86 }
87 else
88 {
89 if( ((string)$val == '') || ($val === "NOT_REF") )
90 continue;
91 }
92 $match_value_set = array_key_exists($key."_EXACT_MATCH", $arFilter);
93 $key = strtoupper($key);
94 switch($key)
95 {
96 case "ID":
97 case "GUEST_ID":
98 case "ADV_ID":
99 case "STOP_LIST_ID":
100 case "USER_ID":
101 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
102 $arSqlSearch[] = GetFilterQuery("S.".$key,$val,$match);
103 break;
104 case "COUNTRY_ID":
105 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
106 $arSqlSearch[] = GetFilterQuery("S.COUNTRY_ID",$val,$match);
107 break;
108 case "CITY_ID":
109 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
110 $arSqlSearch[] = GetFilterQuery("S.CITY_ID",$val,$match);
111 break;
112 case "DATE_START_1":
113 if (CheckDateTime($val))
114 $arSqlSearch[] = "S.DATE_FIRST>=".$DB->CharToDateFunction($val, "SHORT");
115 break;
116 case "DATE_START_2":
117 if (CheckDateTime($val))
118 $arSqlSearch[] = "S.DATE_FIRST<".$DB->CharToDateFunction($val, "SHORT")." + INTERVAL 1 DAY";
119 break;
120 case "DATE_END_1":
121 if (CheckDateTime($val))
122 $arSqlSearch[] = "S.DATE_LAST>=".$DB->CharToDateFunction($val, "SHORT");
123 break;
124 case "DATE_END_2":
125 if (CheckDateTime($val))
126 $arSqlSearch[] = "S.DATE_LAST<".$DB->CharToDateFunction($val, "SHORT")." + INTERVAL 1 DAY";
127 break;
128 case "IP":
129 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
130 $arSqlSearch[] = GetFilterQuery("S.IP_LAST",$val,$match,array("."));
131 break;
132 case "REGISTERED":
133 $arSqlSearch[] = ($val=="Y") ? "S.USER_ID>0" : "(S.USER_ID<=0 or S.USER_ID is null)";
134 break;
135 case "EVENTS1":
136 $arSqlSearch[] = "S.C_EVENTS>='".intval($val)."'";
137 break;
138 case "EVENTS2":
139 $arSqlSearch[] = "S.C_EVENTS<='".intval($val)."'";
140 break;
141 case "HITS1":
142 $arSqlSearch[] = "S.HITS>='".intval($val)."'";
143 break;
144 case "HITS2":
145 $arSqlSearch[] = "S.HITS<='".intval($val)."'";
146 break;
147 case "ADV":
148 if ($val=="Y")
149 $arSqlSearch[] = "(S.ADV_ID>0 and S.ADV_ID is not null)";
150 elseif ($val=="N")
151 $arSqlSearch[] = "(S.ADV_ID<=0 or S.ADV_ID is null)";
152 break;
153 case "REFERER1":
154 case "REFERER2":
155 case "REFERER3":
156 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
157 $arSqlSearch[] = GetFilterQuery("S.".$key, $val, $match);
158 break;
159 case "USER_AGENT":
160 $val = preg_replace("/[\n\r]+/", " ", $val);
161 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
162 $arSqlSearch[] = GetFilterQuery("S.USER_AGENT", $val, $match);
163 break;
164 case "STOP":
165 $arSqlSearch[] = ($val=="Y") ? "S.STOP_LIST_ID>0" : "(S.STOP_LIST_ID<=0 or S.STOP_LIST_ID is null)";
166 break;
167 case "COUNTRY":
168 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
169 $arSqlSearch[] = GetFilterQuery("C.NAME", $val, $match);
170 $from2 = "INNER JOIN b_stat_country C ON (C.ID = S.COUNTRY_ID)";
171 break;
172 case "REGION":
173 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
174 $arSqlSearch[] = GetFilterQuery("CITY.REGION", $val, $match);
175 break;
176 case "CITY":
177 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
178 $arSqlSearch[] = GetFilterQuery("CITY.NAME", $val, $match);
179 break;
180 case "URL_TO":
181 case "URL_LAST":
182 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
183 $arSqlSearch[] = GetFilterQuery("S.".$key,$val,$match,array("/","\\",".","?","#",":"));
184 break;
185 case "ADV_BACK":
186 case "NEW_GUEST":
187 case "FAVORITES":
188 case "URL_LAST_404":
189 case "URL_TO_404":
190 case "USER_AUTH":
191 $arSqlSearch[] = ($val=="Y") ? "S.".$key."='Y'" : "S.".$key."='N'";
192 break;
193 case "USER":
194 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
195 $arSqlSearch[] = "ifnull(S.USER_ID,0)>0";
196 $arSqlSearch[] = GetFilterQuery("S.USER_ID,A.LOGIN,A.LAST_NAME,A.NAME", $val, $match);
197 $from1 = "LEFT JOIN b_user A ON (A.ID = S.USER_ID)";
198 $select = " , A.LOGIN, concat(ifnull(A.NAME,''),' ',ifnull(A.LAST_NAME,'')) USER_NAME";
199 break;
200 case "LAST_SITE_ID":
201 case "FIRST_SITE_ID":
202 if (is_array($val)) $val = implode(" | ", $val);
203 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
204 $arSqlSearch[] = GetFilterQuery("S.".$key, $val, $match);
205 break;
206 }
207 }
208 }
209
210 if ($by == "s_id") $strSqlOrder = "ORDER BY S.ID";
211 elseif ($by == "s_last_site_id") $strSqlOrder = "ORDER BY S.LAST_SITE_ID";
212 elseif ($by == "s_first_site_id") $strSqlOrder = "ORDER BY S.FIRST_SITE_ID";
213 elseif ($by == "s_date_first") $strSqlOrder = "ORDER BY S.DATE_FIRST";
214 elseif ($by == "s_date_last") $strSqlOrder = "ORDER BY S.DATE_LAST";
215 elseif ($by == "s_user_id") $strSqlOrder = "ORDER BY S.USER_ID";
216 elseif ($by == "s_guest_id") $strSqlOrder = "ORDER BY S.GUEST_ID";
217 elseif ($by == "s_ip") $strSqlOrder = "ORDER BY S.IP_LAST";
218 elseif ($by == "s_hits") $strSqlOrder = "ORDER BY S.HITS ";
219 elseif ($by == "s_events") $strSqlOrder = "ORDER BY S.C_EVENTS ";
220 elseif ($by == "s_adv_id") $strSqlOrder = "ORDER BY S.ADV_ID ";
221 elseif ($by == "s_country_id") $strSqlOrder = "ORDER BY S.COUNTRY_ID ";
222 elseif ($by == "s_region_name") $strSqlOrder = "ORDER BY CITY.REGION ";
223 elseif ($by == "s_city_id") $strSqlOrder = "ORDER BY S.CITY_ID ";
224 elseif ($by == "s_url_last") $strSqlOrder = "ORDER BY S.URL_LAST ";
225 elseif ($by == "s_url_to") $strSqlOrder = "ORDER BY S.URL_TO ";
226 else
227 {
228 $strSqlOrder = "ORDER BY S.ID";
229 }
230
231 if ($order!="asc")
232 {
233 $strSqlOrder .= " desc ";
234 }
235
236 $strSqlSearch = GetFilterSqlSearch($arSqlSearch);
237 $strSql = "
238 SELECT
239 S.ID,
240 S.GUEST_ID,
241 S.NEW_GUEST,
242 S.USER_ID,
243 S.USER_AUTH,
244 S.C_EVENTS,
245 S.HITS,
246 S.FAVORITES,
247 S.URL_FROM,
248 S.URL_TO,
249 S.URL_TO_404,
250 S.URL_LAST,
251 S.URL_LAST_404,
252 S.USER_AGENT,
253 S.IP_FIRST,
254 S.IP_LAST,
255 S.FIRST_HIT_ID,
256 S.LAST_HIT_ID,
257 S.PHPSESSID,
258 S.ADV_ID,
259 S.ADV_BACK,
260 S.REFERER1,
261 S.REFERER2,
262 S.REFERER3,
263 S.STOP_LIST_ID,
264 S.COUNTRY_ID,
265 CITY.REGION REGION_NAME,
266 S.CITY_ID,
267 CITY.NAME CITY_NAME,
268 S.FIRST_SITE_ID,
269 S.LAST_SITE_ID,
270 UNIX_TIMESTAMP(S.DATE_LAST)-UNIX_TIMESTAMP(S.DATE_FIRST) SESSION_TIME,
271 ".$DB->DateToCharFunction("S.DATE_FIRST")." DATE_FIRST,
272 ".$DB->DateToCharFunction("S.DATE_LAST")." DATE_LAST
273 $select
274 FROM
275 b_stat_session S
276 $from1
277 $from2
278 LEFT JOIN b_stat_city CITY ON (CITY.ID = S.CITY_ID)
279 WHERE
280 $strSqlSearch
281 $strSqlOrder
282 LIMIT ".intval(COption::GetOptionString('statistic','RECORDS_LIMIT'))."
283 ";
284
285 $res = $DB->Query($strSql);
286
287 return $res;
288 }
289
290 public static function GetByID($ID)
291 {
292 $statDB = CDatabase::GetModuleConnection('statistic');
293 $ID = intval($ID);
294
295 $res = $statDB->Query("
296 SELECT
297 S.*,
298 UNIX_TIMESTAMP(S.DATE_LAST) - UNIX_TIMESTAMP(S.DATE_FIRST) SESSION_TIME,
299 ".$statDB->DateToCharFunction("S.DATE_FIRST")." DATE_FIRST,
300 ".$statDB->DateToCharFunction("S.DATE_LAST")." DATE_LAST,
301 C.NAME COUNTRY_NAME,
302 CITY.REGION REGION_NAME,
303 CITY.NAME CITY_NAME
304 FROM
305 b_stat_session S
306 INNER JOIN b_stat_country C ON (C.ID = S.COUNTRY_ID)
307 LEFT JOIN b_stat_city CITY ON (CITY.ID = S.CITY_ID)
308 WHERE
309 S.ID = ".$ID."
310 ");
311
312 $res = new CStatResult($res);
313 return $res;
314 }
315}
Определения session.php:4
static GetByID($ID)
Определения session.php:290
static GetAttentiveness($DATE_STAT, $SITE_ID=false)
Определения session.php:5
static GetList($by='s_id', $order='desc', $arFilter=[])
Определения session.php:71
Определения statresult.php:3
$str
Определения commerceml2.php:63
</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
$ar
Определения options.php:199
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
$statDB
Определения options.php:18
$rs
Определения action.php:82
$arFilter
Определения user_search.php:106
$SITE_ID
Определения yandex_run.php:607