1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
hit.php
См. документацию.
1
<?php
2
class
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"
:
48
if
(
CheckDateTime
(
$val
))
49
$arSqlSearch[] =
"H.DATE_HIT >= "
.$DB->CharToDateFunction(
$val
,
"SHORT"
);
50
break
;
51
case
"DATE_2"
:
52
if
(
CheckDateTime
(
$val
))
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
}
CHit
Определения
hit.php:3
CHit\GetByID
static GetByID($ID)
Определения
hit.php:161
CHit\GetList
static GetList($by='s_id', $order='desc', $arFilter=[])
Определения
hit.php:4
CStatResult
Определения
statresult.php:3
CStatistics\DBTopSql
static DBTopSql($strSql, $nTopCount=false)
Определения
statistic.php:628
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
$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
$arFilter
$arFilter
Определения
user_search.php:106
bitrix
modules
statistic
classes
general
hit.php
Создано системой
1.14.0