1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
traffic.php
См. документацию.
1<?php
2require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/statistic/classes/general/traffic.php");
3
4class CTraffic extends CAllTraffic
5{
6 public static function GetSumList($DATA_TYPE, $arFilter=Array())
7 {
8 $DB = CDatabase::GetModuleConnection('statistic');
9 $arSqlSearch = array();
10 $site_filtered = false;
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 "DATE1":
31 $arSqlSearch[] = "DATE_STAT>=".$DB->CharToDateFunction($val, "SHORT");
32 break;
33 case "DATE2":
35 $arSqlSearch[] = "DATE_STAT<".$DB->CharToDateFunction($val, "SHORT")." + INTERVAL 1 DAY";
36 break;
37 case "SITE_ID":
38 $site_filtered = true;
39 if (is_array($val))
40 $val = implode(" | ", $val);
41 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
42 $arSqlSearch[] = GetFilterQuery("SITE_ID", $val, $match);
43 break;
44 }
45 }
46 }
47
48 $strSqlSearch = GetFilterSqlSearch($arSqlSearch);
49 $table_name = ($site_filtered) ? "b_stat_day_site" : "b_stat_day";
50 $arSelect1 = $arSelect2 = array();
51
52 switch ($DATA_TYPE)
53 {
54 case "hour":
55 $arSelect1 = array(
56 "HOUR_HOST_0", "HOUR_HOST_1", "HOUR_HOST_2", "HOUR_HOST_3", "HOUR_HOST_4", "HOUR_HOST_5", "HOUR_HOST_6", "HOUR_HOST_7", "HOUR_HOST_8", "HOUR_HOST_9", "HOUR_HOST_10", "HOUR_HOST_11", "HOUR_HOST_12", "HOUR_HOST_13", "HOUR_HOST_14", "HOUR_HOST_15", "HOUR_HOST_16", "HOUR_HOST_17", "HOUR_HOST_18", "HOUR_HOST_19", "HOUR_HOST_20", "HOUR_HOST_21", "HOUR_HOST_22", "HOUR_HOST_23",
57
58 "HOUR_SESSION_0", "HOUR_SESSION_1", "HOUR_SESSION_2", "HOUR_SESSION_3", "HOUR_SESSION_4", "HOUR_SESSION_5", "HOUR_SESSION_6", "HOUR_SESSION_7", "HOUR_SESSION_8", "HOUR_SESSION_9", "HOUR_SESSION_10", "HOUR_SESSION_11", "HOUR_SESSION_12", "HOUR_SESSION_13", "HOUR_SESSION_14", "HOUR_SESSION_15", "HOUR_SESSION_16", "HOUR_SESSION_17", "HOUR_SESSION_18", "HOUR_SESSION_19", "HOUR_SESSION_20", "HOUR_SESSION_21", "HOUR_SESSION_22", "HOUR_SESSION_23",
59
60 "HOUR_HIT_0", "HOUR_HIT_1", "HOUR_HIT_2", "HOUR_HIT_3", "HOUR_HIT_4", "HOUR_HIT_5", "HOUR_HIT_6", "HOUR_HIT_7", "HOUR_HIT_8", "HOUR_HIT_9", "HOUR_HIT_10", "HOUR_HIT_11", "HOUR_HIT_12", "HOUR_HIT_13", "HOUR_HIT_14", "HOUR_HIT_15", "HOUR_HIT_16", "HOUR_HIT_17", "HOUR_HIT_18", "HOUR_HIT_19", "HOUR_HIT_20", "HOUR_HIT_21", "HOUR_HIT_22", "HOUR_HIT_23",
61
62 "HOUR_EVENT_0", "HOUR_EVENT_1", "HOUR_EVENT_2", "HOUR_EVENT_3", "HOUR_EVENT_4", "HOUR_EVENT_5", "HOUR_EVENT_6", "HOUR_EVENT_7", "HOUR_EVENT_8", "HOUR_EVENT_9", "HOUR_EVENT_10", "HOUR_EVENT_11", "HOUR_EVENT_12", "HOUR_EVENT_13", "HOUR_EVENT_14", "HOUR_EVENT_15", "HOUR_EVENT_16", "HOUR_EVENT_17", "HOUR_EVENT_18", "HOUR_EVENT_19", "HOUR_EVENT_20", "HOUR_EVENT_21", "HOUR_EVENT_22", "HOUR_EVENT_23"
63 );
64 if ($table_name=="b_stat_day")
65 {
66 $arSelect2 = array(
67 "HOUR_GUEST_0", "HOUR_GUEST_1", "HOUR_GUEST_2", "HOUR_GUEST_3", "HOUR_GUEST_4", "HOUR_GUEST_5", "HOUR_GUEST_6", "HOUR_GUEST_7", "HOUR_GUEST_8", "HOUR_GUEST_9", "HOUR_GUEST_10", "HOUR_GUEST_11", "HOUR_GUEST_12", "HOUR_GUEST_13", "HOUR_GUEST_14", "HOUR_GUEST_15", "HOUR_GUEST_16", "HOUR_GUEST_17", "HOUR_GUEST_18", "HOUR_GUEST_19", "HOUR_GUEST_20", "HOUR_GUEST_21", "HOUR_GUEST_22", "HOUR_GUEST_23",
68
69 "HOUR_NEW_GUEST_0", "HOUR_NEW_GUEST_1", "HOUR_NEW_GUEST_2", "HOUR_NEW_GUEST_3", "HOUR_NEW_GUEST_4", "HOUR_NEW_GUEST_5", "HOUR_NEW_GUEST_6", "HOUR_NEW_GUEST_7", "HOUR_NEW_GUEST_8", "HOUR_NEW_GUEST_9", "HOUR_NEW_GUEST_10", "HOUR_NEW_GUEST_11", "HOUR_NEW_GUEST_12", "HOUR_NEW_GUEST_13", "HOUR_NEW_GUEST_14", "HOUR_NEW_GUEST_15", "HOUR_NEW_GUEST_16", "HOUR_NEW_GUEST_17", "HOUR_NEW_GUEST_18", "HOUR_NEW_GUEST_19", "HOUR_NEW_GUEST_20", "HOUR_NEW_GUEST_21", "HOUR_NEW_GUEST_22", "HOUR_NEW_GUEST_23",
70
71 "HOUR_FAVORITE_0", "HOUR_FAVORITE_1", "HOUR_FAVORITE_2", "HOUR_FAVORITE_3", "HOUR_FAVORITE_4", "HOUR_FAVORITE_5", "HOUR_FAVORITE_6", "HOUR_FAVORITE_7", "HOUR_FAVORITE_8", "HOUR_FAVORITE_9", "HOUR_FAVORITE_10", "HOUR_FAVORITE_11", "HOUR_FAVORITE_12", "HOUR_FAVORITE_13", "HOUR_FAVORITE_14", "HOUR_FAVORITE_15", "HOUR_FAVORITE_16", "HOUR_FAVORITE_17", "HOUR_FAVORITE_18", "HOUR_FAVORITE_19", "HOUR_FAVORITE_20", "HOUR_FAVORITE_21", "HOUR_FAVORITE_22", "HOUR_FAVORITE_23"
72 );
73 }
74 break;
75 case "weekday":
76 $arSelect1 = array(
77 "WEEKDAY_HOST_0", "WEEKDAY_HOST_1", "WEEKDAY_HOST_2", "WEEKDAY_HOST_3", "WEEKDAY_HOST_4", "WEEKDAY_HOST_5", "WEEKDAY_HOST_6",
78
79 "WEEKDAY_SESSION_0", "WEEKDAY_SESSION_1", "WEEKDAY_SESSION_2", "WEEKDAY_SESSION_3", "WEEKDAY_SESSION_4", "WEEKDAY_SESSION_5", "WEEKDAY_SESSION_6",
80
81 "WEEKDAY_HIT_0", "WEEKDAY_HIT_1", "WEEKDAY_HIT_2", "WEEKDAY_HIT_3", "WEEKDAY_HIT_4", "WEEKDAY_HIT_5", "WEEKDAY_HIT_6",
82
83 "WEEKDAY_EVENT_0", "WEEKDAY_EVENT_1", "WEEKDAY_EVENT_2", "WEEKDAY_EVENT_3", "WEEKDAY_EVENT_4", "WEEKDAY_EVENT_5", "WEEKDAY_EVENT_6"
84 );
85
86 if ($table_name=="b_stat_day")
87 {
88 $arSelect2 = array(
89 "WEEKDAY_GUEST_0", "WEEKDAY_GUEST_1", "WEEKDAY_GUEST_2", "WEEKDAY_GUEST_3", "WEEKDAY_GUEST_4", "WEEKDAY_GUEST_5", "WEEKDAY_GUEST_6",
90
91 "WEEKDAY_NEW_GUEST_0", "WEEKDAY_NEW_GUEST_1", "WEEKDAY_NEW_GUEST_2", "WEEKDAY_NEW_GUEST_3", "WEEKDAY_NEW_GUEST_4", "WEEKDAY_NEW_GUEST_5", "WEEKDAY_NEW_GUEST_6",
92
93 "WEEKDAY_FAVORITE_0", "WEEKDAY_FAVORITE_1", "WEEKDAY_FAVORITE_2", "WEEKDAY_FAVORITE_3", "WEEKDAY_FAVORITE_4", "WEEKDAY_FAVORITE_5", "WEEKDAY_FAVORITE_6"
94 );
95 }
96 break;
97 case "month":
98 $arSelect1 = array(
99 "MONTH_HOST_1", "MONTH_HOST_2", "MONTH_HOST_3", "MONTH_HOST_4", "MONTH_HOST_5", "MONTH_HOST_6", "MONTH_HOST_7", "MONTH_HOST_8", "MONTH_HOST_9", "MONTH_HOST_10", "MONTH_HOST_11", "MONTH_HOST_12",
100
101 "MONTH_SESSION_1", "MONTH_SESSION_2", "MONTH_SESSION_3", "MONTH_SESSION_4", "MONTH_SESSION_5", "MONTH_SESSION_6", "MONTH_SESSION_7", "MONTH_SESSION_8", "MONTH_SESSION_9", "MONTH_SESSION_10", "MONTH_SESSION_11", "MONTH_SESSION_12",
102
103 "MONTH_HIT_1", "MONTH_HIT_2", "MONTH_HIT_3", "MONTH_HIT_4", "MONTH_HIT_5", "MONTH_HIT_6", "MONTH_HIT_7", "MONTH_HIT_8", "MONTH_HIT_9", "MONTH_HIT_10", "MONTH_HIT_11", "MONTH_HIT_12",
104
105 "MONTH_EVENT_1", "MONTH_EVENT_2", "MONTH_EVENT_3", "MONTH_EVENT_4", "MONTH_EVENT_5", "MONTH_EVENT_6", "MONTH_EVENT_7", "MONTH_EVENT_8", "MONTH_EVENT_9", "MONTH_EVENT_10", "MONTH_EVENT_11", "MONTH_EVENT_12"
106 );
107
108 if ($table_name=="b_stat_day")
109 {
110 $arSelect2 = array(
111 "MONTH_GUEST_1", "MONTH_GUEST_2", "MONTH_GUEST_3", "MONTH_GUEST_4", "MONTH_GUEST_5", "MONTH_GUEST_6", "MONTH_GUEST_7", "MONTH_GUEST_8", "MONTH_GUEST_9", "MONTH_GUEST_10", "MONTH_GUEST_11", "MONTH_GUEST_12",
112
113 "MONTH_NEW_GUEST_1", "MONTH_NEW_GUEST_2", "MONTH_NEW_GUEST_3", "MONTH_NEW_GUEST_4", "MONTH_NEW_GUEST_5", "MONTH_NEW_GUEST_6", "MONTH_NEW_GUEST_7", "MONTH_NEW_GUEST_8", "MONTH_NEW_GUEST_9", "MONTH_NEW_GUEST_10", "MONTH_NEW_GUEST_11", "MONTH_NEW_GUEST_12",
114
115 "MONTH_FAVORITE_1", "MONTH_FAVORITE_2", "MONTH_FAVORITE_3", "MONTH_FAVORITE_4", "MONTH_FAVORITE_5", "MONTH_FAVORITE_6", "MONTH_FAVORITE_7", "MONTH_FAVORITE_8", "MONTH_FAVORITE_9", "MONTH_FAVORITE_10", "MONTH_FAVORITE_11", "MONTH_FAVORITE_12"
116 );
117 }
118 break;
119 }
120
121 $sql = "";
122 $arSelect = array_merge($arSelect1, $arSelect2);
123 foreach($arSelect as $name)
124 $sql .= "sum($name) $name,\n";
125
126 $strSql = "
127 SELECT $sql 1
128 FROM
129 $table_name
130 WHERE
131 $strSqlSearch
132 ";
133
134 $rs = $DB->Query($strSql);
135 return $rs;
136 }
137
138 public static function GetDailyList($by = 's_date', $order = 'desc', &$arMaxMin = [], $arFilter = [], $is_filtered = null, $get_maxmin = "Y")
139 {
140 $DB = CDatabase::GetModuleConnection('statistic');
141 $arSqlSearch = Array();
142 $strSqlSearch = "";
143 $site_filtered = false;
144 if (is_array($arFilter))
145 {
146 foreach ($arFilter as $key => $val)
147 {
148 if(is_array($val))
149 {
150 if(count($val) <= 0)
151 continue;
152 }
153 else
154 {
155 if( ((string)$val == '') || ($val === "NOT_REF") )
156 continue;
157 }
158 $match_value_set = array_key_exists($key."_EXACT_MATCH", $arFilter);
159 $key = strtoupper($key);
160 switch($key)
161 {
162 case "ID":
163 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
164 $arSqlSearch[] = GetFilterQuery("D.ID",$val,$match);
165 break;
166 case "DATE1":
167 if (CheckDateTime($val))
168 $arSqlSearch[] = "D.DATE_STAT>=".$DB->CharToDateFunction($val, "SHORT");
169 break;
170 case "DATE2":
171 if (CheckDateTime($val))
172 $arSqlSearch[] = "D.DATE_STAT<".$DB->CharToDateFunction($val, "SHORT")." + INTERVAL 1 DAY";
173 break;
174 case "HITS_1":
175 $arSqlSearch[] = "D.HITS>='".intval($val)."'";
176 break;
177 case "HITS_2":
178 $arSqlSearch[] = "D.HITS<='".intval($val)."'";
179 break;
180 case "SESSIONS_1":
181 $arSqlSearch[] = "D.SESSIONS>='".intval($val)."'";
182 break;
183 case "SESSIONS_2":
184 $arSqlSearch[] = "D.SESSIONS<='".intval($val)."'";
185 break;
186 case "NEW_GUESTS_1":
187 $arSqlSearch[] = "D.NEW_GUESTS>='".intval($val)."'";
188 break;
189 case "NEW_GUESTS_2":
190 $arSqlSearch[] = "D.NEW_GUESTS<='".intval($val)."'";
191 break;
192 case "FAVORITES_1":
193 $arSqlSearch[] = "D.FAVORITES>='".intval($val)."'";
194 break;
195 case "FAVORITES_2":
196 $arSqlSearch[] = "D.FAVORITES<='".intval($val)."'";
197 break;
198 case "GUESTS_1":
199 $arSqlSearch[] = "D.GUESTS>='".intval($val)."'";
200 break;
201 case "GUESTS_2":
202 $arSqlSearch[] = "D.GUESTS<='".intval($val)."'";
203 break;
204 case "HOSTS_1":
205 $arSqlSearch[] = "D.C_HOSTS>='".intval($val)."'";
206 break;
207 case "HOSTS_2":
208 $arSqlSearch[] = "D.C_HOSTS<='".intval($val)."'";
209 break;
210 case "EVENTS_1":
211 $arSqlSearch[] = "D.C_EVENTS>='".intval($val)."'";
212 break;
213 case "EVENTS_2":
214 $arSqlSearch[] = "D.C_EVENTS<='".intval($val)."'";
215 break;
216 case "SITE_ID":
217 $site_filtered = true;
218 if (is_array($val))
219 $val = implode(" | ", $val);
220 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
221 $arSqlSearch[] = GetFilterQuery("D.SITE_ID", $val, $match);
222 break;
223 }
224 }
225 }
226
227 foreach($arSqlSearch as $sqlWhere)
228 $strSqlSearch .= " and (".$sqlWhere.") ";
229
230 if ($by == "s_id")
231 $strSqlOrder = "ORDER BY D.ID";
232 elseif ($by == "s_date")
233 $strSqlOrder = "ORDER BY D.DATE_STAT";
234 elseif ($by == "s_hits")
235 $strSqlOrder = "ORDER BY D.HITS";
236 elseif ($by == "s_hosts")
237 $strSqlOrder = "ORDER BY D.C_HOSTS";
238 elseif ($by == "s_sessions")
239 $strSqlOrder = "ORDER BY D.SESSIONS";
240 elseif ($by == "s_events")
241 $strSqlOrder = "ORDER BY D.C_EVENTS";
242 elseif ($by == "s_guests")
243 $strSqlOrder = "ORDER BY D.GUESTS";
244 elseif ($by == "s_new_guests")
245 $strSqlOrder = "ORDER BY D.NEW_GUESTS";
246 elseif ($by == "s_favorites")
247 $strSqlOrder = "ORDER BY D.FAVORITES";
248 else
249 {
250 $strSqlOrder = "ORDER BY D.DATE_STAT";
251 }
252
253 if ($order != "asc")
254 {
255 $strSqlOrder .= " desc ";
256 }
257
258 $table_name = ($site_filtered) ? "b_stat_day_site" : "b_stat_day";
259 $strSql = "
260 SELECT
261 D.ID,
262 D.HITS,
263 D.C_HOSTS,
264 D.SESSIONS,
265 D.C_EVENTS,
266 D.GUESTS,
267 D.NEW_GUESTS,
268 D.FAVORITES,
269 D.AM_AVERAGE_TIME,
270 D.AM_1,D.AM_1_3, D.AM_3_6, D.AM_6_9, D.AM_9_12, D.AM_12_15, D.AM_15_18, D.AM_18_21, D.AM_21_24, D.AM_24,
271 D.AH_AVERAGE_HITS,
272 D.AH_1, D.AH_2_5, D.AH_6_9, D.AH_10_13, D.AH_14_17, D.AH_18_21, D.AH_22_25, D.AH_26_29, D.AH_30_33, D.AH_34,
273 ".$DB->DateToCharFunction("D.DATE_STAT","SHORT")." DATE_STAT,
274 DAYOFMONTH(D.DATE_STAT) DAY,
275 MONTH(D.DATE_STAT) MONTH,
276 YEAR(D.DATE_STAT) YEAR,
277 WEEKDAY(D.DATE_STAT) WDAY
278 FROM
279 ".$table_name." D
280 WHERE
281 1=1
282 ".$strSqlSearch."
283 $strSqlOrder
284 ";
285
286 $res = $DB->Query($strSql);
287
288 if ($get_maxmin=="Y")
289 {
290 $strSql = "
291 SELECT
292 max(D.DATE_STAT) DATE_LAST,
293 min(D.DATE_STAT) DATE_FIRST,
294 DAYOFMONTH(max(D.DATE_STAT)) MAX_DAY,
295 MONTH(max(D.DATE_STAT)) MAX_MONTH,
296 YEAR(max(D.DATE_STAT)) MAX_YEAR,
297 DAYOFMONTH(min(D.DATE_STAT)) MIN_DAY,
298 MONTH(min(D.DATE_STAT)) MIN_MONTH,
299 YEAR(min(D.DATE_STAT)) MIN_YEAR
300 FROM
301 ".$table_name." D
302 WHERE
303 1=1
304 ".$strSqlSearch."
305 ";
306 $a = $DB->Query($strSql);
307 $ar = $a->Fetch();
308 if (!is_array($arMaxMin))
309 $arMaxMin = array();
310 $arMaxMin["MAX_DAY"] = $ar["MAX_DAY"];
311 $arMaxMin["MAX_MONTH"] = $ar["MAX_MONTH"];
312 $arMaxMin["MAX_YEAR"] = $ar["MAX_YEAR"];
313 $arMaxMin["MIN_DAY"] = $ar["MIN_DAY"];
314 $arMaxMin["MIN_MONTH"] = $ar["MIN_MONTH"];
315 $arMaxMin["MIN_YEAR"] = $ar["MIN_YEAR"];
316 }
317 return $res;
318 }
319
320 public static function GetCommonValues($arFilter=Array(), $bIgnoreErrors=false)
321 {
322 $DB = CDatabase::GetModuleConnection('statistic');
323
324 $site_id = ($arFilter["SITE_ID"] ?? '');
325 if($site_id <> '' && $site_id!="NOT_REF")
326 {
327 $site_filter = true;
328 $strSqlSearch = " and SITE_ID = '".$DB->ForSql($site_id, 2)."' ";
329 }
330 else
331 {
332 $site_filter = false;
333 $strSqlSearch = "";
334 }
335
336 $date1 = ($arFilter["DATE1"] ?? '');
337 $date2 = ($arFilter["DATE2"] ?? '');
338 if($date1 <> '' && CheckDateTime($date1))
339 {
340 $is_filtered = true;
341 $date_from = MkDateTime(ConvertDateTime($date1,"D.M.Y"),"d.m.Y");
342 if($date2 <> '' && CheckDateTime($date2))
343 {
344 $date_to = MkDateTime(ConvertDateTime($date2,"D.M.Y")." 23:59","d.m.Y H:i");
345 $strSqlPeriod = "sum(if(DATE_STAT<FROM_UNIXTIME('$date_from'),0, if(DATE_STAT>FROM_UNIXTIME('$date_to'),0,";
346 $strT=")))";
347 }
348 else
349 {
350 $strSqlPeriod = "sum(if(DATE_STAT<FROM_UNIXTIME('$date_from'),0,";
351 $strT="))";
352 }
353 }
354 elseif($date2 <> '' && CheckDateTime($date2))
355 {
356 $is_filtered = true;
357 $date_to = MkDateTime(ConvertDateTime($date2,"D.M.Y")." 23:59","d.m.Y H:i");
358 $strSqlPeriod = "sum(if(DATE_STAT>FROM_UNIXTIME('$date_to'),0,";
359 $strT="))";
360 }
361 else
362 {
363 $is_filtered = false;
364 $strSqlPeriod = "";
365 $strT="";
366 }
367
368 $strSql = "
369 SELECT
370 sum(HITS) TOTAL_HITS,
371 sum(if(to_days(curdate())=to_days(DATE_STAT),HITS,0)) TODAY_HITS,
372 sum(if(to_days(curdate())-to_days(DATE_STAT)=1,HITS,0)) YESTERDAY_HITS,
373 sum(if(to_days(curdate())-to_days(DATE_STAT)=2,HITS,0)) B_YESTERDAY_HITS,
374
375 sum(SESSIONS) TOTAL_SESSIONS,
376 sum(if(to_days(curdate())=to_days(DATE_STAT),SESSIONS,0)) TODAY_SESSIONS,
377 sum(if(to_days(curdate())-to_days(DATE_STAT)=1,SESSIONS,0)) YESTERDAY_SESSIONS,
378 sum(if(to_days(curdate())-to_days(DATE_STAT)=2,SESSIONS,0)) B_YESTERDAY_SESSIONS,
379
380 sum(C_EVENTS) TOTAL_EVENTS,
381 sum(if(to_days(curdate())=to_days(DATE_STAT),C_EVENTS,0)) TODAY_EVENTS,
382 sum(if(to_days(curdate())-to_days(DATE_STAT)=1,C_EVENTS,0)) YESTERDAY_EVENTS,
383 sum(if(to_days(curdate())-to_days(DATE_STAT)=2,C_EVENTS,0)) B_YESTERDAY_EVENTS,
384
385 sum(C_HOSTS) TOTAL_HOSTS,
386 sum(if(to_days(curdate())=to_days(DATE_STAT),C_HOSTS,0)) TODAY_HOSTS,
387 sum(if(to_days(curdate())-to_days(DATE_STAT)=1,C_HOSTS,0)) YESTERDAY_HOSTS,
388 sum(if(to_days(curdate())-to_days(DATE_STAT)=2,C_HOSTS,0)) B_YESTERDAY_HOSTS,
389
390 sum(NEW_GUESTS) TOTAL_GUESTS,
391 sum(if(to_days(curdate())=to_days(DATE_STAT),GUESTS,0)) TODAY_GUESTS,
392 sum(if(to_days(curdate())-to_days(DATE_STAT)=1,GUESTS,0)) YESTERDAY_GUESTS,
393 sum(if(to_days(curdate())-to_days(DATE_STAT)=2,GUESTS,0)) B_YESTERDAY_GUESTS,
394
395 sum(if(to_days(curdate())=to_days(DATE_STAT),NEW_GUESTS,0)) TODAY_NEW_GUESTS,
396 sum(if(to_days(curdate())-to_days(DATE_STAT)=1,NEW_GUESTS,0)) YESTERDAY_NEW_GUESTS,
397 sum(if(to_days(curdate())-to_days(DATE_STAT)=2,NEW_GUESTS,0)) B_YESTERDAY_NEW_GUESTS,
398
399 sum(FAVORITES) TOTAL_FAVORITES,
400 sum(if(to_days(curdate())=to_days(DATE_STAT),FAVORITES,0)) TODAY_FAVORITES,
401 sum(if(to_days(curdate())-to_days(DATE_STAT)=1,FAVORITES,0)) YESTERDAY_FAVORITES,
402 sum(if(to_days(curdate())-to_days(DATE_STAT)=2,FAVORITES,0)) B_YESTERDAY_FAVORITES
403 ".
404 ($is_filtered ? ','.
405 $strSqlPeriod.'HITS'.$strT.' PERIOD_HITS, '.
406 $strSqlPeriod.'SESSIONS'.$strT.' PERIOD_SESSIONS, '.
407 $strSqlPeriod.'C_EVENTS'.$strT.' PERIOD_EVENTS, '.
408 $strSqlPeriod.'FAVORITES'.$strT.' PERIOD_FAVORITES, '.
409 $strSqlPeriod.'NEW_GUESTS'.$strT.' PERIOD_NEW_GUESTS '
410 : '')
411 ."
412 FROM
413 ".($site_filter ? "b_stat_day_site" : "b_stat_day")."
414 WHERE
415 1=1
416 ".$strSqlSearch."
417 ";
418
419 $result = false;
420 $rs = $DB->Query($strSql, $bIgnoreErrors);
421 if($rs)
422 {
423 if($result = $rs->Fetch())
424 {
425 foreach($result as $key=>$value)
426 $result[$key] = intval($value);
427 if(!$site_filter)
428 $result["ONLINE_GUESTS"] = CUserOnline::GetGuestCount();
429 }
430 }
431 return $result;
432 }
433
434 public static function GetRefererList($by = 'ref_today', $order = 'desc', $arFilter = [], &$is_filtered = false, $limit = 10)
435 {
436 $DB = CDatabase::GetModuleConnection('statistic');
437
438 $site_id = $arFilter["SITE_ID"] ?? '';
439 if ($site_id <> '' && $site_id!="NOT_REF")
440 {
441 $is_filtered = true;
442 $strSqlSearch = " and SITE_ID = '".$DB->ForSql($site_id, 2)."' ";
443 }
444 else
445 {
446 $is_filtered = false;
447 $strSqlSearch = "";
448 }
449
450 $date1 = $arFilter["DATE1"] ?? '';
451 $date2 = $arFilter["DATE2"] ?? '';
452 $date_from = MkDateTime(ConvertDateTime($date1,"D.M.Y"),"d.m.Y");
453 $date_to = MkDateTime(ConvertDateTime($date2,"D.M.Y")." 23:59","d.m.Y H:i");
454 if ($date1 <> '')
455 {
456 $date_filtered = $is_filtered = true;
457 if ($date2 <> '')
458 $strSqlPeriod = " sum(if(DATE_HIT<FROM_UNIXTIME('$date_from'),0, if(date_hit>FROM_UNIXTIME('$date_to'),0,1)))";
459 else
460 $strSqlPeriod = " sum(if(DATE_HIT<FROM_UNIXTIME('$date_from'),0,1))";
461 }
462 elseif ($date2 <> '')
463 {
464 $date_filtered = $is_filtered = true;
465 $strSqlPeriod = " sum(if(DATE_HIT>FROM_UNIXTIME('$date_to'),0,1))";
466 }
467 else
468 {
469 $date_filtered = false;
470 $strSqlPeriod = "";
471 }
472
473 if ($by == "ref_server")
474 $strSqlOrder = " ORDER BY SITE_NAME ";
475 elseif($by == "ref_today")
476 $strSqlOrder = " ORDER BY TODAY_REFERERS ";
477 elseif($by == "ref_yesterday")
478 $strSqlOrder = " ORDER BY YESTERDAY_REFERERS ";
479 elseif($by == "ref_bef_yesterday")
480 $strSqlOrder = " ORDER BY B_YESTERDAY_REFERERS ";
481 elseif($by == "ref_total")
482 $strSqlOrder = " ORDER BY TOTAL_REFERERS ";
483 elseif($by == "ref_period" && $date_filtered)
484 $strSqlOrder = " ORDER BY PERIOD_REFERERS";
485 else
486 {
487 $strSqlOrder = "ORDER BY TODAY_REFERERS desc, YESTERDAY_REFERERS desc, B_YESTERDAY_REFERERS desc, TOTAL_REFERERS ";
488 }
489
490 if ($order!="asc")
491 {
492 $strSqlOrder .= " desc ";
493 }
494
495 $strSql = "
496 SELECT
497 SITE_NAME,
498 count('x') TOTAL_REFERERS,
499 sum(if(to_days(curdate())-to_days(DATE_HIT)=0,1,0)) TODAY_REFERERS,
500 sum(if(to_days(curdate())-to_days(DATE_HIT)=1,1,0)) YESTERDAY_REFERERS,
501 sum(if(to_days(curdate())-to_days(DATE_HIT)=2,1,0)) B_YESTERDAY_REFERERS
502 ".
503 ($date_filtered ? ','.$strSqlPeriod.' as PERIOD_REFERERS ' : '')
504 ."
505 FROM
506 b_stat_referer_list
507 WHERE
508 1=1
509 ".$strSqlSearch."
510 GROUP BY
511 SITE_NAME
512 ".$strSqlOrder."
513 ";
514 if(intval($limit)>0)
515 {
516 $strSql .= " LIMIT ".intval($limit);
517 }
518 return $DB->Query($strSql);
519 }
520
521 public static function GetPhraseList($s_by = 's_today', $s_order = 'desc', $arFilter = [], &$is_filtered = false, $limit = 10)
522 {
523 $DB = CDatabase::GetModuleConnection('statistic');
524 $strSqlSearch = "";
525
526 $site_id = $arFilter["SITE_ID"] ?? '';
527 if ($site_id <> '' && $site_id!="NOT_REF")
528 {
529 $is_filtered = true;
530 $strSqlSearch = " and SITE_ID = '".$DB->ForSql($site_id, 2)."' ";
531 }
532
533 $date1 = $arFilter["DATE1"] ?? '';
534 $date2 = $arFilter["DATE2"] ?? '';
535 $date_from = MkDateTime(ConvertDateTime($date1,"D.M.Y"),"d.m.Y");
536 $date_to = MkDateTime(ConvertDateTime($date2,"D.M.Y")." 23:59","d.m.Y H:i");
537 if ($date1 <> '')
538 {
539 $date_filtered = $is_filtered = true;
540 if ($date2 <> '')
541 $strSqlPeriod = " sum(if(DATE_HIT<FROM_UNIXTIME('$date_from'),0, if(date_hit>FROM_UNIXTIME('$date_to'),0,1)))";
542 else
543 $strSqlPeriod = " sum(if(DATE_HIT<FROM_UNIXTIME('$date_from'),0,1))";
544 }
545 elseif ($date2 <> '')
546 {
547 $date_filtered = $is_filtered = true;
548 $strSqlPeriod = " sum(if(DATE_HIT>FROM_UNIXTIME('$date_to'),0,1))";
549 }
550 else
551 {
552 $date_filtered = false;
553 $strSqlPeriod = "";
554 }
555
556 if ($s_by == "s_phrase")
557 $strSqlOrder = " ORDER BY PHRASE ";
558 elseif ($s_by == "s_today")
559 $strSqlOrder = " ORDER BY TODAY_PHRASES ";
560 elseif ($s_by == "s_yesterday")
561 $strSqlOrder = " ORDER BY YESTERDAY_PHRASES ";
562 elseif ($s_by == "s_bef_yesterday")
563 $strSqlOrder = " ORDER BY B_YESTERDAY_PHRASES ";
564 elseif ($s_by == "s_total")
565 $strSqlOrder = " ORDER BY TOTAL_PHRASES ";
566 elseif($s_by == "s_period" && $date_filtered)
567 $strSqlOrder = " ORDER BY PERIOD_PHRASES ";
568 else
569 {
570 $strSqlOrder = " ORDER BY TODAY_PHRASES desc, YESTERDAY_PHRASES desc, B_YESTERDAY_PHRASES desc, TOTAL_PHRASES ";
571 }
572
573 if ($s_order != "asc")
574 {
575 $strSqlOrder .= " desc ";
576 }
577
578 $strSql = "
579 SELECT
580 PHRASE,
581 count('x') TOTAL_PHRASES,
582 sum(if(to_days(curdate())-to_days(DATE_HIT)=0,1,0)) TODAY_PHRASES,
583 sum(if(to_days(curdate())-to_days(DATE_HIT)=1,1,0)) YESTERDAY_PHRASES,
584 sum(if(to_days(curdate())-to_days(DATE_HIT)=2,1,0)) B_YESTERDAY_PHRASES
585 ".
586 ($date_filtered ? ','.$strSqlPeriod.' PERIOD_PHRASES ' : '')
587 ."
588 FROM
589 b_stat_phrase_list
590 WHERE
591 1=1
592 ".$strSqlSearch."
593 GROUP BY
594 PHRASE
595 ".$strSqlOrder."
596 ";
597 if(intval($limit)>0)
598 {
599 $strSql .= " LIMIT ".intval($limit);
600 }
601 return $DB->Query($strSql);
602 }
603}
Определения traffic.php:4
Определения traffic.php:5
static GetDailyList($by='s_date', $order='desc', &$arMaxMin=[], $arFilter=[], $is_filtered=null, $get_maxmin="Y")
Определения traffic.php:138
static GetRefererList($by='ref_today', $order='desc', $arFilter=[], &$is_filtered=false, $limit=10)
Определения traffic.php:434
static GetCommonValues($arFilter=Array(), $bIgnoreErrors=false)
Определения traffic.php:320
static GetSumList($DATA_TYPE, $arFilter=Array())
Определения traffic.php:6
static GetPhraseList($s_by='s_today', $s_order='desc', $arFilter=[], &$is_filtered=false, $limit=10)
Определения traffic.php:521
static GetGuestCount()
Определения useronline.php:5
</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
$result
Определения get_property_values.php:14
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
ConvertDateTime($datetime, $to_format=false, $from_site=false, $bSearchInSitesOnly=false)
Определения tools.php:724
CheckDateTime($datetime, $format=false)
Определения tools.php:398
MkDateTime($strDT, $format="d.m.Y H:i:s")
Определения tools.php:1977
$name
Определения menu_edit.php:35
$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
else $a
Определения template.php:137
$val
Определения options.php:1793
$site_id
Определения sonet_set_content_view.php:9
$rs
Определения action.php:82
$arFilter
Определения user_search.php:106