1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
searcherhit.php
См. документацию.
1
<?php
2
class
CSearcherHit
3
{
4
public
static
function
GetList
($by =
's_date_hit'
,
$order
=
'desc'
,
$arFilter
= [])
5
{
6
$DB
= CDatabase::GetModuleConnection(
'statistic'
);
7
$arSqlSearch = Array();
8
9
if
(is_array(
$arFilter
))
10
{
11
foreach
(
$arFilter
as
$key
=>
$val
)
12
{
13
if
(is_array(
$val
))
14
{
15
if
(
count
(
$val
) <= 0)
16
continue
;
17
}
18
else
19
{
20
if
( ((
string
)
$val
==
''
) || (
$val
===
"NOT_REF"
) )
21
continue
;
22
}
23
$match_value_set = array_key_exists(
$key
.
"_EXACT_MATCH"
,
$arFilter
);
24
$key
= strtoupper(
$key
);
25
switch
(
$key
)
26
{
27
case
"ID"
:
28
case
"SEARCHER_ID"
:
29
$match = (
$arFilter
[
$key
.
"_EXACT_MATCH"
]==
"N"
&& $match_value_set) ?
"Y"
:
"N"
;
30
$arSqlSearch[] =
GetFilterQuery
(
"H."
.
$key
,
$val
, $match);
31
break
;
32
case
"URL"
:
33
$match = (
$arFilter
[
$key
.
"_EXACT_MATCH"
]==
"Y"
&& $match_value_set) ?
"N"
:
"Y"
;
34
$arSqlSearch[] =
GetFilterQuery
(
"H.URL"
,
$val
, $match,
array
(
"/"
,
"\\"
,
"."
,
"?"
,
"#"
,
":"
));
35
break
;
36
case
"URL_404"
:
37
$arSqlSearch[] = (
$val
==
"Y"
) ?
"H.URL_404='Y'"
:
"H.URL_404='N'"
;
38
break
;
39
case
"SEARCHER"
:
40
$match = (
$arFilter
[
$key
.
"_EXACT_MATCH"
]==
"Y"
&& $match_value_set) ?
"N"
:
"Y"
;
41
$arSqlSearch[] =
GetFilterQuery
(
"S.NAME"
,
$val
,$match);
42
break
;
43
case
"DATE1"
:
44
if
(
CheckDateTime
(
$val
))
45
$arSqlSearch[] =
"H.DATE_HIT >= "
.$DB->CharToDateFunction(
$val
,
"SHORT"
);
46
break
;
47
case
"DATE2"
:
48
if
(
CheckDateTime
(
$val
))
49
$arSqlSearch[] =
"H.DATE_HIT < "
.CStatistics::DBDateAdd(
$DB
->CharToDateFunction(
$val
,
"SHORT"
), 1);
50
break
;
51
case
"IP"
:
52
$match = (
$arFilter
[
$key
.
"_EXACT_MATCH"
]==
"Y"
&& $match_value_set) ?
"N"
:
"Y"
;
53
$arSqlSearch[] =
GetFilterQuery
(
"H.IP"
,
$val
, $match,
array
(
"."
));
54
break
;
55
case
"USER_AGENT"
:
56
$match = (
$arFilter
[
$key
.
"_EXACT_MATCH"
]==
"Y"
&& $match_value_set) ?
"N"
:
"Y"
;
57
$arSqlSearch[] =
GetFilterQuery
(
"H.USER_AGENT"
,
$val
, $match);
58
break
;
59
case
"SITE_ID"
:
60
if
(is_array(
$val
))
$val
= implode(
" | "
,
$val
);
61
$match = (
$arFilter
[
$key
.
"_EXACT_MATCH"
]==
"N"
&& $match_value_set) ?
"Y"
:
"N"
;
62
$arSqlSearch[] =
GetFilterQuery
(
"H.SITE_ID"
,
$val
, $match);
63
break
;
64
}
65
}
66
}
67
68
$strSqlSearch =
GetFilterSqlSearch
($arSqlSearch);
69
if
($by ==
"s_id"
) $strSqlOrder =
"ORDER BY H.ID"
;
70
elseif
($by ==
"s_site_id"
) $strSqlOrder =
"ORDER BY H.SITE_ID"
;
71
elseif
($by ==
"s_date_hit"
) $strSqlOrder =
"ORDER BY H.DATE_HIT"
;
72
elseif
($by ==
"s_searcher_id"
) $strSqlOrder =
"ORDER BY H.SEARCHER_ID"
;
73
elseif
($by ==
"s_user_agent"
) $strSqlOrder =
"ORDER BY H.USER_AGENT"
;
74
elseif
($by ==
"s_ip"
) $strSqlOrder =
"ORDER BY H.IP"
;
75
elseif
($by ==
"s_url"
) $strSqlOrder =
"ORDER BY H.URL "
;
76
else
77
{
78
$strSqlOrder =
"ORDER BY H.DATE_HIT"
;
79
}
80
81
if
(
$order
!=
"asc"
)
82
{
83
$strSqlOrder .=
" desc "
;
84
}
85
86
$strSql =
"
87
SELECT /*TOP*/
88
H.ID, H.SEARCHER_ID, H.URL, H.URL_404, H.IP, H.USER_AGENT, H.HIT_KEEP_DAYS, H.SITE_ID,
89
S.NAME SEARCHER_NAME,
90
"
.$DB->DateToCharFunction(
"H.DATE_HIT"
).
" DATE_HIT
91
FROM
92
b_stat_searcher_hit H
93
INNER JOIN b_stat_searcher S ON (S.ID = H.SEARCHER_ID)
94
WHERE
95
"
.$strSqlSearch.
"
96
"
.$strSqlOrder.
"
97
"
;
98
99
$res
=
$DB
->Query(
CStatistics::DBTopSql
($strSql));
100
101
return
$res
;
102
}
103
}
CSearcherHit
Определения
searcherhit.php:3
CSearcherHit\GetList
static GetList($by='s_date_hit', $order='desc', $arFilter=[])
Определения
searcherhit.php:4
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
$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
searcherhit.php
Создано системой
1.14.0