1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
searcherhit.php
См. документацию.
1<?php
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":
45 $arSqlSearch[] = "H.DATE_HIT >= ".$DB->CharToDateFunction($val, "SHORT");
46 break;
47 case "DATE2":
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}
Определения searcherhit.php:3
static GetList($by='s_date_hit', $order='desc', $arFilter=[])
Определения searcherhit.php:4
static DBTopSql($strSql, $nTopCount=false)
Определения statistic.php:628
</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
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
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
$arFilter
Определения user_search.php:106