1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
session.php
См. документацию.
1
<?php
2
3
class
CSession
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
}
CSession
Определения
session.php:4
CSession\GetByID
static GetByID($ID)
Определения
session.php:290
CSession\GetAttentiveness
static GetAttentiveness($DATE_STAT, $SITE_ID=false)
Определения
session.php:5
CSession\GetList
static GetList($by='s_id', $order='desc', $arFilter=[])
Определения
session.php:71
CStatResult
Определения
statresult.php:3
$str
$str
Определения
commerceml2.php:63
array
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения
file_new.php:804
$res
$res
Определения
filter_act.php:7
GetFilterSqlSearch
GetFilterSqlSearch($arSqlSearch=array(), $FilterLogic="FILTER_logic")
Определения
filter_tools.php:397
GetFilterQuery
GetFilterQuery($field, $val, $procent="Y", $ex_sep=array(), $clob="N", $div_fields="Y", $clob_upper="N")
Определения
filter_tools.php:383
$ID
if($ajaxMode) $ID
Определения
get_user.php:27
$select
$select
Определения
iblock_catalog_list.php:194
$DB
global $DB
Определения
cron_frame.php:29
CheckDateTime
CheckDateTime($datetime, $format=false)
Определения
tools.php:398
$order
$order
Определения
payment.php:8
elseif
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения
prolog_main_admin.php:393
$ar
$ar
Определения
options.php:199
$key
if(empty($signedUserToken)) $key
Определения
quickway.php:257
count
</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
$val
Определения
options.php:1793
$statDB
$statDB
Определения
options.php:18
$rs
$rs
Определения
action.php:82
$arFilter
$arFilter
Определения
user_search.php:106
$SITE_ID
$SITE_ID
Определения
yandex_run.php:607
bitrix
modules
statistic
classes
mysql
session.php
Создано системой
1.14.0