function GetAdv() { if (($r = CStatisticWS::CheckAuth()) !== False) { return $r; } $arResult = array(); $dbAdv = CAdv::GetList($a_by, $a_order, array("DATE1_PERIOD" => "", "DATE2_PERIOD" => ""), $is_filtered, "", $arrGROUP_DAYS, $v); $i = 0; while ($arAdv = $dbAdv->Fetch()) { $i++; $arResult[$i . ':top'] = array("id" => $arAdv["ID"], "name" => $arAdv["REFERER1"] . "/" . $arAdv["REFERER2"], "today" => $arAdv["SESSIONS_TODAY"], "yesterday" => $arAdv["SESSIONS_YESTERDAY"], "bef_yesterday" => $arAdv["SESSIONS_BEF_YESTERDAY"], "all" => $arAdv["SESSIONS"]); if ($i >= COption::GetOptionInt("statistic", "STAT_LIST_TOP_SIZE", 10)) { break; } } return $arResult; }
public static function DynamicDays($ADV_ID, $date1 = "", $date2 = "") { $arFilter = array("DATE1" => $date1, "DATE2" => $date2); $d = 0; $z = CAdv::GetDynamicList($ADV_ID, $by, $order, $arMaxMin, $arFilter); while ($zr = $z->Fetch()) { $d++; } return $d; }
} if (strlen($strError) <= 0) { if (strlen($save) > 0) { LocalRedirect("adv_list.php?lang=" . LANG); } else { LocalRedirect($APPLICATION->GetCurPage() . "?lang=" . LANG . "&ID=" . $ID . "&" . $tabControl->ActiveTabParam()); } } } } } ClearVars(); $arSEARCHERS = array(); $arPAGES_TO = array(); $arPAGES_FROM = array(); $adv = CAdv::GetByID($ID); if (!$adv->ExtractFields()) { $ID = 0; $str_PRIORITY = "100"; } else { $strSql = "SELECT SEARCHER_ID FROM b_stat_adv_searcher WHERE ADV_ID = " . $ID; $z = $statDB->Query($strSql, false, $err_mess . __LINE__); while ($zr = $z->Fetch()) { $arSEARCHERS[] = $zr["SEARCHER_ID"]; } $strSql = "SELECT PAGE FROM b_stat_adv_page WHERE ADV_ID = " . $ID . " and C_TYPE='TO'"; $z = $statDB->Query($strSql, false, $err_mess . __LINE__); while ($zr = $z->Fetch()) { $arPAGES_TO[] = htmlspecialcharsbx($zr["PAGE"]); } $strSql = "SELECT PAGE FROM b_stat_adv_page WHERE ADV_ID = " . $ID . " and C_TYPE='FROM'";
if (strlen($_REQUEST["site_id"]) > 0) { $site_filter = "Y"; $strFilterSite = "&find_site_id=" . $_REQUEST["site_id"]; } else { $site_filter = "N"; $strFilterSite = ""; } $arFilter = array("SITE_ID" => $_REQUEST["site_id"]); $now_date = GetTime(time()); $yesterday_date = GetTime(time() - 86400); $bef_yesterday_date = GetTime(time() - 172800); if ($_REQUEST["table_id"] == "adv") { if ($site_filter == "Y") { die; } $rsAdv = CAdv::GetList($a_by, $a_order, $arFilter, $is_filtered, 10, $arrGROUP_DAYS, $v); ?> <table class="bx-gadgets-table"> <tbody> <tr> <th><?php echo GetMessage("GD_STAT_ADV_NAME"); ?> </th> <th><a href="/bitrix/admin/session_list.php?lang=<?php echo $_REQUEST["lang"]; ?> &find_date1=<?php echo $now_date; ?> &find_date2=<?php
$find_events_names[] = $arrEVENT[$value]; } } else { $find_events = array(); $find_events_names = array(); } InitBVar($find_adv_id_exact_match); InitBVar($find_referer1_exact_match); InitBVar($find_referer2_exact_match); InitBVar($find_event_type_id_exact_match); InitBVar($find_event1_exact_match); InitBVar($find_event2_exact_match); AdminListCheckDate($lAdmin, array("find_date1" => $find_date1, "find_date2" => $find_date2)); $arFilter = array("DATE1" => $find_date1, "DATE2" => $find_date2, "ADV_ID" => $find_adv_id, "REFERER1" => $find_referer1, "REFERER2" => $find_referer2, "EVENT_TYPE_ID" => $find_event_type_id, "EVENT1" => $find_event1, "EVENT2" => $find_event2, "ADV" => $find_adv, "EVENT_TYPE" => $find_events, "ADV_ID_EXACT_MATCH" => $find_adv_id_exact_match, "REFERER1_EXACT_MATCH" => $find_referer1_exact_match, "REFERER2_EXACT_MATCH" => $find_referer2_exact_match, "EVENT_TYPE_ID_EXACT_MATCH" => $find_event_type_id_exact_match, "EVENT1_EXACT_MATCH" => $find_event1_exact_match, "EVENT2_EXACT_MATCH" => $find_event2_exact_match); $lAdmin->BeginPrologContent(); $arrDays = CAdv::GetAnalysisGraphArray($arFilter, $is_filtered, $find_data_type, $arrLegend, $total, $max); if (count($arrDays) < 2) { CAdminMessage::ShowMessage(GetMessage("STAT_NOT_ENOUGH_DATA")); } else { ?> <div class="graph"> <?php echo $arrParams[$find_data_type][1]; ?> <table cellspacing="0" cellpadding="0" class="graph" border="0" align="center"><tr> <td valign="center" class="graph"><?php $width = COption::GetOptionString("statistic", "GRAPH_WEIGHT"); $height = COption::GetOptionString("statistic", "GRAPH_HEIGHT"); ?> <img class="graph" src="/bitrix/admin/adv_analysis_graph.php?rand=<?php echo rand();
if ($show_events == "event1") { $arF["GROUP"] = "event1"; } elseif ($show_events == "event2") { $arF["GROUP"] = "event2"; } if ($find != "" && $find_type == "event1") { $arF["EVENT1"] = $find; } if ($find != "" && $find_type == "event2") { $arF["EVENT2"] = $find; } if ($GROUP == "N") { $events = CAdv::GetEventList($f_ID, $by, $order, $arF, $v1); } elseif ($GROUP == "Y") { $value = $find_group == "referer1" ? $f_REFERER1 : $f_REFERER2; $events = CAdv::GetEventListByReferer($value, $arFilter); } $sum_today = 0; $sum_back_today = 0; $sum_yesterday = 0; $sum_back_yesterday = 0; $sum_bef_yesterday = 0; $sum_back_bef_yesterday = 0; $sum_period = 0; $sum_back_period = 0; $sum_total = 0; $sum_back_total = 0; $arEvents = array(); while ($er = $events->Fetch()) { $arEvents[] = $er; $sum_today += intval($er["COUNTER_TODAY"]);
} $statDB->Commit(); break; case "clear": @set_time_limit(0); $statDB->StartTransaction(); if (!CAdv::Reset($ID, "N")) { $statDB->Rollback(); $lAdmin->AddGroupError(GetMessage("STAT_DELETE_ERROR"), $ID); } $statDB->Commit(); break; } } } $cData = new CAdv(); $rsData = $cData->GetList($by, $order, $arFilter, $is_filtered, "", $arrGROUP_DAYS, $v); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("STAT_ADV_PAGES"))); $arHeaders = array(); if ($group_by == "") { $arHeaders[] = array("id" => "ID", "content" => "ID", "sort" => "ID", "align" => "right", "default" => true); } if ($group_by == "" || $group_by == "referer1") { $arHeaders[] = array("id" => "REFERER1", "content" => "referer1", "sort" => "REFERER1", "default" => true); } if ($group_by == "" || $group_by == "referer2") { $arHeaders[] = array("id" => "REFERER2", "content" => "referer2", "sort" => "REFERER2", "default" => true); } $arHeaders[] = array("id" => "DATE_FIRST", "content" => GetMessage("STAT_BEGIN"), "sort" => "C_TIME_FIRST", "default" => true);
echo GetMessage("ADV_STAT_WHAT_ADD"); ?> " OnClick="stat_type_popup();"> <input type="button" value="<?php echo GetMessage("ADV_STAT_WHAT_DELETE"); ?> " OnClick="jsSelectUtils.deleteSelectedOptions('STAT_TYPE_VALUES[]');stat_type_values_change();"> <?php } ?> </td> </tr> <?php if ($isAdmin || $isDemo && !$isOwner) { $ref = array(); $ref_id = array(); $rsAdv = CAdv::GetDropDownList("ORDER BY REFERER1, REFERER2"); while ($arAdv = $rsAdv->Fetch()) { $ref[] = $arAdv["REFERENCE"]; $ref_id[] = $arAdv["REFERENCE_ID"]; } if ($isEditMode) { ?> <tr valign="top"> <td><?php echo GetMessage("AD_STAT_ADV"); ?> <br><img src="/bitrix/images/advertising/mouse.gif" width="44" height="21" border=0 alt=""><br><?php echo GetMessage("AD_SELECT_WHAT_YOU_NEED"); ?> </td> <td><?php
} $arFilter = array("DATE1" => $date1, "DATE2" => $date2, "ADV" => $find_adv_str, "ADV_DATA_TYPE" => $adv_data_type, "IS_DIR" => $is_dir == "Y" ? "Y" : "N"); $days = 0; $rs = CPage::GetDynamicList($section, $by, $order, $arFilter); while ($ar = $rs->Fetch()) { $days++; $SUM_COUNTER += intval($ar["COUNTER"]); $SUM_ENTER_COUNTER += intval($ar["ENTER_COUNTER"]); $SUM_EXIT_COUNTER += intval($ar["EXIT_COUNTER"]); } $strTitle = $is_dir == "Y" ? GetMessage("STAT_TITLE_SECTION") : GetMessage("STAT_TITLE_PAGE"); $APPLICATION->SetTitle($strTitle); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_popup_admin.php"; if (strlen($find_adv_str) > 0) { echo "<h2>" . GetMessage("STAT_ADV_LIST") . "</h2><p>"; $rsAdv = CAdv::GetList($v1 = "s_dropdown", $v2 = "asc", array("ID" => $str), $v3, "", $v4, $v5); while ($arAdv = $rsAdv->Fetch()) { echo "[" . $arAdv["ID"] . "] " . $arAdv["REFERER1"] . " / " . $arAdv["REFERER2"] . "<br>"; } if ($find_adv_data_type != "B" && $find_adv_data_type != "S") { $find_adv_data_type = "P"; } $arr = array("P" => GetMessage("STAT_ADV_NO_BACK"), "B" => GetMessage("STAT_ADV_BACK"), "S" => GetMessage("STAT_ADV_SUMMA")); echo "<img src=\"/bitrix/images/1.gif\" width=\"1\" height=\"5\" border=\"0\" alt=\"\"><br>(" . $arr[$find_adv_data_type] . ")<br></p>"; } $s = ""; $width = COption::GetOptionString("statistic", "GRAPH_WEIGHT"); $height = COption::GetOptionString("statistic", "GRAPH_HEIGHT"); if (isset($find_adv) && is_array($find_adv) && count($find_adv) > 0) { foreach ($find_adv as $adv_id) { $s .= "&adv[]=" . urlencode($adv_id);
} // image init $ImageHandle = CreateImageHandle($width, $height); $arrX = array(); // X axis points $arrY = array(); // Y axis points $arrayX = array(); // X axis grid points $arrayY = array(); // Y axis grid points /****************************************************** Get plot data *******************************************************/ $arFilter = array("DATE1" => $find_date1, "DATE2" => $find_date2); $dynamic = CAdv::GetDynamicList($ADV_ID, $by = "s_date", $order = "asc", $arMaxMin, $arFilter); while ($arData = $dynamic->GetNext()) { $date = mktime(0, 0, 0, $arData["MONTH"], $arData["DAY"], $arData["YEAR"]); $date_tmp = 0; // arrage dates in order $next_date = AddTime($prev_date, 1, "D"); if ($date > $next_date && intval($prev_date) > 0) { // fill missing dates $date_tmp = $next_date; while ($date_tmp < $date) { $arrX[] = $date_tmp; if ($find_sessions == "Y") { $arrY_sessions[] = 0; } if ($find_sessions_back == "Y") { $arrY_sessions_back[] = 0;
$ID = intval($ID); $FilterArr = array("find_id", "find_event1", "find_event2", "find_keywords", "find_date1", "find_date2", "find_group"); if (strlen($set_filter) > 0) { InitFilterEx($FilterArr, "ADV_EVENTS", "set"); } else { InitFilterEx($FilterArr, "ADV_EVENTS", "get"); } if (strlen($del_filter) > 0) { DelFilterEx($FilterArr, "ADV_EVENTS"); } if (strlen($find_id) > 0 || strlen($find_event1) > 0 || strlen($find_event2) > 0 || strlen($find_keywords) > 0 || strlen($find_date1) > 0 || strlen($find_date2) > 0 || $find_group != "NOT_REF") { if (AdminListCheckDate($strError, array("find_date1" => $find_date1, "find_date2" => $find_date2))) { $arFilter = array("ID" => $find_id, "EVENT1" => $find_event1, "EVENT2" => $find_event2, "KEYWORDS" => $find_keywords, "DATE1_PERIOD" => $find_date1, "DATE2_PERIOD" => $find_date2, "GROUP" => $find_group); } } $events = CAdv::GetEventList($ID, $by, $order, $arFilter, $is_filtered); $find_group = strlen($find_group) <= 0 ? "NOT_REF" : $find_group; /*************************************************************************** HTML form ****************************************************************************/ $APPLICATION->SetTitle(str_replace("#ID#", "{$ID}", GetMessage("STAT_TITLE"))); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_popup_admin.php"; echo ShowError($strError); echo BeginFilter("ADV_EVENTS", $is_filtered); ?> <form name="form1" method="GET" action="<?php echo $APPLICATION->GetCurPage(); ?> ?"> <tr> <td class="tablebody"><font class="tablefieldtext">ID:</font></td>
$lAdmin_tab1->EndCustomContent(); if ($_REQUEST["table_id"] == "" || $_REQUEST["table_id"] == $sTableID_tab1) { $lAdmin_tab1->CheckListMode(); } $sTableID_tab2 = "t_stat_list_tab2"; $oSort_tab2 = new CAdminSorting($sTableID_tab2); $lAdmin_tab2 = new CAdminList($sTableID_tab2, $oSort_tab2); $lAdmin_tab2->BeginCustomContent(); if (strlen($strError) > 0) { CAdminMessage::ShowMessage($strError); } elseif ($site_filter == "Y" && $_REQUEST["table_id"] == $sTableID_tab2) { CAdminMessage::ShowMessage(GetMessage("STAT_NO_DATA")); } elseif ($_REQUEST["table_id"] == $sTableID_tab2) { $arADVF["DATE1_PERIOD"] = $arFilter["DATE1"]; $arADVF["DATE2_PERIOD"] = $arFilter["DATE2"]; $adv = CAdv::GetList($a_by, $a_order, $arADVF, $is_filtered, "", $arrGROUP_DAYS, $v); ?> <table border="0" cellspacing="0" cellpadding="0" width="100%" class="list-table"> <tr class="heading" valign="top"> <td><?php echo GetMessage("STAT_ADV_NAME"); ?> </td> <td><a href="<?php echo hrefHtml("session_list.php", "lang", LANGUAGE_ID, "find_date1", $now_date, "find_date2", $now_date, "find_adv_back", "N", "set_filter", "Y"); ?> "><?php echo GetMessage("STAT_TODAY"); ?> </a><br><?php echo $now_date;
function SendDailyStatistics() { __SetNoKeepStatistics(); if ($_SESSION["SESS_NO_AGENT_STATISTIC"] != "Y" && !defined("NO_AGENT_STATISTIC")) { global $MESS; $rsSite = CSite::GetDefList(); $arSite = $rsSite->Fetch(); $charset = $arSite["CHARSET"]; $now_full_date = GetTime(time(), "FULL", $arSite["ID"], true); $now_date = GetTime(time(), "SHORT", $arSite["ID"], true); $yesterday_date = GetTime(time() - 86400, "SHORT", $arSite["ID"], true); $bef_yesterday_date = GetTime(time() - 172800, "SHORT", $arSite["ID"], true); $arComm = CTraffic::GetCommonValues(); $adv = CAdv::GetList($a_by, $a_order, array(), $is_filtered, "", $arrGROUP_DAYS, $v); $events = CStatEventType::GetList($e_by = "s_stat", $e_order = "desc", array(), $is_filtered); $referers = CTraffic::GetRefererList($by, $order, array(), $is_filtered); $phrases = CTraffic::GetPhraseList($s_by, $s_order, array(), $is_filtered); $searchers = CSearcher::GetList($f_by = "s_stat", $f_order = "desc", array(), $is_filtered); $OLD_MESS = $MESS; $MESS = array(); IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/statistic/include.php", $arSite["LANGUAGE_ID"]); IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/statistic/admin/stat_list.php", $arSite["LANGUAGE_ID"]); $HTML_HEADER = ' <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=' . $charset . '"> <style> .tablehead1 {background-color:#C2DBED; padding:2px; border-top: 1px solid #A8C2D7; border-bottom: 1px solid #A8C2D7; border-left: 1px solid #A8C2D7;} .tablehead2 {background-color:#C2DBED; padding:2px; border-top: 1px solid #A8C2D7; border-bottom: 1px solid #A8C2D7;} .tablehead3 {background-color:#C2DBED; padding:2px; border-top: 1px solid #A8C2D7; border-bottom: 1px solid #A8C2D7; border-right: 1px solid #A8C2D7;} .tablebody1 {background-color:#F0F1F2; padding:2px; border-left:#B9D3E6 solid 1px; border-bottom:#B9D3E6 solid 1px;} .tablebody2 {background-color:#F0F1F2; padding:2px; border-bottom:#B9D3E6 solid 1px;} .tablebody3 {background-color:#F0F1F2; padding:2px; border-right:#B9D3E6 solid 1px; border-bottom:#B9D3E6 solid 1px;} .tablebodytext {font-family: Arial, Helvetica, sans-serif; font-size:12px; color:#000000;} .tableheadtext {font-family: Arial, Helvetica, sans-serif; font-size:12px; color:#000000;} .tablelinebottom {border-bottom:1pt solid #D1D1D1} .notesmall {font-family: Arial, Helvetica, sans-serif; font-size:11px; color:#008400; font-weight:normal;} .tablebody1_sel {background-color:#E0EBF1; padding:2px; border-left:#B9D3E6 solid 1px; border-bottom:#B9D3E6 solid 1px;} .tablebody2_sel {background-color:#E0EBF1; padding:2px; border-bottom:#B9D3E6 solid 1px;} .tablebody3_sel {background-color:#E0EBF1; padding:2px; border-right:#B9D3E6 solid 1px; border-bottom:#B9D3E6 solid 1px;} </style> </head> <body bgcolor="FFFFFF" leftmargin="2" topmargin="2" marginwidth="2" marginheight="2"> '; $HTML_COMMON = ' <table border="0" cellspacing="1" cellpadding="3" width="100%"> <tr> <td valign="top" align="center" class="tablehead1" width="48%" nowrap><font class="tableheadtext">' . GetMessage("STAT_VISIT") . '</font></td> <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> <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> <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> <td valign="top" align="center" class="tablehead3" width="13%" nowrap><font class="tableheadtext">' . GetMessage("STAT_TOTAL_1") . '</font></td> </tr> <tr valign="top"> <td valign="top" class="tablebody1" width="48%" nowrap><font class="tablebodytext">' . GetMessage("STAT_HITS") . '</font></td> <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">' . $arComm["TODAY_HITS"] . '</font></td> <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">' . $arComm["YESTERDAY_HITS"] . '</font></td> <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">' . $arComm["B_YESTERDAY_HITS"] . '</font></td> <td valign="top" align="right" class="tablebody3" width="13%" nowrap><font class="tablebodytext">' . $arComm["TOTAL_HITS"] . ' </font></td> </tr> <tr valign="top"> <td valign="top" class="tablebody1" width="48%" nowrap><font class="tablebodytext">' . GetMessage("STAT_HOSTS") . '</font></td> <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">' . $arComm["TODAY_HOSTS"] . '</font></td> <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">' . $arComm["YESTERDAY_HOSTS"] . '</font></td> <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">' . $arComm["B_YESTERDAY_HOSTS"] . '</font></td> <td valign="top" align="right" class="tablebody3" width="13%" nowrap><font class="tablebodytext">' . $arComm["TOTAL_HOSTS"] . ' </font></td> </tr> <tr valign="top"> <td valign="top" class="tablebody1" width="48%" nowrap><font class="tablebodytext">' . GetMessage("STAT_SESSIONS") . '</font></td> <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">' . $arComm["TODAY_SESSIONS"] . '</font></td> <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">' . $arComm["YESTERDAY_SESSIONS"] . '</font></td> <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">' . $arComm["B_YESTERDAY_SESSIONS"] . '</font></td> <td valign="top" align="right" class="tablebody3" width="13%" nowrap><font class="tablebodytext">' . $arComm["TOTAL_SESSIONS"] . ' </font></td> </tr> <tr valign="top"> <td valign="top" class="tablebody1" width="48%" nowrap><font class="tablebodytext">' . GetMessage("STAT_C_EVENTS") . '</font></td> <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">' . $arComm["TODAY_EVENTS"] . '</font></td> <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">' . $arComm["YESTERDAY_EVENTS"] . '</font></td> <td valign="top" align="right" class="tablebody2" width="13%" nowrap><font class="tablebodytext">' . $arComm["B_YESTERDAY_EVENTS"] . '</font></td> <td valign="top" align="right" class="tablebody3" width="13%" nowrap><font class="tablebodytext">' . $arComm["TOTAL_EVENTS"] . ' </font></td> </tr> <tr valign="top"> <td valign="top" class="tablebody1" width="48%" nowrap> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tr> <td width="100%"><font class="tablebodytext">' . GetMessage("STAT_GUESTS") . '</font></td> <td width="0%" align="right" class="tablelinebottom" nowrap><font class="tablebodytext">' . GetMessage("STAT_TOTAL") . '</font></td> </tr> <tr> <td></td> <td class="tablelinebottom" align="right" nowrap><font class="tablebodytext">' . GetMessage("STAT_NEW") . '</font></td> </tr> <tr> <td></td> <td align="right" nowrap><font class="tablebodytext">' . GetMessage("STAT_ONLINE") . '</font></td> </tr> </table></td> <td valign="top" align="right" class="tablebody2" width="13%" nowrap> <table cellspacing=0 cellpadding=0 width="100%"> <tr><td class="tablelinebottom" align="right" width="100%"><font class="tablebodytext">' . $arComm["TODAY_GUESTS"] . '</font></td></tr> <tr><td class="tablelinebottom" align="right"><font class="tablebodytext">' . $arComm["TODAY_NEW_GUESTS"] . '</font></td></tr> <tr><td align="right"><font class="tablebodytext">' . $arComm["ONLINE_GUESTS"] . '</font></td></tr> </table></td> <td valign="top" align="right" class="tablebody2" width="13%" nowrap> <table cellspacing=0 cellpadding=0 width="100%"> <tr><td class="tablelinebottom" align="right" width="100%"><font class="tablebodytext">' . $arComm["YESTERDAY_GUESTS"] . '</font></td></tr> <tr><td class="tablelinebottom" align="right"><font class="tablebodytext">' . $arComm["YESTERDAY_NEW_GUESTS"] . '</font></td></tr> </table></td> <td valign="top" align="right" class="tablebody2" width="13%" nowrap> <table cellspacing=0 cellpadding=0 width="100%"> <tr><td align="right" class="tablelinebottom" width="100%"><font class="tablebodytext">' . $arComm["B_YESTERDAY_GUESTS"] . '</font></td></tr> <tr><td class="tablelinebottom" align="right"><font class="tablebodytext">' . $arComm["B_YESTERDAY_NEW_GUESTS"] . '</font></td></tr> </table></td> <td valign="top" align="right" class="tablebody3" width="13%" nowrap> <table cellspacing=0 cellpadding=0 width="100%"> <tr><td class="tablelinebottom" align="right" width="100%"><font class="tablebodytext">' . $arComm["TOTAL_GUESTS"] . ' </font></td></tr> <tr><td class="tablelinebottom" align="right"><font class="tablebodytext"> </font></td></tr> </table></td> </tr> </table> </td> </tr> </table> '; $HTML_ADV = ' <font class="tablebodytext">' . GetMessage("STAT_ADV") . ' (' . GetMessage("STAT_DIRECT_SESSIONS") . ') (Top 10):</font><br> <table border="0" cellspacing="1" cellpadding="3" width="100%"> <tr> <td valign="top" align="center" class="tablehead1" width="48%" nowrap><font class="tableheadtext">' . GetMessage("STAT_ADV_NAME") . '</font></td> <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> <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> <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> <td valign="top" align="center" class="tablehead3" width="13%" nowrap><font class="tableheadtext">' . GetMessage("STAT_TOTAL_1") . '</font></td> </tr> '; $i = 0; $total_SESSIONS_TODAY = 0; $total_SESSIONS_YESTERDAY = 0; $total_SESSIONS_BEF_YESTERDAY = 0; $total_SESSIONS = 0; while ($ar = $adv->Fetch()) { $i++; $total_SESSIONS_TODAY += $ar["SESSIONS_TODAY"]; $total_SESSIONS_YESTERDAY += $ar["SESSIONS_YESTERDAY"]; $total_SESSIONS_BEF_YESTERDAY += $ar["SESSIONS_BEF_YESTERDAY"]; $total_SESSIONS += $ar["SESSIONS"]; if ($i <= 10) { $HTML_ADV .= ' <tr> <td valign="top" class="tablebody1"><font class="tablebodytext">[' . $ar["ID"] . '] ' . $ar["REFERER1"] . ' / ' . $ar["REFERER2"] . '</font></td> <td valign="top" align="right" class="tablebody2"><font class="tablebodytext"> ' . ($ar["SESSIONS_TODAY"] > 0 ? $ar["SESSIONS_TODAY"] : " ") . '</font></td> <td valign="top" align="right" class="tablebody2"><font class="tablebodytext"> ' . ($ar["SESSIONS_YESTERDAY"] > 0 ? $ar["SESSIONS_YESTERDAY"] : " ") . '</font></td> <td valign="top" align="right" class="tablebody2"><font class="tablebodytext"> ' . ($ar["SESSIONS_BEF_YESTERDAY"] > 0 ? $ar["SESSIONS_BEF_YESTERDAY"] : " ") . '</font></td> <td valign="top" align="right" class="tablebody3"><font class="tablebodytext"> ' . ($ar["SESSIONS"] > 0 ? $ar["SESSIONS"] : " ") . '</font></td> </tr> '; } } $HTML_ADV .= ' <tr> <td valign="top" align="right" class="tablebody1_sel" style="padding:3px"><font class="tablebodytext">' . GetMessage("STAT_TOTAL") . '</font></td> <td valign="top" align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext"> ' . ($total_SESSIONS_TODAY > 0 ? $total_SESSIONS_TODAY : " ") . '</font></td> <td valign="top" align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext"> ' . ($total_SESSIONS_YESTERDAY > 0 ? $total_SESSIONS_YESTERDAY : " ") . '</font></td> <td valign="top" align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext"> ' . ($total_SESSIONS_BEF_YESTERDAY > 0 ? $total_SESSIONS_BEF_YESTERDAY : " ") . '</font></td> <td valign="top" align="right" class="tablebody3_sel" style="padding:3px"><font class="tablebodytext"> ' . ($total_SESSIONS > 0 ? $total_SESSIONS : " ") . '</font></td> </table> '; $HTML_EVENTS = ' <font class="tablebodytext">' . GetMessage("STAT_EVENTS_2") . ' (Top 10):</font><br> <table border="0" cellspacing="1" cellpadding="3" width="100%"> <tr> <td valign="top" align="center" class="tablehead1" width="48%" nowrap><font class="tableheadtext">' . GetMessage("STAT_EVENT") . '</font></td> <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> <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> <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> <td valign="top" align="center" class="tablehead3" width="13%" nowrap> <font class="tablebodytext">' . GetMessage("STAT_TOTAL_1") . '</font></td> </tr> '; $i = 0; $total_TODAY_COUNTER = 0; $total_YESTERDAY_COUNTER = 0; $total_B_YESTERDAY_COUNTER = 0; $total_TOTAL_COUNTER = 0; while ($er = $events->Fetch()) { $i++; $total_TODAY_COUNTER += intval($er["TODAY_COUNTER"]); $total_YESTERDAY_COUNTER += intval($er["YESTERDAY_COUNTER"]); $total_B_YESTERDAY_COUNTER += intval($er["B_YESTERDAY_COUNTER"]); $total_TOTAL_COUNTER += intval($er["TOTAL_COUNTER"]); if ($i <= 10) { $HTML_EVENTS .= ' <tr valign="top"> <td valign="top" class="tablebody1" width="0%" nowrap><font class="tablebodytext">' . $er["EVENT"] . '</font></td> <td valign="top" align="right" class="tablebody2" width="0%" nowrap><font class="tablebodytext">' . ($er["TODAY_COUNTER"] > 0 ? $er["TODAY_COUNTER"] : " ") . '</font></td> <td valign="top" align="right" class="tablebody2" width="0%" nowrap><font class="tablebodytext">' . ($er["YESTERDAY_COUNTER"] > 0 ? $er["YESTERDAY_COUNTER"] : " ") . '</font></td> <td valign="top" align="right" class="tablebody2" width="0%" nowrap><font class="tablebodytext">' . ($er["B_YESTERDAY_COUNTER"] > 0 ? $er["B_YESTERDAY_COUNTER"] : " ") . '</font></td> <td valign="top" align="right" class="tablebody3" width="0%" nowrap><font class="tablebodytext">' . ($er["TOTAL_COUNTER"] > 0 ? $er["TOTAL_COUNTER"] : " ") . '</font></td> </tr> '; } } $HTML_EVENTS .= ' <tr valign="top"> <td align="right" class="tablebody1_sel" style="padding:3px"><font class="tablebodytext">' . GetMessage("STAT_TOTAL") . '</font></td> <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">' . ($total_TODAY_COUNTER > 0 ? $total_TODAY_COUNTER : " ") . '</font></td> <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">' . ($total_YESTERDAY_COUNTER > 0 ? $total_YESTERDAY_COUNTER : " ") . '</font></td> <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">' . ($total_B_YESTERDAY_COUNTER > 0 ? $total_B_YESTERDAY_COUNTER : " ") . '</font></td> <td align="right" class="tablebody3_sel" style="padding:3px"><font class="tablebodytext">' . ($total_TOTAL_COUNTER > 0 ? $total_TOTAL_COUNTER : " ") . '</font></td> </table> '; $HTML_REFERERS = ' <font class="tablebodytext">' . GetMessage("STAT_REFERERS") . ' (Top 10):</font><br> <table border="0" cellspacing="1" cellpadding="3" width="100%"> <tr> <td valign="top" align="center" class="tablehead1" width="48%" nowrap><font class="tableheadtext">' . GetMessage("STAT_SERVER") . '</font></td> <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> <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> <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> <td valign="top" align="center" class="tablehead3" width="13%" nowrap><font class="tablebodytext">' . GetMessage("STAT_TOTAL_1") . '</font></td> </tr> '; $i = 0; $total_TODAY_REFERERS = 0; $total_YESTERDAY_REFERERS = 0; $total_B_YESTERDAY_REFERERS = 0; $total_TOTAL_REFERERS = 0; while ($rr = $referers->Fetch()) { $i++; $total_TODAY_REFERERS += $rr["TODAY_REFERERS"]; $total_YESTERDAY_REFERERS += $rr["YESTERDAY_REFERERS"]; $total_B_YESTERDAY_REFERERS += $rr["B_YESTERDAY_REFERERS"]; $total_TOTAL_REFERERS += $rr["TOTAL_REFERERS"]; if ($i <= 10) { $HTML_REFERERS .= ' <tr> <td valign="top" class="tablebody1" nowrap><font class="tablebodytext">' . $rr["SITE_NAME"] . '</font></td> <td align="right" class="tablebody2"><font class="tablebodytext">' . ($rr["TODAY_REFERERS"] > 0 ? $rr["TODAY_REFERERS"] : " ") . '</font></td> <td align="right" class="tablebody2"><font class="tablebodytext">' . ($rr["YESTERDAY_REFERERS"] > 0 ? $rr["YESTERDAY_REFERERS"] : " ") . '</font></td> <td align="right" class="tablebody2"><font class="tablebodytext">' . ($rr["B_YESTERDAY_REFERERS"] > 0 ? $rr["B_YESTERDAY_REFERERS"] : " ") . '</font></td> <td align="right" class="tablebody3"><font class="tablebodytext">' . ($rr["TOTAL_REFERERS"] > 0 ? $rr["TOTAL_REFERERS"] : " ") . '</font></td> </tr> '; } } $HTML_REFERERS .= ' <tr valign="top"> <td align="right" class="tablebody1_sel" style="padding:3px"><font class="tablebodytext">' . GetMessage("STAT_TOTAL") . '</font></td> <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">' . ($total_TODAY_REFERERS > 0 ? $total_TODAY_REFERERS : " ") . '</font></td> <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">' . ($total_YESTERDAY_REFERERS > 0 ? $total_YESTERDAY_REFERERS : " ") . '</font></td> <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">' . ($total_B_YESTERDAY_REFERERS > 0 ? $total_B_YESTERDAY_REFERERS : " ") . '</font></td> <td align="right" class="tablebody3_sel" style="padding:3px"><font class="tablebodytext">' . ($total_TOTAL_REFERERS > 0 ? $total_TOTAL_REFERERS : " ") . '</font></td> </table> '; $HTML_PHRASES = ' <font class="tablebodytext">' . GetMessage("STAT_PHRASES") . ' (Top 10):</font><br> <table border="0" cellspacing="1" cellpadding="3" width="100%"> <tr> <td valign="top" align="center" class="tablehead1" width="48%" nowrap><font class="tableheadtext">' . GetMessage("STAT_PHRASE") . '</td> <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> <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> <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> <td valign="top" align="center" class="tablehead3" width="13%" nowrap><font class="tablebodytext">' . GetMessage("STAT_TOTAL_1") . '</font></td> </tr> '; $i = 0; $total_TODAY_PHRASES = 0; $total_YESTERDAY_PHRASES = 0; $total_B_YESTERDAY_PHRASES = 0; $total_TOTAL_PHRASES = 0; while ($pr = $phrases->GetNext()) { $i++; $total_TODAY_PHRASES += $pr["TODAY_PHRASES"]; $total_YESTERDAY_PHRASES += $pr["YESTERDAY_PHRASES"]; $total_B_YESTERDAY_PHRASES += $pr["B_YESTERDAY_PHRASES"]; $total_TOTAL_PHRASES += $pr["TOTAL_PHRASES"]; if ($i <= 10) { $HTML_PHRASES .= ' <tr valign="top"> <td valign="top" class="tablebody1" width="0%" nowrap><font class="tablebodytext">' . TruncateText($pr["PHRASE"], 50) . '</font></td> <td align="right" class="tablebody2"><font class="tablebodytext">' . ($pr["TODAY_PHRASES"] > 0 ? $pr["TODAY_PHRASES"] : " ") . '</font></td> <td align="right" class="tablebody2"><font class="tablebodytext">' . ($pr["YESTERDAY_PHRASES"] > 0 ? $pr["YESTERDAY_PHRASES"] : " ") . '</font></td> <td align="right" class="tablebody2"><font class="tablebodytext">' . ($pr["B_YESTERDAY_PHRASES"] > 0 ? $pr["B_YESTERDAY_PHRASES"] : " ") . '</font></td> <td align="right" class="tablebody3"><font class="tablebodytext">' . ($pr["TOTAL_PHRASES"] > 0 ? $pr["TOTAL_PHRASES"] : " ") . '</font></td> </tr> '; } } $HTML_PHRASES .= ' <tr valign="top"> <td align="right" class="tablebody1_sel" style="padding:3px"><font class="tablebodytext">' . GetMessage("STAT_TOTAL") . '</font></td> <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">' . ($total_TODAY_PHRASES > 0 ? $total_TODAY_PHRASES : " ") . '</font></td> <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">' . ($total_YESTERDAY_PHRASES > 0 ? $total_YESTERDAY_PHRASES : " ") . '</font></td> <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">' . ($total_B_YESTERDAY_PHRASES > 0 ? $total_B_YESTERDAY_PHRASES : " ") . '</font></td> <td align="right" class="tablebody3_sel" style="padding:3px"><font class="tablebodytext">' . ($total_TOTAL_PHRASES > 0 ? $total_TOTAL_PHRASES : " ") . '</font></td> </table> '; $HTML_SEARCHERS = ' <font class="tablebodytext">' . GetMessage("STAT_SITE_INDEXING") . ' (Top 10):</font><br> <table border="0" cellspacing="1" cellpadding="3" width="100%"> <tr> <td valign="top" align="center" class="tablehead1" width="48%" nowrap><font class="tableheadtext">' . GetMessage("STAT_SEARCHER") . '</font></td> <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> <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> <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> <td valign="top" align="center" class="tablehead3" width="13%" nowrap><font class="tablebodytext">' . GetMessage("STAT_TOTAL_1") . '</font></td> </tr> '; $i = 0; $total_TODAY_HITS = 0; $total_YESTERDAY_HITS = 0; $total_B_YESTERDAY_HITS = 0; $total_TOTAL_HITS = 0; while ($fr = $searchers->Fetch()) { $i++; $total_TODAY_HITS += $fr["TODAY_HITS"]; $total_YESTERDAY_HITS += $fr["YESTERDAY_HITS"]; $total_B_YESTERDAY_HITS += $fr["B_YESTERDAY_HITS"]; $total_TOTAL_HITS += $fr["TOTAL_HITS"]; if ($i <= 10) { $HTML_SEARCHERS .= ' <tr valign="top"> <td valign="top" class="tablebody1" width="0%" nowrap><font class="tablebodytext">' . $fr["NAME"] . '</font></td> <td align="right" class="tablebody2"><font class="tablebodytext">' . ($fr["TODAY_HITS"] > 0 ? $fr["TODAY_HITS"] : " ") . '</font></td> <td align="right" class="tablebody2"><font class="tablebodytext">' . ($fr["YESTERDAY_HITS"] > 0 ? $fr["YESTERDAY_HITS"] : " ") . '</font></td> <td align="right" class="tablebody2"><font class="tablebodytext">' . ($fr["B_YESTERDAY_HITS"] > 0 ? $fr["B_YESTERDAY_HITS"] : " ") . '</font></td> <td align="right" class="tablebody3"><font class="tablebodytext">' . ($fr["TOTAL_HITS"] > 0 ? $fr["TOTAL_HITS"] : " ") . '</font></td> </tr> '; } } $HTML_SEARCHERS .= ' <tr valign="top"> <td align="right" class="tablebody1_sel" style="padding:3px"><font class="tablebodytext">' . GetMessage("STAT_TOTAL") . '</font></td> <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">' . ($total_TODAY_HITS > 0 ? $total_TODAY_HITS : " ") . '</font></td> <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">' . ($total_YESTERDAY_HITS > 0 ? $total_YESTERDAY_HITS : " ") . '</font></td> <td align="right" class="tablebody2_sel" style="padding:3px"><font class="tablebodytext">' . ($total_B_YESTERDAY_HITS > 0 ? $total_B_YESTERDAY_HITS : " ") . '</font></td> <td align="right" class="tablebody3_sel" style="padding:3px"><font class="tablebodytext">' . ($total_TOTAL_HITS > 0 ? $total_TOTAL_HITS : " ") . '</font></td> </table> '; $HTML_FOOTER = ' </body> </html> '; $arEventFields = array("SERVER_TIME" => $now_full_date, "HTML_HEADER" => $HTML_HEADER, "HTML_FOOTER" => $HTML_FOOTER, "HTML_COMMON" => $HTML_COMMON, "HTML_ADV" => $HTML_ADV, "HTML_EVENTS" => $HTML_EVENTS, "HTML_REFERERS" => $HTML_REFERERS, "HTML_PHRASES" => $HTML_PHRASES, "HTML_SEARCHERS" => $HTML_SEARCHERS, "EMAIL_TO" => COption::GetOptionString("main", "email_from", "")); /* echo $HTML_HEADER."<br>"; echo $HTML_FOOTER."<br>"; echo $HTML_COMMON."<br>"; echo $HTML_ADV."<br>"; echo $HTML_EVENTS."<br>"; echo $HTML_REFERERS."<br>"; echo $HTML_PHRASES."<br>"; echo $HTML_SEARCHERS."<br>"; die(); */ CEvent::Send("STATISTIC_DAILY_REPORT", $arSite["ID"], $arEventFields); $MESS = $OLD_MESS; } return "SendDailyStatistics();"; }
############################################## */ require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php"; $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic"); if ($STAT_RIGHT == "D") { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } IncludeModuleLangFile(__FILE__); $sTableID = "t_adv_multiselect"; $oSort = new CAdminSorting($sTableID, "ID", "desc"); $lAdmin = new CAdminList($sTableID, $oSort); $filter = new CAdminFilter($sTableID . "_filter_id", array("ID", "referer1", "referer2", GetMessage("STAT_DESCRIPTION"))); $FilterArr = array("find", "find_type", "find_id", "find_id_exact_match", "find_referer1", "find_referer1_exact_match", "find_referer2", "find_referer2_exact_match", "find_description", "find_description_exact_match"); $lAdmin->InitFilter($FilterArr); $arFilter = array("ID" => $find != "" && $find_type == "id" ? $find : $find_id, "ID_EXACT_MATCH" => $find_id_exact_match, "REFERER1" => $find != "" && $find_type == "referer1" ? $find : $find_referer1, "REFERER1_EXACT_MATCH" => $find_referer1_exact_match, "REFERER2" => $find != "" && $find_type == "referer2" ? $find : $find_referer2, "REFERER2_EXACT_MATCH" => $find_referer2_exact_match, "DESCRIPTION" => $find != "" && $find_type == "description" ? $find : $find_description, "DESCRIPTION_EXACT_MATCH" => $find_description_exact_match); $rsData = CAdv::GetSimpleList($by, $order, $arFilter, $is_filtered); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("STAT_ADV_PAGES"))); $arHeaders = array(); $arHeaders[] = array("id" => "ID", "content" => "ID", "sort" => "s_id", "default" => true); $arHeaders[] = array("id" => "REFERER1", "content" => "referer1", "sort" => "s_referer1", "default" => true); $arHeaders[] = array("id" => "REFERER2", "content" => "referer2", "sort" => "s_referer2", "default" => true); $arHeaders[] = array("id" => "DESCRIPTION", "content" => GetMessage("STAT_DESCRIPTION"), "sort" => "s_description", "default" => true); $lAdmin->AddHeaders($arHeaders); while ($arRes = $rsData->NavNext(true, "f_")) { $row =& $lAdmin->AddRow($f_ID, $arRes); $row->AddViewField("REFERER1", $f_REFERER1 . '<input type="hidden" name="ADV_NAME[' . $f_ID . ']" id="ADV_NAME[' . $f_ID . ']" value="' . $f_REFERER1 . " [" . $f_ID . ']">'); } $lAdmin->AddFooter(array(array("title" => GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value" => $rsData->SelectedRowsCount()), array("counter" => true, "title" => GetMessage("MAIN_ADMIN_LIST_CHECKED"), "value" => "0"))); $lAdmin->AddGroupActionTable(array("select" => array("action" => "setTargetValue(0, '" . AddSlashes($field) . "')", "value" => "select", "type" => "button", "name" => GetMessage("STAT_SELECT"))), array("disable_action_target" => true));
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/img.php"; $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic"); if ($STAT_RIGHT == "D") { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } IncludeModuleLangFile(__FILE__); $arSites = array(); $ref = $ref_id = array(); $rs = CSite::GetList($v1 = "sort", $v2 = "asc"); while ($ar = $rs->Fetch()) { $ref[] = $ar["ID"]; $ref_id[] = $ar["ID"]; $arSites[$ar["ID"]] = "[<a href=\"/bitrix/admin/site_edit.php?LID=" . $ar["ID"] . "&lang=" . LANGUAGE_ID . "\">" . $ar["ID"] . "</a>] "; } $arSiteDropdown = array("reference" => $ref, "reference_id" => $ref_id); $rs = CAdv::GetList($v1 = "", $v2 = "", array(), $v3, "", $v4, $v5); while ($ar = $rs->Fetch()) { $arrADV[$ar["ID"]] = $ar["REFERER1"] . " / " . $ar["REFERER2"] . " [" . $ar["ID"] . "]"; $arrADV_DETAIL[$ar["ID"]] = array("REFERER1" => $ar["REFERER1"], "REFERER2" => $ar["REFERER2"]); } if (strlen($find_referer1) > 0) { $find_adv = array(); foreach ($arrADV_DETAIL as $ADV_ID => $ADV_DETAIL) { if ($ADV_DETAIL["REFERER1"] == $find_referer1 && !in_array($ADV_ID, $find_adv)) { $find_adv[] = $ADV_ID; } } } if (strlen($find_referer2) > 0) { $find_adv = array(); foreach ($arrADV_DETAIL as $ADV_ID => $ADV_DETAIL) {
public static function Set_Adv() { $err_mess = "File: ".__FILE__."<br>Line: "; stat_session_register("SESS_ADV_ID"); // ID рекламной кампании $DB = CDatabase::GetModuleConnection('statistic'); // если это начало сессии if (intval($_SESSION["SESS_SESSION_ID"])<=0 && intval($_SESSION["SESS_ADV_ID"])<=0) { $arrADV = array(); // массив рекламных кампаний // проверяем страницу на которую пришел посетитель $page_to = __GetFullRequestUri(); CAdv::SetByPage($page_to, $arrADV, $ref1, $ref2, "TO"); // если посетитель пришел с ссылающегося сайта то if (__GetReferringSite($PROT, $SN, $SN_WithoutPort, $PAGE_FROM)) { $site_name = $PROT.$SN; // проверяем поисковики $strSql = " SELECT A.REFERER1, A.REFERER2, S.ADV_ID FROM b_stat_adv A, b_stat_adv_searcher S, b_stat_searcher_params P WHERE S.ADV_ID = A.ID and P.SEARCHER_ID = S.SEARCHER_ID and upper('".$DB->ForSql(trim($site_name),2000)."') like ".$DB->Concat("'%'", "upper(P.DOMAIN)", "'%'")." "; $w = $DB->Query($strSql, false, $err_mess.__LINE__); while ($wr=$w->Fetch()) { $ref1 = $wr["REFERER1"]; $ref2 = $wr["REFERER2"]; $arrADV[] = intval($wr["ADV_ID"]); } // проверяем ссылающиеся страницы $site_name = $PROT.$SN.$PAGE_FROM; CAdv::SetByPage($site_name, $arrADV, $ref1, $ref2, "FROM"); } // если гость пришел с referer1, либо referer2 то if (strlen($_SESSION["referer1"])>0 || strlen($_SESSION["referer2"])>0) { CAdv::SetByReferer(trim($_SESSION["referer1"]), trim($_SESSION["referer2"]), $arrADV, $ref1, $ref2); } //Handle Openstat if enabled if(COption::GetOptionString("statistic", "OPENSTAT_ACTIVE") === "Y" && strlen($_REQUEST["_openstat"])>0) { $openstat = $_REQUEST["_openstat"]; if(strpos($openstat, ";")===false) $openstat = base64_decode($openstat); $openstat = explode(";", $openstat); CAdv::SetByReferer( trim(str_replace( array("#service-name#", "#campaign-id#", "#ad-id#", "#source-id#"), $openstat, COption::GetOptionString("statistic", "OPENSTAT_R1_TEMPLATE") )), trim(str_replace( array("#service-name#", "#campaign-id#", "#ad-id#", "#source-id#"), $openstat, COption::GetOptionString("statistic", "OPENSTAT_R2_TEMPLATE") )), $arrADV, $ref1, $ref2 ); } $arrADV = array_unique($arrADV); // если было выявлено более одной рекламной кампании подходящей под условия то if (count($arrADV)>1) { // выберем рекламную кампанию по наивысшему приоритету (либо по наивысшему ID) $str = implode(",",$arrADV); $strSql = "SELECT ID, REFERER1, REFERER2 FROM b_stat_adv WHERE ID in ($str) ORDER BY PRIORITY desc, ID desc"; $z = $DB->Query($strSql, false, $err_mess.__LINE__); $zr = $z->Fetch(); $_SESSION["SESS_ADV_ID"] = intval($zr["ID"]); $_SESSION["referer1"] = $zr["REFERER1"]; $_SESSION["referer2"] = $zr["REFERER2"]; } else { list(,$value) = each($arrADV); $_SESSION["SESS_ADV_ID"] = intval($value); $_SESSION["referer1"] = $ref1; $_SESSION["referer2"] = $ref2; } } if (intval($_SESSION["SESS_ADV_ID"])>0) $_SESSION["SESS_LAST_ADV_ID"] = $_SESSION["SESS_ADV_ID"]; $_SESSION["SESS_LAST_ADV_ID"] = intval($_SESSION["SESS_LAST_ADV_ID"]); }
function create_event_list(&$lAdmin, $show_money = false, $get_total_events = false) { $show_events = ""; // gather events data global $f_EVENTS_VIEW; $show_events = strlen($f_EVENTS_VIEW) <= 0 ? COption::GetOptionString("statistic", "ADV_EVENTS_DEFAULT") : $f_EVENTS_VIEW; $group_events = $show_events == "event1" || $show_events == "event2" ? $show_events : ""; global $arFilter; $arF = array(); $arF["DATE1_PERIOD"] = $arFilter["DATE1_PERIOD"]; $arF["DATE2_PERIOD"] = $arFilter["DATE2_PERIOD"]; if ($show_money) { $arF["MONEY1"] = 0.0001; } if ($show_events == "event1") { $arF["GROUP"] = "event1"; } elseif ($show_events == "event2") { $arF["GROUP"] = "event2"; } global $GROUP, $find_type, $find, $find_id, $f_REFERER1, $f_REFERER2; $adv_id = intval($find_type == "id" && $find != "" ? $find : $find_id); if ($GROUP == "N") { $events = CAdv::GetEventList($adv_id, $by, $order, $arF, $v1); } elseif ($GROUP == "Y") { $value = $find_type == "referer1" ? $f_REFERER1 : $f_REFERER2; $events = CAdv::GetEventListByReferer($value, $arFilter); } $sum_today = array("C" => 0, "M" => 0.0); $sum_back_today = array("C" => 0, "M" => 0.0); $sum_yesterday = array("C" => 0, "M" => 0.0); $sum_back_yesterday = array("C" => 0, "M" => 0.0); $sum_bef_yesterday = array("C" => 0, "M" => 0.0); $sum_back_bef_yesterday = array("C" => 0, "M" => 0.0); $sum_period = array("C" => 0, "M" => 0.0); $sum_back_period = array("C" => 0, "M" => 0.0); $sum_total = array("C" => 0, "M" => 0.0); $sum_back_total = array("C" => 0, "M" => 0.0); $arEvents = array(); while ($er = $events->Fetch()) { $arEvents[] = $er; $sum_today["C"] += intval($er["COUNTER_TODAY"]); $sum_back_today["C"] += intval($er["COUNTER_BACK_TODAY"]); $sum_yesterday["C"] += intval($er["COUNTER_YESTERDAY"]); $sum_back_yesterday["C"] += intval($er["COUNTER_BACK_YESTERDAY"]); $sum_bef_yesterday["C"] += intval($er["COUNTER_BEF_YESTERDAY"]); $sum_back_bef_yesterday["C"] += intval($er["COUNTER_BACK_BEF_YESTERDAY"]); $sum_period["C"] += intval($er["COUNTER_PERIOD"]); $sum_back_period["C"] += intval($er["COUNTER_BACK_PERIOD"]); $sum_total["C"] += intval($er["COUNTER"]); $sum_back_total["C"] += intval($er["COUNTER_BACK"]); if ($show_money == "Y") { $sum_today["M"] += doubleval($er["MONEY_TODAY"]); $sum_back_today["M"] += doubleval($er["MONEY_BACK_TODAY"]); $sum_yesterday["M"] += doubleval($er["MONEY_YESTERDAY"]); $sum_back_yesterday["M"] += doubleval($er["MONEY_BACK_YESTERDAY"]); $sum_bef_yesterday["M"] += doubleval($er["MONEY_BEF_YESTERDAY"]); $sum_back_bef_yesterday["M"] += doubleval($er["MONEY_BACK_BEF_YESTERDAY"]); $sum_period["M"] += doubleval($er["MONEY_PERIOD"]); $sum_back_period["M"] += doubleval($er["MONEY_BACK_PERIOD"]); $sum_total["M"] += doubleval($er["MONEY"]); $sum_back_total["M"] += doubleval($er["MONEY_BACK"]); } } $total_events_sum = array("C" => 0, "M" => 0.0); $total_events_sum["C"] = $sum_total["C"] + $sum_back_total["C"]; $total_events_sum["M"] = $sum_total["M"] + $sum_back_total["M"]; if ($get_total_events) { return $total_events_sum["C"]; } global $f_GUESTS_TODAY, $f_GUESTS_BACK_TODAY, $f_GUESTS_YESTERDAY, $f_GUESTS_BACK_YESTERDAY; global $f_GUESTS_BEF_YESTERDAY, $f_GUESTS_BACK_BEF_YESTERDAY, $f_GUESTS_PERIOD, $f_GUESTS_BACK_PERIOD; global $f_GUESTS, $f_GUESTS_BACK; $arSum = array("TODAY" => event_format_link($sum_today, $f_GUESTS_TODAY, false, $GROUP, "event_list.php?lang=" . LANG . "&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=N&find_date1=" . urlencode($now_date) . "&find_date2=" . urlencode($now_date) . "&set_filter=Y", $show_money), "TODAY_BACK" => event_format_link($sum_back_today, $f_GUESTS_BACK_TODAY, true, $GROUP, "event_list.php?lang=" . LANG . "&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=Y&find_date1=" . urlencode($now_date) . "&find_date2=" . urlencode($now_date) . "&set_filter=Y", $show_money), "YESTERDAY" => event_format_link($sum_yesterday, $f_GUESTS_YESTERDAY, false, $GROUP, "event_list.php?lang=" . LANG . "&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=N&find_date1=" . urlencode($yesterday_date) . "&find_date2=" . urlencode($yesterday_date) . "&set_filter=Y", $show_money), "YESTERDAY_BACK" => event_format_link($sum_back_yesterday, $f_GUESTS_BACK_YESTERDAY, true, $GROUP, "event_list.php?lang=" . LANG . "&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=Y&find_date1=" . urlencode($yesterday_date) . "&find_date2=" . urlencode($yesterday_date) . "&set_filter=Y", $show_money), "BEF_YESTERDAY" => event_format_link($sum_bef_yesterday, $f_GUESTS_BEF_YESTERDAY, false, $GROUP, "event_list.php?lang=" . LANG . "&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=N&find_date1=" . urlencode($bef_yesterday_date) . "&find_date2=" . urlencode($bef_yesterday_date) . "&set_filter=Y", $show_money), "BEF_YESTERDAY_BACK" => event_format_link($sum_back_bef_yesterday, $f_GUESTS_BACK_BEF_YESTERDAY, true, $GROUP, "event_list.php?lang=" . LANG . "&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=Y&find_date1=" . urlencode($bef_yesterday_date) . "&find_date2=" . urlencode($bef_yesterday_date) . "&set_filter=Y", $show_money), "PERIOD" => event_format_link($sum_period, $f_GUESTS_PERIOD, false, $GROUP, "event_list.php?lang=" . LANG . "&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=N&find_date1=" . urlencode($find_date1_period) . "&find_date2=" . urlencode($find_date2_period) . "&set_filter=Y", $show_money), "PERIOD_BACK" => event_format_link($sum_back_period, $f_GUESTS_BACK_PERIOD, true, $GROUP, "event_list.php?lang=" . LANG . "&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=Y&find_date1=" . urlencode($find_date1_period) . "&find_date2=" . urlencode($find_date2_period) . "&set_filter=Y", $show_money), "TOTAL" => event_format_link($sum_total, $f_GUESTS, false, $GROUP, "event_list.php?lang=" . LANG . "&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=N&&set_filter=Y", $show_money), "TOTAL_BACK" => event_format_link($sum_back_total, $f_GUESTS_BACK, true, $GROUP, "event_list.php?lang=" . LANG . "&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=Y&&set_filter=Y", $show_money)); $full_list = $show_events == "list" || $show_events == "event1" || $show_events == "event2"; $arHeaders = array(); if ($show_events == "list" || $show_events == "event1") { $arHeaders[] = array("id" => "EVENT1", "content" => "event1", "default" => true); } if ($show_events == "list" || $show_events == "event2") { $arHeaders[] = array("id" => "EVENT2", "content" => "event2", "default" => true); } if ($list_mode != "period") { $arHeaders[] = array("id" => "today", "content" => GetMessage("STAT_TODAY") . "<br>" . GetMessage("STAT_STRAIGHT"), "align" => "right", "default" => true); $arHeaders[] = array("id" => "today_back", "content" => GetMessage("STAT_TODAY") . "<br>" . GetMessage("STAT_BACK"), "align" => "right", "default" => true); $arHeaders[] = array("id" => "yesterday", "content" => GetMessage("STAT_YESTERDAY") . "<br>" . GetMessage("STAT_STRAIGHT"), "align" => "right", "default" => true); $arHeaders[] = array("id" => "yesterday_back", "content" => GetMessage("STAT_YESTERDAY") . "<br>" . GetMessage("STAT_BACK"), "align" => "right", "default" => true); $arHeaders[] = array("id" => "bef_yesterday", "content" => GetMessage("STAT_BEFYESTERDAY") . "<br>" . GetMessage("STAT_STRAIGHT"), "align" => "right", "default" => true); $arHeaders[] = array("id" => "bef_yesterday_back", "content" => GetMessage("STAT_BEFYESTERDAY") . "<br>" . GetMessage("STAT_BACK"), "align" => "right", "default" => true); } global $find_date1_period, $find_date2_period, $is_filtered; if ((strlen($find_date1_period) > 0 || strlen($find_date2_period) > 0) && $is_filtered) { $arHeaders[] = array("id" => "period", "content" => GetMessage("STAT_PERIOD") . "<br>" . GetMessage("STAT_STRAIGHT"), "align" => "right", "default" => true); $arHeaders[] = array("id" => "period_back", "content" => GetMessage("STAT_PERIOD") . "<br>" . GetMessage("STAT_BACK"), "align" => "right", "default" => true); } $arHeaders[] = array("id" => "total", "content" => GetMessage("STAT_TOTAL") . "<br>" . GetMessage("STAT_STRAIGHT"), "align" => "right", "default" => true); $arHeaders[] = array("id" => "total_back", "content" => GetMessage("STAT_TOTAL") . "<br>" . GetMessage("STAT_BACK"), "align" => "right", "default" => true); $lAdmin->AddHeaders($arHeaders); if ($full_list) { $events = new CDBResult(); $events->InitFromArray($arEvents); $rsData = new CAdminResult($events, $lAdmin->table_id); $first = true; $i = COption::GetOptionInt("statistic", "ADV_DETAIL_TOP_SIZE"); while ($i > 0 && ($arRes = $rsData->NavNext(true, "e_"))) { if ($first) { foreach ($arRes as $key => $value) { global ${"e_" . $key}; } $first = false; } $row =& $lAdmin->AddRow($e_ID, $arRes); if ($show_events == "list") { $title = "ID = " . $e_ID; if (strlen($e_EVENT1) > 0) { $title .= "\nevent1 = " . $e_EVENT1; } if (strlen($e_EVENT2) > 0) { $title .= "\nevent2 = " . $e_EVENT2; } if (strlen($e_NAME) > 0) { $title .= "\n" . GetMessage("STAT_NAME") . " " . $e_NAME; } if (strlen($e_DESCRIPTION) > 0) { $title .= "\n" . GetMessage("STAT_DESCRIPTION") . " " . $e_DESCRIPTION; } $name = "<a target=\"_blank\" href=\"event_type_list.php?lang=" . LANG . "&find_id=" . $e_ID . "&find_id_exact_match=Y&set_filter=Y\" class=\"tablebodylink\" title=\"" . $title . "\">" . $e_EVENT . "</a>"; } elseif ($show_events == "event1") { $name = "<a target=\"_blank\" href=\"event_type_list.php?lang=" . LANG . "&find_event1=" . urlencode("\"" . $e_EVENT1 . "\"") . "&set_filter=Y\" class=\"tablebodylink\">" . $e_EVENT1 . "</a>"; } elseif ($show_events == "event2") { $name = "<a target=\"_blank\" href=\"event_type_list.php?lang=" . LANG . "&find_event2=" . urlencode("\"" . $e_EVENT2 . "\"") . "&set_filter=Y\" class=\"tablebodylink\">" . $e_EVENT2 . "</a>"; } $strHTML = event_format_link(array("C" => $e_COUNTER_TODAY, "M" => $e_MONEY_TODAY), $f_GUESTS_TODAY, false, $GROUP, "event_list.php?lang=" . LANG . "&find_event_id=" . $e_ID . "&find_event_id_exact_match=Y&find_adv_id=" . $adv_id . "&find_adv_id_exact_match=Y&find_adv_back=N&find_date1=" . urlencode($now_date) . "&find_date2=" . urlencode($now_date) . "&set_filter=Y", $show_money); $row->AddViewField("today", $strHTML); $strHTML = event_format_link(array("C" => $e_COUNTER_BACK_TODAY, "M" => $e_MONEY_BACK_TODAY), $f_GUESTS_BACK_TODAY, true, $GROUP, "event_list.php?lang=" . LANG . "&find_event_id=" . $e_ID . "&find_event_id_exact_match=Y&find_adv_id_exact_match=Y&find_adv_id=" . $adv_id . "&find_adv_back=Y&find_date1=" . urlencode($now_date) . "&find_date2=" . urlencode($now_date) . "&set_filter=Y", $show_money); $row->AddViewField("today_back", $strHTML); $strHTML = event_format_link(array("C" => $e_COUNTER_YESTERDAY, "M" => $e_MONEY_YESTERDAY), $f_GUESTS_YESTERDAY, false, $GROUP, "event_list.php?lang=" . LANG . "&find_event_id=" . $e_ID . "&find_adv_id=" . $adv_id . "&find_event_id_exact_match=Y&find_adv_id_exact_match=Y&find_adv_back=N&find_date1=" . urlencode($yesterday_date) . "&find_date2=" . urlencode($yesterday_date) . "&set_filter=Y", $show_money); $row->AddViewField("yesterday", $strHTML); $strHTML = event_format_link(array("C" => $e_COUNTER_BACK_YESTERDAY, "M" => $e_MONEY_BACK_YESTERDAY), $f_GUESTS_BACK_YESTERDAY, true, $GROUP, "event_list.php?lang=" . LANG . "&find_event_id=" . $e_ID . "&find_adv_id=" . $adv_id . "&find_event_id_exact_match=Y&find_adv_id_exact_match=Y&find_adv_back=Y&find_date1=" . urlencode($yesterday_date) . "&find_date2=" . urlencode($yesterday_date) . "&set_filter=Y", $show_money); $row->AddViewField("yesterday_back", $strHTML); $strHTML = event_format_link(array("C" => $e_COUNTER_BEF_YESTERDAY, "M" => $e_MONEY_BEF_YESTERDAY), $f_GUESTS_BEF_YESTERDAY, false, $GROUP, "event_list.php?lang=" . LANG . "&find_event_id=" . $e_ID . "&find_adv_id=" . $adv_id . "&find_event_id_exact_match=Y&find_adv_id_exact_match=Y&find_adv_back=N&find_date1=" . urlencode($bef_yesterday_date) . "&find_date2=" . urlencode($bef_yesterday_date) . "&set_filter=Y", $show_money); $row->AddViewField("bef_yesterday", $strHTML); $strHTML = event_format_link(array("C" => $e_COUNTER_BACK_BEF_YESTERDAY, "M" => $e_MONEY_BACK_BEF_YESTERDAY), $f_GUESTS_BACK_BEF_YESTERDAY, true, $GROUP, "event_list.php?lang=" . LANG . "&find_event_id=" . $e_ID . "&find_adv_id=" . $adv_id . "&find_event_id_exact_match=Y&find_adv_id_exact_match=Y&find_adv_back=Y&find_date1=" . urlencode($bef_yesterday_date) . "&find_date2=" . urlencode($bef_yesterday_date) . "&set_filter=Y", $show_money); $row->AddViewField("bef_yesterday_back", $strHTML); if ((strlen($find_date1_period) > 0 || strlen($find_date2_period) > 0) && $is_filtered) { $strHTML = event_format_link(array("C" => $e_COUNTER_PERIOD, "M" => $e_MONEY_PERIOD), $f_GUESTS_PERIOD, false, $GROUP, "event_list.php?lang=" . LANG . "&find_event_id=" . $e_ID . "&find_adv_id=" . $adv_id . "&find_event_id_exact_match=Y&find_adv_id_exact_match=Y&find_adv_back=N&find_date1=" . urlencode($find_date1_period) . "&find_date2=" . urlencode($find_date2_period) . "&set_filter=Y", $show_money); $row->AddViewField("period", $strHTML); $strHTML = event_format_link(array("C" => $e_COUNTER_BACK_PERIOD, "M" => $e_MONEY_BACK_PERIOD), $f_GUESTS_BACK_PERIOD, true, $GROUP, "event_list.php?lang=" . LANG . "&find_event_id=" . $e_ID . "&find_adv_id=" . $adv_id . "&find_event_id_exact_match=Y&find_adv_id_exact_match=Y&find_adv_back=Y&find_date1=" . urlencode($find_date1_period) . "&find_date2=" . urlencode($find_date2_period) . "&set_filter=Y", $show_money); $row->AddViewField("period_back", $strHTML); } $strHTML = event_format_link(array("C" => $e_COUNTER, "M" => $e_MONEY), $f_GUESTS, false, $GROUP, "event_list.php?lang=" . LANG . "&find_event_id=" . $e_ID . "&find_adv_id=" . $adv_id . "&find_event_id_exact_match=Y&find_adv_id_exact_match=Y&find_adv_back=N&set_filter=Y", $show_money); $row->AddViewField("total", $strHTML); $strHTML = event_format_link(array("C" => $e_COUNTER_BACK, "M" => $e_MONEY_BACK), $f_GUESTS_BACK, true, $GROUP, "event_list.php?lang=" . LANG . "&find_event_id=" . $e_ID . "&find_adv_id=" . $adv_id . "&find_event_id_exact_match=Y&find_adv_id_exact_match=Y&find_adv_back=Y&set_filter=Y", $show_money); $row->AddViewField("total_back", $strHTML); --$i; } } $row =& $lAdmin->AddRow(0, array()); $row->SetFeatures(array("footer" => $full_list)); $row->AddViewField("EVENT1", GetMessage("STAT_FOOTER")); $row->AddViewField("today", $arSum["TODAY"]); $row->AddViewField("today_back", $arSum["TODAY_BACK"]); $row->AddViewField("yesterday", $arSum["YESTERDAY"]); $row->AddViewField("yesterday_back", $arSum["YESTERDAY_BACK"]); $row->AddViewField("bef_yesterday", $arSum["BEF_YESTERDAY"]); $row->AddViewField("bef_yesterday_back", $arSum["BEF_YESTERDAY_BACK"]); if ((strlen($find_date1_period) > 0 || strlen($find_date2_period) > 0) && $is_filtered) { $row->AddViewField("period", $arSum["PERIOD"]); $row->AddViewField("period_back", $arSum["PERIOD_BACK"]); } $row->AddViewField("total", $arSum["TOTAL"]); $row->AddViewField("total_back", $arSum["TOTAL_BACK"]); }
$row =& $lAdmin->AddRow(0, array()); $row->SetFeatures(array("footer" => true)); $row->AddViewField("DATE_STAT", GetMessage("STAT_TOTAL")); $row->AddViewField("SESSIONS", $ar["SESSIONS_PERIOD"]); $row->AddViewField("SESSIONS_BACK", $ar["SESSIONS_BACK_PERIOD"]); $row->AddViewField("GUESTS", $ar["GUESTS_PERIOD"]); $row->AddViewField("GUESTS_BACK", $ar["GUESTS_BACK_PERIOD"]); $row->AddViewField("NEW_GUESTS", $ar["NEW_GUESTS_PERIOD"]); $row->AddViewField("C_HOSTS", $ar["C_HOSTS_PERIOD"]); $row->AddViewField("HOSTS_BACK", $ar["HOSTS_BACK_PERIOD"]); $row->AddViewField("HITS", $ar["HITS_PERIOD"]); $row->AddViewField("HITS_BACK", $ar["HITS_BACK_PERIOD"]); $row->AddViewField("EVENTS", " "); } $aContext = array(array("TEXT" => GetMessage("STAT_ADV_LIST"), "ICON" => "btn_list", "LINK" => "/bitrix/admin/adv_list.php?lang=" . LANG)); $dynamic_days = CAdv::DynamicDays($find_adv_id, $arFilter["DATE1"], $arFilter["DATE2"]); if ($dynamic_days >= 2 && function_exists("ImageCreate")) { $aContext[] = array("TEXT" => GetMessage("STAT_GRAPH"), "LINK" => "/bitrix/admin/adv_graph_list.php?lang=" . LANG . "&ADV_ID=" . $find_adv_id . "&find_date1=" . $arFilter["DATE1"] . "&find_date2=" . $arFilter["DATE2"] . "&set_filter=Y"); } if ($context != "tab") { $lAdmin->AddAdminContextMenu($aContext); } $lAdmin->CheckListMode(); $APPLICATION->SetTitle(GetMessage("STAT_RECORDS_LIST")); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"; ?> <form name="form1" method="GET" action="<?php echo $APPLICATION->GetCurPage(); ?> ?">
function GetEventListByReferer($value, $arFilter) { $err_mess = "File: " . __FILE__ . "<br>Line: "; $DB = CDatabase::GetModuleConnection('statistic'); if ($arFilter["GROUP"] == "referer1") { $group = "A.REFERER1"; } else { $group = "A.REFERER2"; } $where = ""; $filter_period = false; $strSqlPeriod = ""; $strT = ""; if (is_array($arFilter)) { $date1 = $arFilter["DATE1_PERIOD"]; $date2 = $arFilter["DATE2_PERIOD"]; $date_from = MkDateTime(ConvertDateTime($date1, "D.M.Y"), "d.m.Y"); $date_to = MkDateTime(ConvertDateTime($date2, "D.M.Y") . " 23:59", "d.m.Y H:i"); if (strlen($date1) > 0) { $filter_period = true; if (strlen($date2) > 0) { $strSqlPeriod = "sum(if(AE.DATE_STAT<FROM_UNIXTIME('{$date_from}'),0, if(AE.DATE_STAT>FROM_UNIXTIME('{$date_to}'),0,"; $strT = ")))"; } else { $strSqlPeriod = "sum(if(AE.DATE_STAT<FROM_UNIXTIME('{$date_from}'),0,"; $strT = "))"; } } elseif (strlen($date2) > 0) { $filter_period = true; $strSqlPeriod = "sum(if(AE.DATE_STAT>FROM_UNIXTIME('{$date_to}'),0,"; $strT = "))"; } } $arFilter["GROUP"] = ""; $a = CAdv::GetList($by, $order, $arFilter, $is_filtered, "", $arrGROUP_DAYS, $strSql_res); if ($is_filtered) { $str_id = "0"; while ($ar = $a->Fetch()) { $str_id .= "," . intval($ar["ID"]); } $where = "and A.ID in ({$str_id})"; } $strSql = "\n\t\t\tSELECT\n\t\t\t\tE.ID, E.EVENT1, E.EVENT2, E.C_SORT, E.NAME, E.DESCRIPTION,\n\t\t\t\tsum(AE.COUNTER)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCOUNTER,\n\t\t\t\tsum(AE.COUNTER_BACK)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCOUNTER_BACK,\n\t\t\t\tsum(if(to_days(curdate())=to_days(AE.DATE_STAT),ifnull(AE.COUNTER,0),0))\t\t\t\t\tCOUNTER_TODAY,\n\t\t\t\tsum(if(to_days(curdate())-to_days(AE.DATE_STAT)=1,ifnull(AE.COUNTER,0),0))\t\t\t\t\tCOUNTER_YESTERDAY,\n\t\t\t\tsum(if(to_days(curdate())-to_days(AE.DATE_STAT)=2,ifnull(AE.COUNTER,0),0))\t\t\t\t\tCOUNTER_BEF_YESTERDAY,\n\t\t\t\tsum(if(to_days(curdate())=to_days(AE.DATE_STAT),ifnull(AE.COUNTER_BACK,0),0))\t\t\t\tCOUNTER_BACK_TODAY,\n\t\t\t\tsum(if(to_days(curdate())-to_days(AE.DATE_STAT)=1,ifnull(AE.COUNTER_BACK,0),0))\t\t\t\tCOUNTER_BACK_YESTERDAY,\n\t\t\t\tsum(if(to_days(curdate())-to_days(AE.DATE_STAT)=2,ifnull(AE.COUNTER_BACK,0),0))\t\t\t\tCOUNTER_BACK_BEF_YESTERDAY,\n\t\t\t\t" . ($filter_period ? $strSqlPeriod . 'ifnull(AE.COUNTER,0)' . $strT : 'sum(AE.COUNTER)') . "\t\tCOUNTER_PERIOD,\n\t\t\t\t" . ($filter_period ? $strSqlPeriod . 'ifnull(AE.COUNTER_BACK,0)' . $strT : 'sum(AE.COUNTER_BACK)') . "\tCOUNTER_BACK_PERIOD,\n\n\t\t\t\tsum(AE.MONEY)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMONEY,\n\t\t\t\tsum(AE.MONEY_BACK)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMONEY_BACK,\n\t\t\t\tsum(if(to_days(curdate())=to_days(AE.DATE_STAT),ifnull(AE.MONEY,0),0))\t\t\t\t\t\tMONEY_TODAY,\n\t\t\t\tsum(if(to_days(curdate())-to_days(AE.DATE_STAT)=1,ifnull(AE.MONEY,0),0))\t\t\t\t\tMONEY_YESTERDAY,\n\t\t\t\tsum(if(to_days(curdate())-to_days(AE.DATE_STAT)=2,ifnull(AE.MONEY,0),0))\t\t\t\t\tMONEY_BEF_YESTERDAY,\n\t\t\t\tsum(if(to_days(curdate())=to_days(AE.DATE_STAT),ifnull(AE.MONEY_BACK,0),0))\t\t\t\t\tMONEY_BACK_TODAY,\n\t\t\t\tsum(if(to_days(curdate())-to_days(AE.DATE_STAT)=1,ifnull(AE.MONEY_BACK,0),0))\t\t\t\tMONEY_BACK_YESTERDAY,\n\t\t\t\tsum(if(to_days(curdate())-to_days(AE.DATE_STAT)=2,ifnull(AE.MONEY_BACK,0),0))\t\t\t\tMONEY_BACK_BEF_YESTERDAY,\n\t\t\t\t" . ($filter_period ? $strSqlPeriod . 'ifnull(AE.MONEY,0)' . $strT : 'sum(AE.MONEY)') . "\t\t\tMONEY_PERIOD,\n\t\t\t\t" . ($filter_period ? $strSqlPeriod . 'ifnull(AE.MONEY_BACK,0)' . $strT : 'sum(AE.MONEY_BACK)') . "\tMONEY_BACK_PERIOD,\n\n\t\t\t\tif (length(E.NAME)>0, E.NAME,\n\t\t\t\t\tconcat(ifnull(E.EVENT1,''),' / ',ifnull(E.EVENT2,''))) EVENT\n\t\t\tFROM\n\t\t\t\tb_stat_adv A,\n\t\t\t\tb_stat_adv_event_day AE,\n\t\t\t\tb_stat_event E\n\t\t\tWHERE\n\t\t\t\t1=1\n\t\t\t\t{$where}\n\t\t\tand\t{$group}='" . $DB->ForSql($value, 255) . "'\n\t\t\tand AE.ADV_ID = A.ID\n\t\t\tand E.ID = AE.EVENT_ID\n\t\t\tand E.ADV_VISIBLE = 'Y'\n\t\t\tGROUP BY\n\t\t\t\tE.ID, E.EVENT1, E.EVENT2, E.C_SORT, E.NAME, E.DESCRIPTION\n\t\t\tORDER BY\n\t\t\t\tE.C_SORT desc,\n\t\t\t\tCOUNTER_TODAY desc, COUNTER_BACK_TODAY desc,\n\t\t\t\tCOUNTER_YESTERDAY desc, COUNTER_BACK_YESTERDAY desc,\n\t\t\t\tCOUNTER_BEF_YESTERDAY desc, COUNTER_BACK_BEF_YESTERDAY desc,\n\t\t\t\tCOUNTER_PERIOD desc, COUNTER_BACK_PERIOD desc,\n\t\t\t\tCOUNTER desc, COUNTER_BACK\n\t\t\tLIMIT " . intval(COption::GetOptionString('statistic', 'RECORDS_LIMIT')) . "\n\t\t\t"; $res = $DB->Query($strSql, false, $err_mess . __LINE__); return $res; }
$next_date = AddTime($prev_date, 1, "D"); if ($date > $next_date && intval($prev_date) > 0) { $date_tmp = $next_date; while ($date_tmp < $date) { $arrX[] = $date_tmp; foreach ($find_events as $eid) { $arrY_events[$eid][] = 0; $arrY_events_back[$eid][] = 0; } $date_tmp = AddTime($date_tmp, 1, "D"); } } $arrX[] = $date; $arF["DATE1_PERIOD"] = GetTime($date); $arF["DATE2_PERIOD"] = GetTime($date); $e = CAdv::GetEventList($ADV_ID, $by = "s_def", $order = "desc", $arF, $is_filtered); while ($er = $e->Fetch()) { if ($find_show_money == "Y" && $STAT_RIGHT > "M") { $arrEvent[$er["ID"]][$date] = intval($er["MONEY_PERIOD"]); $arrEvent_back[$er["ID"]][$date] = intval($er["MONEY_BACK_PERIOD"]); } else { $arrEvent[$er["ID"]][$date] = intval($er["COUNTER_PERIOD"]); $arrEvent_back[$er["ID"]][$date] = intval($er["COUNTER_BACK_PERIOD"]); } } foreach ($find_events as $eid) { $arrY_events[$eid][] = intval($arrEvent[$eid][$date]); $arrY_events_back[$eid][] = intval($arrEvent_back[$eid][$date]); } $prev_date = $date; }