1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
stat_tools.php
См. документацию.
1<?php
3
4// fix HTTP_REFERER, r1, r2 for google ads
5function __GoogleAd($set_new_adv=false, $r1=false, $r2=false, $s="http://pagead2.googlesyndication.com/")
6{
7 if ((!isset($_SESSION["SESS_SESSION_ID"]) || intval($_SESSION["SESS_SESSION_ID"])<=0) &&
8 isset($_SERVER["HTTP_REFERER"]) && $_SERVER["HTTP_REFERER"] <> '' &&
9 strncmp($s, $_SERVER["HTTP_REFERER"], mb_strlen($s))==0)
10 {
11 $arr = parse_url($_SERVER["HTTP_REFERER"]);
12 if ($arr["query"] <> '')
13 {
14 parse_str($arr["query"], $ar);
15 if ($ar["url"] <> '')
16 {
17 $_SERVER["HTTP_REFERER"] = $ar["url"];
18 if ($set_new_adv)
19 {
20 __SetReferer("referer1", "REFERER1_SYN");
21 __SetReferer("referer2", "REFERER2_SYN");
22 if ($_SESSION["referer1"] == '' && $_SESSION["referer2"] == '')
23 {
24 __GetReferringSite($protocol, $site_port, $site, $page, $_SERVER["HTTP_REFERER"]);
25 $_SESSION["referer1"] = ($r1!==false) ? $r1 : "google_adwords";
26 if ($r2!==false) $_SESSION["referer2"] = $r2;
27 else
28 {
29 $_ar = explode(".", $site);
30 if (is_array($_ar))
31 {
32 $_ar = array_reverse($_ar);
33 $_SESSION["referer2"] = $_ar[1].".".$_ar[0];
34 }
35 }
36 }
37 }
38 return true;
39 }
40 }
41 }
42 return false;
43}
44
45// returns referer site parameters
47 &$protocol, // http or https
48 &$server_name, // www.site.ru:7900
49 &$server_name_wo_port, // www.site.ru
50 &$PAGE_FROM, // page with out site (uri)
51 $URL_FROM = false
52 )
53{
54 if($URL_FROM === false)
55 $URL_FROM = $_SERVER["HTTP_REFERER"] ?? '';
56
57 if(!empty($URL_FROM))
58 {
59 $protocol = mb_substr($URL_FROM, 0, 7);
60 if($protocol == "http://")
61 {
62 $server_name = mb_substr($URL_FROM, 7);
63 }
64 else
65 {
66 $protocol = mb_substr($URL_FROM, 0, 8);
67 if($protocol == "https://")
68 {
69 $server_name = mb_substr($URL_FROM, 8);
70 }
71 else
72 {
73 $server_name = "";
74 $protocol = "";
75 }
76 }
77
78 if(!empty($server_name))
79 {
80 $p = mb_strpos($server_name, "/");
81 if($p > 0)
82 $server_name = mb_substr($server_name, 0, $p);
83
84 $server_name = mb_strtolower($server_name);
85
86 $p = mb_strpos($server_name, ":");
87 if($p > 0)
88 $server_name_wo_port = mb_substr($server_name, 0, $p);
89 else
90 $server_name_wo_port = $server_name;
91
92 $PAGE_FROM = mb_substr($URL_FROM, mb_strlen($protocol.$server_name));
93 if($PAGE_FROM == '')
94 $PAGE_FROM = "/";
95 }
96
97 return true;
98 }
99 else
100 {
101 return false;
102 }
103}
104
105// referer1 and referer2 initialization
106function __SetReferer($referer, $syn)
107{
108 stat_session_register($referer);
109 global ${$referer};
110 if (!isset($_SESSION[$referer]) || $_SESSION[$referer] == '')
111 {
112 $_SESSION[$referer] = ${$referer};
113 $arr=explode(",",COption::GetOptionString("statistic", $syn));
114 foreach ($arr as $s)
115 {
116 $s = trim($s);
117 global ${$s};
118 if (${$s} <> '')
119 {
120 $_SESSION[$referer] = ${$s};
121 break;
122 }
123 }
124 }
125}
126
128{
129 if (!isset($_SESSION["SESS_NO_KEEP_STATISTIC"]) || $_SESSION["SESS_NO_KEEP_STATISTIC"] == '')
130 {
131 $key_to_check = "no_keep_statistic_".LICENSE_KEY;
132 if (isset($_REQUEST[$key_to_check]) && $_REQUEST[$key_to_check] <> '')
133 {
134 $_SESSION["SESS_NO_KEEP_STATISTIC"] = $_REQUEST[$key_to_check];
135 if (!isset($_SESSION["SESS_NO_AGENT_STATISTIC"]) || $_SESSION["SESS_NO_AGENT_STATISTIC"] == '')
136 $_SESSION["SESS_NO_AGENT_STATISTIC"] = $_REQUEST[$key_to_check];
137 }
138 }
139
140 $key_to_check = "no_agent_statistic_".LICENSE_KEY;
141 if (isset($_REQUEST[$key_to_check]) && $_REQUEST[$key_to_check] <> '')
142 {
143 if (!isset($_SESSION["SESS_NO_AGENT_STATISTIC"]) || $_SESSION["SESS_NO_AGENT_STATISTIC"] == '')
144 $_SESSION["SESS_NO_AGENT_STATISTIC"] = $_REQUEST[$key_to_check];
145 }
146}
147
148function __SortLinkStat($ar1, $ar2)
149{
150 if ($ar1["CNT"]<$ar2["CNT"]) return 1;
151 if ($ar1["CNT"]>$ar2["CNT"]) return -1;
152 return 0;
153}
154
155function __IsHiddenLink($link)
156{
157 return preg_match("#(/bitrix/admin/|show_link_stat|bitrix_include_areas|logout|javascript)#", $link);
158}
159
161{
162
163 global $arHashLink;
164 $link = $matches[3];
165
166 if (mb_strlen($link) && !__IsHiddenLink($link) && !preg_match("/<img/i", $matches[0]))
167 {
168
170 $crc32 = crc32ex($link);
171 if(array_key_exists($crc32, $arHashLink))
172 {
173 $id = $arHashLink[$crc32]["ID"];
174 $percent = $arHashLink[$crc32]["PERCENT"]."%";
175 $cnt = $arHashLink[$crc32]["CNT"];
176 $link = $arHashLink[$crc32]["LINK"];
177
178 $title = str_replace("#CNT#", "$cnt", GetMessage("STAT_LABEL_TITLE"));
179 $title = str_replace("#LINK#", "$link", $title);
180 $title = str_replace("#PERCENT#", "$percent", $title);
181
182 $max_width = 44;
183 $wpx = round($max_width*($arHashLink[$crc32]["PERCENT"]/100.0));
184
185 $tag = '
186 <div style="position:relative; width:100%;">
187 <div style="position:relative; border:black solid 1px; color:#FC9C05; width:100%; padding: 0px;" onmouseover="this.style.color=\'#000000\';" onmouseout="this.style.color=\'#FC9C05\';">
188 '.$matches[0].'
189 </div>
190 <div title="'.$title.'" OnClick="this.style.display=\'none\'" style="position:relative; z-index: 1; top: 0px; right: 0px; padding: 1px; width:100%; height: auto;" align="left">
191 <table style="cursor:default; border:none; height:19px;" cellpadding="0" cellspacing="0" width="0%">
192 <tr>
193 <td style="padding:0px; border:none;">
194 <table style="border-collapse:collapse;" cellpadding="0" cellspacing="0" width="0%">
195 <tr>
196 <td rowspan="2" width="0%" valign="middle" align="center" style="border:#000000 solid 1px; background-color:#A8A8A8; padding-top:0px; padding-bottom:0px; padding-left:2px; padding-right:2px;"><font style="font-family:Verdana; font-weight:normal; font-size:9px; color:#FFFFFF"><b>'.$id.'</b></font></td>
197 <td align="center" width="0%" style="background-color:#FFFEE0; padding:0px; border:#000000 solid 1px;"><nobr><font style="font-family:Verdana; font-weight:normal; font-size:9px;"><font color="#000000">'.$percent.'</font></nobr><br><img src="/bitrix/images/1.gif" width="'.$max_width.'" height="1" border="0" alt=""></td>
198 </tr>
199 <tr>
200 <td style="padding:0px; border:#000000 solid 1px;background-color:#FFFFFF;"><span style="display:block; width:'.$wpx.'px; overflow:hidden"><img src="/bitrix/images/statistic/scale.gif" height="5" border="0" alt=""></span></td>
201 </tr>
202 </table>
203 </td>
204 </tr>
205 </table>
206 </div>
207 </div>
208 ';
209 return $tag;
210 }
211 }
212 return $matches[0];
213}
214
215function GetCookieString($arrCookie=false)
216{
217 $res = "";
218
219 if ($arrCookie===false)
220 $arrCookie = $_COOKIE;
221
222 if (is_array($arrCookie))
223 {
224 foreach($arrCookie as $key => $value)
225 $res .= "[".$key."] = ".$value."\n";
226 }
227
228 return $res;
229}
230
232{
233 if (CModule::IncludeModule("wacko"))
234 return CgeneralWacko::GetCurPage();
235 else
236 return __GetPage();
237}
238
239function __GetCurrentDir()
240{
242 global $APPLICATION;
243 if (CModule::IncludeModule("wacko"))
244 return CgeneralWacko::GetCurDir();
245 else
246 return $APPLICATION->GetCurDir();
247}
248
249function __GetPage($page=false, $with_imp_params=true, $curdir=false)
250{
251 if($page===false)
252 {
253 $page = $_SERVER["REQUEST_URI"];
254 $check_path = false;
255 }
256 else
257 {
258 $page = str_replace("\\","/",$page);
259 if(mb_substr($page, 0, 1) !== "/" && mb_strpos($page, "://") === false)
260 {
261 $curdir = ($curdir!==false) ? $curdir : __GetCurrentDir();
262 $page = Rel2Abs($curdir, $page);
263 }
264 $check_path = true;
265 }
266
267 $found = mb_strpos($page, "?");
268 $sPath = ($found? mb_substr($page, 0, $found) : $page);
269 if ($check_path)
270 {
271 $sPath = str_replace("\\","/",$sPath);
272 $last_char = mb_substr($sPath, -1);
273 if($last_char != "/" && @is_dir($_SERVER["DOCUMENT_ROOT"].$sPath))
274 $sPath .= "/";
275 }
276
277 if ($with_imp_params)
278 {
279 $arImpParams = array_map("trim", explode(",", COption::GetOptionString("statistic", "IMPORTANT_PAGE_PARAMS")));
280 $ar = @parse_url("".$page."");
281
282 $arVars = array();
283 if (isset($ar["query"]))
284 {
285 parse_str($ar["query"], $arVars);
286 foreach($arVars as $key => $value)
287 {
288 $key = str_replace("amp;", "", $key);
289 $arVars[$key] = $value;
290 }
291 }
292
293 $i = 0;
294 foreach($arImpParams as $key)
295 {
296 if (array_key_exists($key, $arVars) && !is_array($arVars[$key]))
297 {
298 if($i > 0)
299 $sPath .= "&";
300 else
301 $sPath .= "?";
302
303 $sPath .= urlencode($key)."=".urlencode($arVars[$key]);
304 $i++;
305 }
306 }
307 }
308
309 $ar = explode("?", $sPath);
310 if($ar[0] <> '')
311 {
312 $arTail = explode(",", COption::GetOptionString("statistic", "DIRECTORY_INDEX"));
313 foreach($arTail as $tail)
314 {
315 $tail = "/".trim($tail);
316 if(mb_substr($ar[0], -mb_strlen($tail)) == $tail)
317 {
318 $ar[0] = mb_substr($ar[0], 0, mb_strlen($ar[0]) - mb_strlen($tail) + 1);
319 break;
320 }
321 }
322 }
323
324 return implode("?", $ar);
325}
326
327function __GetFullCurPage($page=false, $with_imp_params=true)
328{
329 return __GetPage($page, $with_imp_params);
330}
331
332function __GetFullReferer($referer=false)
333{
334 if ($referer===false) $referer = $_SERVER["HTTP_REFERER"];
335 $referer = __GetPage($referer);
336 return $referer;
337}
338
339function __GetFullRequestUri($url=false, $host=false, $port=false, $protocol=false)
340{
341 global $HTTP_HOST, $SERVER_PORT, $APPLICATION;
342
343 if ($url===false) $url = $_SERVER["REQUEST_URI"] ?? '';
344 if ($host===false) $host = $_SERVER["HTTP_HOST"] ?? '';
345 if ($port===false) $port = $_SERVER["SERVER_PORT"] ?? 0;
346 if ($protocol===false) $protocol = CMain::IsHTTPS() ? "https" : "http";
347
348 $res = "";
349 $host_exists = (mb_strpos($url, "http://") === false && mb_strpos($url, "https://") === false) ? false : true;
350 if (!$host_exists)
351 {
352 if ($protocol <> '') $res = $protocol."://";
353 if ($host <> '') $res .= $host;
354 if (intval($port)>0 && intval($port)!=80 && intval($port)!=443 && mb_strpos($host, ":") === false) $res .= ":".$port;
355 }
356 if ($url <> '') $res .= $url;
357
358 if(mb_strpos($res, "/bitrix/admin/") !== false)
359 {
360 $res = str_replace("&mode=list", "", $res);
361 $res = str_replace("&mode=frame", "", $res);
362 }
363
364 return $res;
365}
366
367// returns base currency
369{
370 $base_currency = trim(COption::GetOptionString("statistic", "BASE_CURRENCY"));
371 if ($base_currency!="xxx" && $base_currency <> '')
372 {
373 if (CModule::IncludeModule("currency"))
374 {
376 }
377 }
378 return "";
379}
380
381function CleanUpResultCsv(&$item)
382{
383 $item = trim(trim($item), "\"");
384}
385
386function PrepareResultQuotes(&$item)
387{
388 $item = "\"".str_replace("\"","\"\"", $item)."\"";
389}
390
392 $csvfile, // CSV file name
393 $time_step, // one step duration
394 $next_line, // line number to start
395 &$step_processed, // number of lines handled
396 &$step_loaded, // loaded in one step
397 &$step_duplicate, // duplicates skipped in this step
398 $check_unique="Y", // check uniquness
399 $base_currency="", // module base currency
400 &$next_pos
401 )
402{
403 $all_loaded = "";
404 if ($fp = fopen($csvfile,"rb"))
405 {
406 if($next_pos>0) fseek($fp, $next_pos);
407 $start = microtime(true);
408 $next_line = intval($next_line);
409 $read_lines = 0;
410 $step_loaded = 0;
411 $step_processed = 0;
412 $step_duplicate = 0;
413 while (!feof($fp))
414 {
415 $arrCSV = fgetcsv($fp, 4096, ",");
416 if (is_array($arrCSV) && count($arrCSV)>0)
417 {
418 array_walk($arrCSV, "CleanUpResultCsv");
419
420 $read_lines++;
421
422 $step_processed++;
423
424 $EVENT_ID = $arrCSV[0];
425 $EVENT3 = $arrCSV[1];
426 $DATE_ENTER = $arrCSV[2];
427 $PARAMETER = $arrCSV[3];
428 $MONEY = floatval($arrCSV[4]);
429 $CURRENCY = $arrCSV[5];
430 $CHARGEBACK = $arrCSV[6];
431 $RES_MONEY = $MONEY;
432 $EVENT_ID = intval($EVENT_ID);
433 $CHARGEBACK = ($CHARGEBACK=="Y") ? "Y" : "N";
434 if ($EVENT_ID>0)
435 {
436 if ($base_currency == '')
437 {
439 }
440 if ($base_currency <> '')
441 {
442 if ($CURRENCY!=$base_currency && trim($CURRENCY) <> '')
443 {
444 if (CModule::IncludeModule("currency"))
445 {
446 $stmp = MkDateTime(ConvertDateTime($DATE_ENTER,"D.M.Y H:I:S"),"d.m.Y H:i:s");
447 $valDate = date("Y-m-d", $stmp);
449 if ($rate>0) $RES_MONEY = $MONEY * $rate;
450 }
451 }
452 }
453 $RES_MONEY = round($RES_MONEY,2);
454 $add_event="Y";
455 if ($check_unique=="Y")
456 {
457 $arr = CStatEvent::DecodeGID($PARAMETER);
459 "EVENT_ID" => $EVENT_ID,
460 "EVENT3" => $EVENT3,
461 "DATE" => $DATE_ENTER,
462 "SESSION_ID" => $arr["SESSION_ID"],
463 "GUEST_ID" => $arr["GUEST_ID"],
464 "COUNTRY_ID" => $arr["COUNTRY_ID"],
465 "ADV_ID" => $arr["ADV_ID"],
466 "ADV_BACK" => $arr["ADV_BACK"],
467 "SITE_ID" => $arr["SITE_ID"],
468 );
470 if ($arEvent = $rsEvents->Fetch())
471 {
472 $add_event="N";
473 $step_duplicate++;
474 }
475 }
476 if ($add_event=="Y")
477 {
478 CStatEvent::AddByID($EVENT_ID, $EVENT3, $DATE_ENTER, $PARAMETER, $RES_MONEY, "", $CHARGEBACK);
479 $step_loaded++;
480 }
481 $end = microtime(true);
482 if (intval($time_step)>0 && ($end-$start)>intval($time_step))
483 {
484 $all_loaded = "N";
485 break;
486 }
487 }
488 }
489 }
490 if($all_loaded=="N")
491 $next_pos=ftell($fp);
492 else
493 $next_pos=0;
494 @fclose($fp);
495 if ($all_loaded!="N")
496 {
497 $all_loaded = "Y";
498 @unlink($csvfile);
499 }
500 }
501 return $all_loaded;
502}
503
504function GetStatPathID($URL, $PREV_PATH_ID="")
505{
506 return crc32ex($URL.strval($PREV_PATH_ID));
507}
508
509function stat_session_register($var_name)
510{
511 static $arrSTAT_SESSION = array();
512 if($var_name === false)
513 {
514 foreach($arrSTAT_SESSION as $key => $value)
515 {
516 unset($GLOBALS[$key]);
517 unset($_SESSION[$key]);
518 }
519 $arrSTAT_SESSION = array();
520 }
521 elseif($var_name === true)
522 {
523 foreach($arrSTAT_SESSION as $key => $value)
524 $arrSTAT_SESSION[$key] = $_SESSION[$key] ?? '';
525 return $arrSTAT_SESSION;
526 }
527 else
528 {
529 $arrSTAT_SESSION[$var_name] = 0;
530 }
531 return null;
532}
533
535{
536 $md5 = md5(
537 ($_SERVER["HTTP_USER_AGENT"] ?? '') .
538 $_SERVER["REMOTE_ADDR"] .
539 ($_SERVER["HTTP_X_FORWARDED_FOR"] ?? '')
540 );
541 return $md5;
542}
543
545{
546 return GetStatGroupSiteID();
547}
548
550{
551 $site_id = COption::GetOptionString("statistic", "EVENT_GID_SITE_ID");
552 return $site_id;
553}
554
556{
558 if ((!isset($_SESSION["SESS_NO_AGENT_STATISTIC"]) || $_SESSION["SESS_NO_AGENT_STATISTIC"] != "Y") && !defined("NO_AGENT_STATISTIC"))
559 {
560 global $MESS;
561
562 $rsSite = CSite::GetDefList();
563 $arSite = $rsSite->Fetch();
564 $charset = $arSite["CHARSET"];
565
566 $now_full_date = GetTime(time(), "FULL", $arSite["ID"], true);
567 $now_date = GetTime(time(), "SHORT", $arSite["ID"], true);
568 $yesterday_date = GetTime(time()-86400, "SHORT", $arSite["ID"], true);
569 $bef_yesterday_date = GetTime(time()-172800, "SHORT", $arSite["ID"], true);
570
571 $arComm = CTraffic::GetCommonValues();
572 $adv = CAdv::GetList();
573 $events = CStatEventType::GetList("s_stat", "desc");
574 $referers = CTraffic::GetRefererList();
575 $phrases = CTraffic::GetPhraseList();
576 $searchers = CSearcher::GetList("s_stat", "desc");
577
578 $OLD_MESS = $MESS;
579 $MESS = array();
580 IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/statistic/include.php", $arSite["LANGUAGE_ID"]);
581 IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/statistic/admin/stat_list.php", $arSite["LANGUAGE_ID"]);
582
583 $HTML_HEADER = '
584 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
585 <html>
586 <head>
587 <meta http-equiv="Content-Type" content="text/html; charset='.$charset.'">
588 <style>
589 .tablehead1 {background-color:#C2DBED; padding:2px; border-top: 1px solid #A8C2D7; border-bottom: 1px solid #A8C2D7; border-left: 1px solid #A8C2D7;}
590 .tablehead2 {background-color:#C2DBED; padding:2px; border-top: 1px solid #A8C2D7; border-bottom: 1px solid #A8C2D7;}
591 .tablehead3 {background-color:#C2DBED; padding:2px; border-top: 1px solid #A8C2D7; border-bottom: 1px solid #A8C2D7; border-right: 1px solid #A8C2D7;}
592 .tablebody1 {background-color:#F0F1F2; padding:2px; border-left:#B9D3E6 solid 1px; border-bottom:#B9D3E6 solid 1px;}
593 .tablebody2 {background-color:#F0F1F2; padding:2px; border-bottom:#B9D3E6 solid 1px;}
594 .tablebody3 {background-color:#F0F1F2; padding:2px; border-right:#B9D3E6 solid 1px; border-bottom:#B9D3E6 solid 1px;}
595 .tablebodytext {font-family: Arial, Helvetica, sans-serif; font-size:12px; color:#000000;}
596 .tableheadtext {font-family: Arial, Helvetica, sans-serif; font-size:12px; color:#000000;}
597 .tablelinebottom {border-bottom:1pt solid #D1D1D1}
598 .notesmall {font-family: Arial, Helvetica, sans-serif; font-size:11px; color:#008400; font-weight:normal;}
599 .tablebody1_sel {background-color:#E0EBF1; padding:2px; border-left:#B9D3E6 solid 1px; border-bottom:#B9D3E6 solid 1px;}
600 .tablebody2_sel {background-color:#E0EBF1; padding:2px; border-bottom:#B9D3E6 solid 1px;}
601 .tablebody3_sel {background-color:#E0EBF1; padding:2px; border-right:#B9D3E6 solid 1px; border-bottom:#B9D3E6 solid 1px;}
602 </style>
603 </head>
604 <body bgcolor="FFFFFF" leftmargin="2" topmargin="2" marginwidth="2" marginheight="2">
605 ';
606
607 $HTML_COMMON = '
608 <table border="0" cellspacing="1" cellpadding="3" width="100%">
609 <tr>
610 <td valign="top" align="center" class="tablehead1" width="48%" nowrap><font class="tableheadtext">'.GetMessage("STAT_VISIT").'</font></td>
611 <td valign="top" align="center" class="tablehead2" width="13%" nowrap><font class="tableheadtext">'.GetMessage("STAT_TODAY").'</font><br><font class="notesmall">'.$now_date.'</font></td>
612 <td valign="top" align="center" class="tablehead2" width="13%" nowrap><font class="tableheadtext">'.GetMessage("STAT_YESTERDAY").'</font><br><font class="notesmall">'.$yesterday_date.'</font></td>
613 <td valign="top" align="center" class="tablehead2" width="13%" nowrap><font class="tableheadtext">'.GetMessage("STAT_BEFORE_YESTERDAY").'</font><br><font class="notesmall">'.$bef_yesterday_date.'</font></td>
614 <td valign="top" align="center" class="tablehead3" width="13%" nowrap><font class="tableheadtext">'.GetMessage("STAT_TOTAL_1").'</font></td>
615 </tr>
616 <tr valign="top">
617 <td valign="top" class="tablebody1" width="48%" nowrap><font class="tablebodytext">'.GetMessage("STAT_HITS").'</font></td>
618 <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">'.$arComm["TODAY_HITS"].'</font></td>
619 <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">'.$arComm["YESTERDAY_HITS"].'</font></td>
620 <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">'.$arComm["B_YESTERDAY_HITS"].'</font></td>
621 <td valign="top" align="right" class="tablebody3" width="13%" nowrap><font class="tablebodytext">'.$arComm["TOTAL_HITS"].'&nbsp;&nbsp;</font></td>
622 </tr>
623 <tr valign="top">
624 <td valign="top" class="tablebody1" width="48%" nowrap><font class="tablebodytext">'.GetMessage("STAT_HOSTS").'</font></td>
625 <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">'.$arComm["TODAY_HOSTS"].'</font></td>
626 <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">'.$arComm["YESTERDAY_HOSTS"].'</font></td>
627 <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">'.$arComm["B_YESTERDAY_HOSTS"].'</font></td>
628 <td valign="top" align="right" class="tablebody3" width="13%" nowrap><font class="tablebodytext">'.$arComm["TOTAL_HOSTS"].'&nbsp;&nbsp;</font></td>
629 </tr>
630 <tr valign="top">
631 <td valign="top" class="tablebody1" width="48%" nowrap><font class="tablebodytext">'.GetMessage("STAT_SESSIONS").'</font></td>
632 <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">'.$arComm["TODAY_SESSIONS"].'</font></td>
633 <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">'.$arComm["YESTERDAY_SESSIONS"].'</font></td>
634 <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">'.$arComm["B_YESTERDAY_SESSIONS"].'</font></td>
635 <td valign="top" align="right" class="tablebody3" width="13%" nowrap><font class="tablebodytext">'.$arComm["TOTAL_SESSIONS"].'&nbsp;&nbsp;</font></td>
636 </tr>
637 <tr valign="top">
638 <td valign="top" class="tablebody1" width="48%" nowrap><font class="tablebodytext">'.GetMessage("STAT_C_EVENTS").'</font></td>
639 <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">'.$arComm["TODAY_EVENTS"].'</font></td>
640 <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">'.$arComm["YESTERDAY_EVENTS"].'</font></td>
641 <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">'.$arComm["B_YESTERDAY_EVENTS"].'</font></td>
642 <td valign="top" align="right" class="tablebody3" width="13%" nowrap><font class="tablebodytext">'.$arComm["TOTAL_EVENTS"].'&nbsp;&nbsp;</font></td>
643 </tr>
644 <tr valign="top">
645 <td valign="top" class="tablebody1" width="48%" nowrap>
646 <table border="0" cellspacing="0" cellpadding="0" width="100%">
647 <tr>
648 <td width="100%"><font class="tablebodytext">'.GetMessage("STAT_GUESTS").'</font></td>
649 <td width="0%" align="right" class="tablelinebottom" nowrap><font class="tablebodytext">'.GetMessage("STAT_TOTAL").'</font></td>
650 </tr>
651 <tr>
652 <td></td>
653 <td class="tablelinebottom" align="right" nowrap><font class="tablebodytext">'.GetMessage("STAT_NEW").'</font></td>
654 </tr>
655 <tr>
656 <td></td>
657 <td align="right" nowrap><font class="tablebodytext">'.GetMessage("STAT_ONLINE").'</font></td>
658 </tr>
659 </table></td>
660 <td valign="top" align="right" class="tablebody2" width="13%" nowrap>
661 <table cellspacing=0 cellpadding=0 width="100%">
662 <tr><td class="tablelinebottom" align="right" width="100%"><font class="tablebodytext">'.$arComm["TODAY_GUESTS"].'</font></td></tr>
663 <tr><td class="tablelinebottom" align="right"><font class="tablebodytext">'.$arComm["TODAY_NEW_GUESTS"].'</font></td></tr>
664 <tr><td align="right"><font class="tablebodytext">'.$arComm["ONLINE_GUESTS"].'</font></td></tr>
665 </table></td>
666 <td valign="top" align="right" class="tablebody2" width="13%" nowrap>
667 <table cellspacing=0 cellpadding=0 width="100%">
668 <tr><td class="tablelinebottom" align="right" width="100%"><font class="tablebodytext">'.$arComm["YESTERDAY_GUESTS"].'</font></td></tr>
669 <tr><td class="tablelinebottom" align="right"><font class="tablebodytext">'.$arComm["YESTERDAY_NEW_GUESTS"].'</font></td></tr>
670 </table></td>
671 <td valign="top" align="right" class="tablebody2" width="13%" nowrap>
672 <table cellspacing=0 cellpadding=0 width="100%">
673 <tr><td align="right" class="tablelinebottom" width="100%"><font class="tablebodytext">'.$arComm["B_YESTERDAY_GUESTS"].'</font></td></tr>
674 <tr><td class="tablelinebottom" align="right"><font class="tablebodytext">'.$arComm["B_YESTERDAY_NEW_GUESTS"].'</font></td></tr>
675 </table></td>
676 <td valign="top" align="right" class="tablebody3" width="13%" nowrap>
677 <table cellspacing=0 cellpadding=0 width="100%">
678 <tr><td class="tablelinebottom" align="right" width="100%"><font class="tablebodytext">'.$arComm["TOTAL_GUESTS"].'&nbsp;&nbsp;</font></td></tr>
679 <tr><td class="tablelinebottom" align="right"><font class="tablebodytext">&nbsp;</font></td></tr>
680 </table></td>
681 </tr>
682 </table>
683 </td>
684 </tr>
685 </table>
686 ';
687
688 $HTML_ADV = '
689 <font class="tablebodytext">'.GetMessage("STAT_ADV").' ('.GetMessage("STAT_DIRECT_SESSIONS").') (Top 10):</font><br>
690 <table border="0" cellspacing="1" cellpadding="3" width="100%">
691 <tr>
692 <td valign="top" align="center" class="tablehead1" width="48%" nowrap><font class="tableheadtext">'.GetMessage("STAT_ADV_NAME").'</font></td>
693 <td valign="top" align="center" class="tablehead2" width="13%" nowrap><font class="tableheadtext">'.GetMessage("STAT_TODAY").'</font><br><font class="notesmall">'.$now_date.'</font></td>
694 <td valign="top" align="center" class="tablehead2" width="13%" nowrap><font class="tableheadtext">'.GetMessage("STAT_YESTERDAY").'</font><br><font class="notesmall">'.$yesterday_date.'</font></td>
695 <td valign="top" align="center" class="tablehead2" width="13%" nowrap><font class="tableheadtext">'.GetMessage("STAT_BEFORE_YESTERDAY").'</font><br><font class="notesmall">'.$bef_yesterday_date.'</font></td>
696 <td valign="top" align="center" class="tablehead3" width="13%" nowrap><font class="tableheadtext">'.GetMessage("STAT_TOTAL_1").'</font></td>
697 </tr>
698 ';
699 $i = 0;
700 $total_SESSIONS_TODAY = 0;
701 $total_SESSIONS_YESTERDAY = 0;
702 $total_SESSIONS_BEF_YESTERDAY = 0;
703 $total_SESSIONS = 0;
704 while ($ar = $adv->Fetch()) :
705 $i++;
706 $total_SESSIONS_TODAY += $ar["SESSIONS_TODAY"];
707 $total_SESSIONS_YESTERDAY += $ar["SESSIONS_YESTERDAY"];
708 $total_SESSIONS_BEF_YESTERDAY += $ar["SESSIONS_BEF_YESTERDAY"];
709 $total_SESSIONS += $ar["SESSIONS"];
710 if ($i<=10) :
711 $HTML_ADV .= '
712 <tr>
713 <td valign="top" class="tablebody1"><font class="tablebodytext">['.$ar["ID"].']&nbsp;'.$ar["REFERER1"].'&nbsp;/&nbsp;'.$ar["REFERER2"].'</font></td>
714 <td valign="top" align="right" class="tablebody2"><font class="tablebodytext">&nbsp;'.($ar["SESSIONS_TODAY"]>0 ? $ar["SESSIONS_TODAY"] : "&nbsp;").'</font></td>
715 <td valign="top" align="right" class="tablebody2"><font class="tablebodytext">&nbsp;'.($ar["SESSIONS_YESTERDAY"]>0 ? $ar["SESSIONS_YESTERDAY"] : "&nbsp;").'</font></td>
716 <td valign="top" align="right" class="tablebody2"><font class="tablebodytext">&nbsp;'.($ar["SESSIONS_BEF_YESTERDAY"]>0 ? $ar["SESSIONS_BEF_YESTERDAY"] : "&nbsp;").'</font></td>
717 <td valign="top" align="right" class="tablebody3"><font class="tablebodytext">&nbsp;'.($ar["SESSIONS"]>0 ? $ar["SESSIONS"] : "&nbsp;").'</font></td>
718 </tr>
719 ';
720 endif;
721 endwhile;
722 $HTML_ADV .= '
723 <tr>
724 <td valign="top" align="right" class="tablebody1_sel" style="padding:3px"><font class="tablebodytext">'.GetMessage("STAT_TOTAL").'</font></td>
725 <td valign="top" align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">&nbsp;'.($total_SESSIONS_TODAY>0 ? $total_SESSIONS_TODAY : "&nbsp;").'</font></td>
726 <td valign="top" align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">&nbsp;'.($total_SESSIONS_YESTERDAY>0 ? $total_SESSIONS_YESTERDAY : "&nbsp;").'</font></td>
727 <td valign="top" align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">&nbsp;'.($total_SESSIONS_BEF_YESTERDAY>0 ? $total_SESSIONS_BEF_YESTERDAY : "&nbsp;").'</font></td>
728 <td valign="top" align="right" class="tablebody3_sel" style="padding:3px"><font class="tablebodytext">&nbsp;'.($total_SESSIONS>0 ? $total_SESSIONS : "&nbsp;").'</font></td>
729 </table>
730 ';
731
732 $HTML_EVENTS = '
733 <font class="tablebodytext">'.GetMessage("STAT_EVENTS_2").' (Top 10):</font><br>
734 <table border="0" cellspacing="1" cellpadding="3" width="100%">
735 <tr>
736 <td valign="top" align="center" class="tablehead1" width="48%" nowrap><font class="tableheadtext">'.GetMessage("STAT_EVENT").'</font></td>
737 <td valign="top" align="center" class="tablehead2" width="13%" nowrap>
738 <font class="tablebodytext">'.GetMessage("STAT_TODAY").'</font><br><font class="notesmall">'.$now_date.'</font></td>
739 <td valign="top" align="center" class="tablehead2" width="13%" nowrap>
740 <font class="tablebodytext">'.GetMessage("STAT_YESTERDAY").'</font><br><font class="notesmall">'.$yesterday_date.'</font></td>
741 <td valign="top" align="center" class="tablehead2" width="13%" nowrap>
742 <font class="tablebodytext">'.GetMessage("STAT_BEFORE_YESTERDAY").'</font><br><font class="notesmall">'.$bef_yesterday_date.'</font></td>
743 <td valign="top" align="center" class="tablehead3" width="13%" nowrap>
744 <font class="tablebodytext">'.GetMessage("STAT_TOTAL_1").'</font></td>
745 </tr>
746 ';
747 $i = 0;
748 $total_TODAY_COUNTER = 0;
749 $total_YESTERDAY_COUNTER = 0;
750 $total_B_YESTERDAY_COUNTER = 0;
751 $total_TOTAL_COUNTER = 0;
752 while ($er = $events->Fetch()) :
753 $i++;
754 $total_TODAY_COUNTER += intval($er["TODAY_COUNTER"]);
755 $total_YESTERDAY_COUNTER += intval($er["YESTERDAY_COUNTER"]);
756 $total_B_YESTERDAY_COUNTER += intval($er["B_YESTERDAY_COUNTER"]);
757 $total_TOTAL_COUNTER += intval($er["TOTAL_COUNTER"]);
758 if ($i<=10) :
759 $HTML_EVENTS .= '
760 <tr valign="top">
761 <td valign="top" class="tablebody1" width="0%" nowrap><font class="tablebodytext">'.$er["EVENT"].'</font></td>
762 <td valign="top" align="right" class="tablebody2" width="0%" nowrap><font class="tablebodytext">'.($er["TODAY_COUNTER"]>0 ? $er["TODAY_COUNTER"] : "&nbsp;").'</font></td>
763 <td valign="top" align="right" class="tablebody2" width="0%" nowrap><font class="tablebodytext">'.($er["YESTERDAY_COUNTER"]>0 ? $er["YESTERDAY_COUNTER"] : "&nbsp;").'</font></td>
764 <td valign="top" align="right" class="tablebody2" width="0%" nowrap><font class="tablebodytext">'.($er["B_YESTERDAY_COUNTER"]>0 ? $er["B_YESTERDAY_COUNTER"] : "&nbsp;").'</font></td>
765 <td valign="top" align="right" class="tablebody3" width="0%" nowrap><font class="tablebodytext">'.($er["TOTAL_COUNTER"]>0 ? $er["TOTAL_COUNTER"] : "&nbsp;").'</font></td>
766 </tr>
767 ';
768 endif;
769 endwhile;
770 $HTML_EVENTS .= '
771 <tr valign="top">
772 <td align="right" class="tablebody1_sel" style="padding:3px"><font class="tablebodytext">'.GetMessage("STAT_TOTAL").'</font></td>
773 <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">'.($total_TODAY_COUNTER>0 ? $total_TODAY_COUNTER : "&nbsp;").'</font></td>
774 <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">'.($total_YESTERDAY_COUNTER>0 ? $total_YESTERDAY_COUNTER : "&nbsp;").'</font></td>
775 <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">'.($total_B_YESTERDAY_COUNTER>0 ? $total_B_YESTERDAY_COUNTER : "&nbsp;").'</font></td>
776 <td align="right" class="tablebody3_sel" style="padding:3px"><font class="tablebodytext">'.($total_TOTAL_COUNTER>0 ? $total_TOTAL_COUNTER : "&nbsp;").'</font></td>
777 </table>
778 ';
779
780 $HTML_REFERERS = '
781 <font class="tablebodytext">'.GetMessage("STAT_REFERERS").' (Top 10):</font><br>
782 <table border="0" cellspacing="1" cellpadding="3" width="100%">
783 <tr>
784 <td valign="top" align="center" class="tablehead1" width="48%" nowrap><font class="tableheadtext">'.GetMessage("STAT_SERVER").'</font></td>
785 <td valign="top" align="center" class="tablehead2" width="13%" nowrap><font class="tablebodytext">'.GetMessage("STAT_TODAY").'</font><br><font class="notesmall">'.$now_date.'</font></td>
786 <td valign="top" align="center" class="tablehead2" width="13%" nowrap><font class="tablebodytext">'.GetMessage("STAT_YESTERDAY").'</font><br><font class="notesmall">'.$yesterday_date.'</font></td>
787 <td valign="top" align="center" class="tablehead2" width="13%" nowrap><font class="tablebodytext">'.GetMessage("STAT_BEFORE_YESTERDAY").'</font><br><font class="notesmall">'.$bef_yesterday_date.'</font></td>
788 <td valign="top" align="center" class="tablehead3" width="13%" nowrap><font class="tablebodytext">'.GetMessage("STAT_TOTAL_1").'</font></td>
789 </tr>
790 ';
791 $i = 0;
792 $total_TODAY_REFERERS = 0;
793 $total_YESTERDAY_REFERERS = 0;
794 $total_B_YESTERDAY_REFERERS = 0;
795 $total_TOTAL_REFERERS = 0;
796 while ($rr = $referers->Fetch()) :
797 $i++;
798 $total_TODAY_REFERERS += $rr["TODAY_REFERERS"];
799 $total_YESTERDAY_REFERERS += $rr["YESTERDAY_REFERERS"];
800 $total_B_YESTERDAY_REFERERS += $rr["B_YESTERDAY_REFERERS"];
801 $total_TOTAL_REFERERS += $rr["TOTAL_REFERERS"];
802 if ($i<=10) :
803 $HTML_REFERERS .= '
804 <tr>
805 <td valign="top" class="tablebody1" nowrap><font class="tablebodytext">'.$rr["SITE_NAME"].'</font></td>
806 <td align="right" class="tablebody2"><font class="tablebodytext">'.($rr["TODAY_REFERERS"]>0 ? $rr["TODAY_REFERERS"] : "&nbsp;").'</font></td>
807 <td align="right" class="tablebody2"><font class="tablebodytext">'.($rr["YESTERDAY_REFERERS"]>0 ? $rr["YESTERDAY_REFERERS"] : "&nbsp;").'</font></td>
808 <td align="right" class="tablebody2"><font class="tablebodytext">'.($rr["B_YESTERDAY_REFERERS"]>0 ? $rr["B_YESTERDAY_REFERERS"] : "&nbsp;").'</font></td>
809 <td align="right" class="tablebody3"><font class="tablebodytext">'.($rr["TOTAL_REFERERS"]>0 ? $rr["TOTAL_REFERERS"] : "&nbsp;").'</font></td>
810 </tr>
811 ';
812 endif;
813 endwhile;
814 $HTML_REFERERS .= '
815 <tr valign="top">
816 <td align="right" class="tablebody1_sel" style="padding:3px"><font class="tablebodytext">'.GetMessage("STAT_TOTAL").'</font></td>
817 <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">'.($total_TODAY_REFERERS>0 ? $total_TODAY_REFERERS : "&nbsp;").'</font></td>
818 <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">'.($total_YESTERDAY_REFERERS>0 ? $total_YESTERDAY_REFERERS : "&nbsp;").'</font></td>
819 <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">'.($total_B_YESTERDAY_REFERERS>0 ? $total_B_YESTERDAY_REFERERS : "&nbsp;").'</font></td>
820 <td align="right" class="tablebody3_sel" style="padding:3px"><font class="tablebodytext">'.($total_TOTAL_REFERERS>0 ? $total_TOTAL_REFERERS : "&nbsp;").'</font></td>
821 </table>
822 ';
823
824 $HTML_PHRASES = '
825 <font class="tablebodytext">'.GetMessage("STAT_PHRASES").' (Top 10):</font><br>
826 <table border="0" cellspacing="1" cellpadding="3" width="100%">
827 <tr>
828 <td valign="top" align="center" class="tablehead1" width="48%" nowrap><font class="tableheadtext">'.GetMessage("STAT_PHRASE").'</td>
829 <td valign="top" align="center" class="tablehead2" width="13%" nowrap><font class="tablebodytext">'.GetMessage("STAT_TODAY").'</font><br><font class="notesmall">'.$now_date.'</font></td>
830 <td valign="top" align="center" class="tablehead2" width="13%" nowrap><font class="tablebodytext">'.GetMessage("STAT_YESTERDAY").'</font><br><font class="notesmall">'.$yesterday_date.'</font></td>
831 <td valign="top" align="center" class="tablehead2" width="13%" nowrap><font class="tablebodytext">'.GetMessage("STAT_BEFORE_YESTERDAY").'</font><br><font class="notesmall">'.$bef_yesterday_date.'</font></td>
832 <td valign="top" align="center" class="tablehead3" width="13%" nowrap><font class="tablebodytext">'.GetMessage("STAT_TOTAL_1").'</font></td>
833 </tr>
834 ';
835 $i = 0;
836 $total_TODAY_PHRASES = 0;
837 $total_YESTERDAY_PHRASES = 0;
838 $total_B_YESTERDAY_PHRASES = 0;
839 $total_TOTAL_PHRASES = 0;
840 while ($pr = $phrases->GetNext()) :
841 $i++;
842 $total_TODAY_PHRASES += $pr["TODAY_PHRASES"];
843 $total_YESTERDAY_PHRASES += $pr["YESTERDAY_PHRASES"];
844 $total_B_YESTERDAY_PHRASES += $pr["B_YESTERDAY_PHRASES"];
845 $total_TOTAL_PHRASES += $pr["TOTAL_PHRASES"];
846 if ($i<=10) :
847 $HTML_PHRASES .= '
848 <tr valign="top">
849 <td valign="top" class="tablebody1" width="0%" nowrap><font class="tablebodytext">'.TruncateText($pr["PHRASE"],50).'</font></td>
850 <td align="right" class="tablebody2"><font class="tablebodytext">'.($pr["TODAY_PHRASES"]>0 ? $pr["TODAY_PHRASES"] : "&nbsp;").'</font></td>
851 <td align="right" class="tablebody2"><font class="tablebodytext">'.($pr["YESTERDAY_PHRASES"]>0 ? $pr["YESTERDAY_PHRASES"] : "&nbsp;").'</font></td>
852 <td align="right" class="tablebody2"><font class="tablebodytext">'.($pr["B_YESTERDAY_PHRASES"]>0 ? $pr["B_YESTERDAY_PHRASES"] : "&nbsp;").'</font></td>
853 <td align="right" class="tablebody3"><font class="tablebodytext">'.($pr["TOTAL_PHRASES"]>0 ? $pr["TOTAL_PHRASES"] : "&nbsp;").'</font></td>
854 </tr>
855 ';
856 endif;
857 endwhile;
858 $HTML_PHRASES .= '
859 <tr valign="top">
860 <td align="right" class="tablebody1_sel" style="padding:3px"><font class="tablebodytext">'.GetMessage("STAT_TOTAL").'</font></td>
861 <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">'.($total_TODAY_PHRASES>0 ? $total_TODAY_PHRASES : "&nbsp;").'</font></td>
862 <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">'.($total_YESTERDAY_PHRASES>0 ? $total_YESTERDAY_PHRASES : "&nbsp;").'</font></td>
863 <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">'.($total_B_YESTERDAY_PHRASES>0 ? $total_B_YESTERDAY_PHRASES : "&nbsp;").'</font></td>
864 <td align="right" class="tablebody3_sel" style="padding:3px"><font class="tablebodytext">'.($total_TOTAL_PHRASES>0 ? $total_TOTAL_PHRASES : "&nbsp;").'</font></td>
865 </table>
866 ';
867
868 $HTML_SEARCHERS = '
869 <font class="tablebodytext">'.GetMessage("STAT_SITE_INDEXING").' (Top 10):</font><br>
870 <table border="0" cellspacing="1" cellpadding="3" width="100%">
871 <tr>
872 <td valign="top" align="center" class="tablehead1" width="48%" nowrap><font class="tableheadtext">'.GetMessage("STAT_SEARCHER").'</font></td>
873 <td valign="top" align="center" class="tablehead2" width="13%" nowrap><font class="tablebodytext">'.GetMessage("STAT_TODAY").'</font><br><font class="notesmall">'.$now_date.'</font></td>
874 <td valign="top" align="center" class="tablehead2" width="13%" nowrap><font class="tablebodytext">'.GetMessage("STAT_YESTERDAY").'</font><br><font class="notesmall">'.$yesterday_date.'</font></td>
875 <td valign="top" align="center" class="tablehead2" width="13%" nowrap><font class="tablebodytext">'.GetMessage("STAT_BEFORE_YESTERDAY").'</font><br><font class="notesmall">'.$bef_yesterday_date.'</font></td>
876 <td valign="top" align="center" class="tablehead3" width="13%" nowrap><font class="tablebodytext">'.GetMessage("STAT_TOTAL_1").'</font></td>
877 </tr>
878 ';
879 $i = 0;
880 $total_TODAY_HITS = 0;
881 $total_YESTERDAY_HITS = 0;
882 $total_B_YESTERDAY_HITS = 0;
883 $total_TOTAL_HITS = 0;
884 while ($fr = $searchers->Fetch()) :
885 $i++;
886 $total_TODAY_HITS += $fr["TODAY_HITS"];
887 $total_YESTERDAY_HITS += $fr["YESTERDAY_HITS"];
888 $total_B_YESTERDAY_HITS += $fr["B_YESTERDAY_HITS"];
889 $total_TOTAL_HITS += $fr["TOTAL_HITS"];
890 if ($i<=10) :
891 $HTML_SEARCHERS .= '
892 <tr valign="top">
893 <td valign="top" class="tablebody1" width="0%" nowrap><font class="tablebodytext">'.$fr["NAME"].'</font></td>
894 <td align="right" class="tablebody2"><font class="tablebodytext">'.($fr["TODAY_HITS"]>0 ? $fr["TODAY_HITS"] : "&nbsp;").'</font></td>
895 <td align="right" class="tablebody2"><font class="tablebodytext">'.($fr["YESTERDAY_HITS"]>0 ? $fr["YESTERDAY_HITS"] : "&nbsp;").'</font></td>
896 <td align="right" class="tablebody2"><font class="tablebodytext">'.($fr["B_YESTERDAY_HITS"]>0 ? $fr["B_YESTERDAY_HITS"] : "&nbsp;").'</font></td>
897 <td align="right" class="tablebody3"><font class="tablebodytext">'.($fr["TOTAL_HITS"]>0 ? $fr["TOTAL_HITS"] : "&nbsp;").'</font></td>
898 </tr>
899 ';
900 endif;
901 endwhile;
902 $HTML_SEARCHERS .= '
903 <tr valign="top">
904 <td align="right" class="tablebody1_sel" style="padding:3px"><font class="tablebodytext">'.GetMessage("STAT_TOTAL").'</font></td>
905 <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">'.($total_TODAY_HITS>0 ? $total_TODAY_HITS : "&nbsp;").'</font></td>
906 <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">'.($total_YESTERDAY_HITS>0 ? $total_YESTERDAY_HITS : "&nbsp;").'</font></td>
907 <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">'.($total_B_YESTERDAY_HITS>0 ? $total_B_YESTERDAY_HITS : "&nbsp;").'</font></td>
908 <td align="right" class="tablebody3_sel" style="padding:3px"><font class="tablebodytext">'.($total_TOTAL_HITS>0 ? $total_TOTAL_HITS : "&nbsp;").'</font></td>
909 </table>
910 ';
911
912 $HTML_FOOTER = '
913 </body>
914 </html>
915 ';
916
917 $arEventFields = array(
918 "SERVER_TIME" => $now_full_date,
919 "HTML_HEADER" => $HTML_HEADER,
920 "HTML_FOOTER" => $HTML_FOOTER,
921 "HTML_COMMON" => $HTML_COMMON,
922 "HTML_ADV" => $HTML_ADV,
923 "HTML_EVENTS" => $HTML_EVENTS,
924 "HTML_REFERERS" => $HTML_REFERERS,
925 "HTML_PHRASES" => $HTML_PHRASES,
926 "HTML_SEARCHERS" => $HTML_SEARCHERS,
927 "EMAIL_TO" => COption::GetOptionString("main", "email_from", "")
928 );
929
930 /*
931 echo $HTML_HEADER."<br>";
932 echo $HTML_FOOTER."<br>";
933 echo $HTML_COMMON."<br>";
934 echo $HTML_ADV."<br>";
935 echo $HTML_EVENTS."<br>";
936 echo $HTML_REFERERS."<br>";
937 echo $HTML_PHRASES."<br>";
938 echo $HTML_SEARCHERS."<br>";
939 die();
940 */
941
942 CEvent::Send("STATISTIC_DAILY_REPORT", $arSite["ID"], $arEventFields);
943 $MESS = $OLD_MESS;
944 }
945 return "SendDailyStatistics();";
946}
947
948function crc32ex($s)
949{
950 $c = crc32($s);
951 if($c > 0x7FFFFFFF)
952 $c = -(0xFFFFFFFF - $c + 1);
953 return $c;
954}
955
956function AdminListCheckDate(&$lAdmin, $arDates)
957{
958 $DB = CDatabase::GetModuleConnection('statistic');
959
960 $ok1 = false;
961 $date1 = current($arDates);
962 next($arDates);
963 if($date1 <> '')
964 {
965 if(!CheckDateTime($date1))
966 {
967 if(is_object($lAdmin))
968 $lAdmin->AddFilterError(GetMessage("STAT_WRONG_DATE_FROM"));
969 else
970 $lAdmin.=GetMessage("STAT_WRONG_DATE_FROM")."<br>";
971 }
972 else
973 {
974 $ok1 = true;
975 }
976 }
977
978 $ok2 = false;
979 $date2 = current($arDates);
980 if($date2 <> '')
981 {
982 if(!CheckDateTime($date2))
983 {
984 if(is_object($lAdmin))
985 $lAdmin->AddFilterError(GetMessage("STAT_WRONG_DATE_TILL"));
986 else
987 $lAdmin.=GetMessage("STAT_WRONG_DATE_TILL")."<br>";
988 }
989 else
990 {
991 $ok2 = true;
992 }
993 }
994
995 if($ok1 && $ok2 && $DB->CompareDates($date1, $date2)==1)
996 {
997 if(is_object($lAdmin))
998 $lAdmin->AddFilterError(GetMessage("STAT_FROM_TILL_DATE"));
999 else
1000 $lAdmin.=GetMessage("STAT_FROM_TILL_DATE")."<br>";
1001 }
1002
1003 return true;
1004}
1005
1007{
1008 $new_window = false;
1009 if(isset($arOptions["new_window"]) && $arOptions["new_window"] == true)
1010 $new_window = true;
1011
1012 $href_class = '';
1013 if(isset($arOptions["attention"]) && $arOptions["attention"] == true)
1014 $href_class = 'stat_attention';
1015
1016 $href_title = '';
1017 if(isset($arOptions["title"]))
1018 $href_title = htmlspecialcharsEx($arOptions["title"]);
1019
1020 $max_display_chars = 0;
1021 if(isset($arOptions["max_display_chars"]))
1022 {
1023 if($arOptions["max_display_chars"] === 'default')
1024 $max_display_chars = 80;
1025 elseif($arOptions["max_display_chars"] > 0)
1026 $max_display_chars = $arOptions["max_display_chars"];
1027 }
1028
1029 $chars_per_line = 0;
1030 if(isset($arOptions["chars_per_line"]))
1031 {
1032 if($arOptions["chars_per_line"] === 'default')
1033 $chars_per_line = 33;
1034 elseif($arOptions["chars_per_line"] > 0)
1035 $chars_per_line = $arOptions["chars_per_line"];
1036 }
1037
1038 $line_delimiter = '<br />';
1039 if(isset($arOptions["line_delimiter"]))
1040 $line_delimiter = $arOptions["line_delimiter"];
1041
1042 $kill_sessid = true;
1043 if(isset($arOptions["kill_sessid"]))
1044 $kill_sessid = $arOptions["kill_sessid"];
1045
1046 if($kill_sessid)
1047 {
1048 $url = preg_replace('/(sessid=[a-zA-Z0-9]+)/', '', $url);
1049 $url = str_replace('&&', '&', $url);
1050 $url = str_replace('?&', '?', $url);
1051 $url = trim($url, "?&");
1052 }
1053
1054 $htmlA = '<a href="'.htmlspecialcharsEx($url).'"';
1055
1056 if($new_window)
1057 $htmlA .= ' target="_blank"';
1058
1059 if($href_class)
1060 $htmlA .= ' class="'.$href_class.'"';
1061
1062 if($href_title)
1063 $htmlA .= ' title="'.$href_title.'"';
1064
1065 $htmlA .= '>';
1066
1067 $url_display = $url;
1068 if($max_display_chars > 0 && mb_strlen($url) >= $max_display_chars)
1069 $url_display = mb_substr($url, 0, intval($max_display_chars * 0.7)).'...'.mb_substr($url, -intval($max_display_chars * 0.2));
1070
1071 if($chars_per_line > 0)
1072 {
1073 $url_display = InsertSpaces($url_display, $chars_per_line, "\x01");
1074 $url_display = htmlspecialcharsbx($url_display);
1075 $url_display = str_replace("\x01", $line_delimiter, $url_display);
1076 }
1077 else
1078 {
1079 $url_display = htmlspecialcharsbx($url_display);
1080 }
1081
1082 return $htmlA.$url_display.'</a>';
1083}
1084
1086{
1087 var $field = false;
1088
1089 function __construct($field = "")
1090 {
1091 $this->field = $field;
1092 }
1093
1094 public static function Sort(&$ar, $field)
1095 {
1096 $sort = new CStatisticSort($field);
1097 uasort($ar, array($sort, "Compare"));
1098 }
1099
1100 function Compare($ar1, $ar2)
1101 {
1102 if($ar1[$this->field] < $ar2[$this->field])
1103 return 1;
1104 if($ar1[$this->field] > $ar2[$this->field])
1105 return -1;
1106 if($ar1["CITY_ID"] < $ar2["CITY_ID"])
1107 return -1;
1108 if($ar1["CITY_ID"] > $ar2["CITY_ID"])
1109 return 1;
1110 return 0;
1111 }
1112}
global $APPLICATION
Определения include.php:80
static GetList($by='', $order='desc', $arFilter=[], &$is_filtered=false, $limit='', &$arrGROUP_DAYS=[], &$strSql_res='')
Определения adv.php:78
static GetByID($currency)
Определения currency.php:453
static GetConvertFactor($curFrom, $curTo, $valDate="")
Определения currency_rate.php:407
static DecodeGID($EVENT_GID)
Определения statevent.php:392
static GetListUniqueCheck($arFilter=Array(), $LIMIT=1)
Определения statevent.php:441
static AddByID($EVENT_ID, $EVENT3, $DATE_ENTER, $PARAM, $MONEY="", $CURRENCY="", $CHARGEBACK="N")
Определения statevent.php:328
static GetList($by='s_today_hits', $order='desc', $arFilter=[], &$is_filtered=false, $LIMIT=false)
Определения searcher.php:29
static GetList($by='s_today_counter', $order='desc', $arFilter=[], &$is_filtered=false, $LIMIT=false)
Определения stateventtype.php:26
Определения stat_tools.php:1086
Compare($ar1, $ar2)
Определения stat_tools.php:1100
static Sort(&$ar, $field)
Определения stat_tools.php:1094
$field
Определения stat_tools.php:1087
__construct($field="")
Определения stat_tools.php:1089
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 GetPhraseList($s_by='s_today', $s_order='desc', $arFilter=[], &$is_filtered=false, $limit=10)
Определения traffic.php:521
if(!in_array("BC". $f_USER_ID, $arContra)) endwhile
Определения commerceml.php:102
$base_currency
Определения commerceml_g_run_cur.php:2
$arr
Определения file_new.php:624
</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
$_REQUEST["admin_mnu_menu_id"]
Определения get_menu.php:8
$start
Определения get_search.php:9
$p
Определения group_list_element_edit.php:23
$protocol
Определения .description.php:9
$host
Определения .description.php:9
global $MESS
Определения bill.php:2
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
endif
Определения csv_new_setup.php:990
$arOptions
Определения structure.php:223
ConvertDateTime($datetime, $to_format=false, $from_site=false, $bSearchInSitesOnly=false)
Определения tools.php:724
InsertSpaces($sText, $iMaxChar=80, $symbol=" ", $bHTML=false)
Определения tools.php:2197
htmlspecialcharsEx($str)
Определения tools.php:2685
htmlspecialcharsbx($string, $flags=ENT_COMPAT, $doubleEncode=true)
Определения tools.php:2701
GetTime($timestamp, $type="SHORT", $site=false, $bSearchInSitesOnly=false)
Определения tools.php:1890
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
Rel2Abs($curdir, $relpath)
Определения tools.php:3297
GetMessage($name, $aReplace=null)
Определения tools.php:3397
CheckDateTime($datetime, $format=false)
Определения tools.php:398
MkDateTime($strDT, $format="d.m.Y H:i:s")
Определения tools.php:1977
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
$ar
Определения options.php:199
if(empty($signedUserToken)) $key
Определения quickway.php:257
$md5
Определения result_rec.php:12
$i
Определения factura.php:643
$page
Определения order_form.php:33
</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
$title
Определения pdf.php:123
$CURRENCY
Определения result.php:6
$matches
Определения index.php:22
$searchers
Определения options.php:84
$site_id
Определения sonet_set_content_view.php:9
__ModifyATags($matches)
Определения stat_tools.php:160
crc32ex($s)
Определения stat_tools.php:948
CleanUpResultCsv(&$item)
Определения stat_tools.php:381
GetStatisticBaseCurrency()
Определения stat_tools.php:368
stat_session_register($var_name)
Определения stat_tools.php:509
__GetPage($page=false, $with_imp_params=true, $curdir=false)
Определения stat_tools.php:249
GetStatGroupSiteID()
Определения stat_tools.php:549
__GetFullCurPage($page=false, $with_imp_params=true)
Определения stat_tools.php:327
__GetCurrentPage()
Определения stat_tools.php:231
StatAdminListFormatURL($url, $arOptions=array())
Определения stat_tools.php:1006
GetEventSiteID()
Определения stat_tools.php:544
__GoogleAd($set_new_adv=false, $r1=false, $r2=false, $s="http://pagead2.googlesyndication.com/")
Определения stat_tools.php:5
get_guest_md5()
Определения stat_tools.php:534
__SortLinkStat($ar1, $ar2)
Определения stat_tools.php:148
PrepareResultQuotes(&$item)
Определения stat_tools.php:386
SendDailyStatistics()
Определения stat_tools.php:555
__SetNoKeepStatistics()
Определения stat_tools.php:127
__GetFullReferer($referer=false)
Определения stat_tools.php:332
__SetReferer($referer, $syn)
Определения stat_tools.php:106
GetStatPathID($URL, $PREV_PATH_ID="")
Определения stat_tools.php:504
LoadEventsBySteps( $csvfile, $time_step, $next_line, &$step_processed, &$step_loaded, &$step_duplicate, $check_unique="Y", $base_currency="", &$next_pos)
Определения stat_tools.php:391
__IsHiddenLink($link)
Определения stat_tools.php:155
__GetFullRequestUri($url=false, $host=false, $port=false, $protocol=false)
Определения stat_tools.php:339
__GetReferringSite(&$protocol, &$server_name, &$server_name_wo_port, &$PAGE_FROM, $URL_FROM=false)
Определения stat_tools.php:46
AdminListCheckDate(&$lAdmin, $arDates)
Определения stat_tools.php:956
GetCookieString($arrCookie=false)
Определения stat_tools.php:215
$GLOBALS['_____370096793']
Определения update_client.php:1
$lAdmin
Определения update_log.php:25
$arFilter
Определения user_search.php:106
$url
Определения iframe.php:7
$site
Определения yandex_run.php:614