Your IP : 18.224.95.213
<?php
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/statistic/prolog.php");
/** @var CMain $APPLICATION */
include($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/statistic/colors.php");
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)
if($ADV_DETAIL["REFERER2"]==$find_referer2 && !in_array($ADV_ID, $find_adv))
$find_adv[]=$ADV_ID;
}
if(isset($find_diagram_type))
{
if($find_diagram_type!="EXIT_COUNTER" && $find_diagram_type!="ENTER_COUNTER")
$find_diagram_type="COUNTER";
}
else
{
$find_diagram_type=false;
}
//Restore & Save settings (windows registry like)
$arSettings = array("saved_group_by");
InitFilterEx($arSettings, $sTableID."_settings", "get");
if($find_diagram_type===false)//Restore saved setting
{
if (strlen($saved_group_by) > 0)
$find_diagram_type = $saved_group_by;
else
$find_diagram_type = "COUNTER";
}
elseif($saved_group_by!=$find_diagram_type)//Set if changed
$saved_group_by=$find_diagram_type;
InitFilterEx($arSettings, $sTableID."_settings", "set");
$sTableID = "t_visit_section_list_".$find_diagram_type;
$oSort = new CAdminSorting($sTableID, "COUNTER", "desc");
$lAdmin = new CAdminList($sTableID, $oSort);
$arM = array(
GetMessage("STAT_F_SECTIONS"),
GetMessage("STAT_F_VIEW")
);
if (is_array($arrADV))
$arM[] = GetMessage("STAT_F_ADV");
$arM[] = GetMessage("STAT_F_ADV_DATA_TYPE");
$filter = new CAdminFilter(
$sTableID."_filter_id",
$arM
);
$arrExactMatch = array(
"SECTION_EXACT_MATCH" => "find_section_exact_match",
"FIRST_PAGE_EXACT_MATCH" => "find_first_page_exact_match",
"LAST_PAGE_EXACT_MATCH" => "find_last_page_exact_match",
"PAGE_EXACT_MATCH" => "find_page_exact_match"
);
$arFilterFields = Array(
"find_date1", "find_date2",
"find_site_id","find_page_404","find_section","find_section_exact_match",
"find_show",
"find_adv",
"find_adv_data_type",
);
if (!is_array($arrADV))
unset($arFilterFields["find_adv"]);
if($lAdmin->IsDefaultFilter())
{
$find_show = "D";
$find_section = "~/bitrix/";
$find_date1_DAYS_TO_BACK = 90;
}
$lAdmin->InitFilter($arFilterFields);
InitBVar($find_section_exact_match);
if(is_array($find_adv))
{
$find_adv_names = array();
foreach($find_adv as $value)
{
//$find_adv[$key]=intval($value);
$find_adv_names[]=$arrADV[$value];
}
}
else
{
$find_adv=array();
$find_adv_names = array();
}
AdminListCheckDate($lAdmin, array("find_date1"=>$find_date1, "find_date2"=>$find_date2));
if(is_array($find_adv) && count($find_adv)>0)
$str = implode(" | ",$find_adv);
else
$str = "";
$arFilter = Array(
"DATE1" => $find_date1,
"DATE2" => $find_date2,
"SHOW" => $find_show,
"SECTION" => $find_section,
"SITE_ID" => $find_site_id,
"PAGE_404" => $find_page_404,
"ADV" => $str,
"ADV_DATA_TYPE" => $find_adv_data_type,
"SECTION_EXACT_MATCH" => $find_section_exact_match,
);
$rsPages = CPage::GetList($find_diagram_type, $by, $order, $arFilter, $is_filtered);
switch ($find_diagram_type)
{
case "COUNTER":
$diagram_title = GetMessage("STAT_T_HITS_DIAGRAM");
$column_title = GetMessage("STAT_HITS");
$group_title = GetMessage("STAT_GROUP_BY_HITS");
break;
case "EXIT_COUNTER":
$diagram_title = GetMessage("STAT_T_EXIT_DIAGRAM");
$column_title = GetMessage("STAT_SESSIONS");
$group_title = GetMessage("STAT_GROUP_BY_EXITS");
break;
case "ENTER_COUNTER":
$diagram_title = GetMessage("STAT_T_ENTER_DIAGRAM");
$column_title = GetMessage("STAT_SESSIONS");
$group_title = GetMessage("STAT_GROUP_BY_ENTERS");
break;
}
$arrPages = array();
$max_counter = 0;
$sum_counter = 0;
while ($arPage = $rsPages->Fetch())
{
$arrPages[] = $arPage;
$sum_counter += $arPage["COUNTER"];
if (intval($arPage["COUNTER"])>$max_counter) $max_counter = intval($arPage["COUNTER"]);
}
$rsPages = new CDBResult;
$rsPages->InitFromArray($arrPages);
$rsData = new CAdminResult($rsPages, $sTableID);
$rsData->NavStart();
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("STAT_SECTION_PAGES")));
$arHeaders = Array();
$arHeaders[] = array("id"=>"NUMBER", "content"=>"ID","default"=>true,);
$arHeaders[] = array("id"=>"URL", "content"=>GetMessage("STAT_PAGE"), "sort"=>"s_url", "default"=>true,);
$arHeaders[] = array("id"=>"COUNTER", "content"=>$column_title, "sort"=>"s_counter", "default"=>true, "align" => "right");
$arHeaders[] = array("id"=>"PERCENT", "content"=>GetMessage("STAT_PERCENT"), "default"=>true, "align"=>"right",);
$lAdmin->AddHeaders($arHeaders);
$number = (intval($rsData->NavPageNomer)-1)*intval($rsData->NavPageSize);
// maximum diagram width in percent of work area
$max_width = 100;
// normalization
$max_relation = ($max_counter*100)/$max_width;
$s = "";
foreach($find_adv as $f)
$s .= "&find_adv[]=".urlencode($f);
while($arRes = $rsData->NavNext(true, "f_"))
{
$w = round(($f_COUNTER*100)/$max_relation);
$q = number_format(($f_COUNTER*100)/$sum_counter, 2, '.', '');
$number++;
$site_url = $arSites[$f_SITE_ID];
$row =& $lAdmin->AddRow($number, $arRes);
$str = '<a target="_blank" title="'.GetMessage("STAT_GO").'" href="'.$f_URL.'">»</a> ';
if ($f_DIR=="Y") :
$str .= '<a title="'.GetMessage("STAT_FILTER_PAGE_DIAGRAM_ALT").'" href="'.$APPLICATION->GetCurPage().'?lang='.LANG.GetFilterParams($arFilterFields).'&find_diagram_type='.$find_diagram_type.'&find_section='.urlencode("$f_URL% ~$f_URL").'&find_show=F&find_section_exact_match=Y&set_filter=Y">';
if ($f_URL_404=="Y") :
$str .= "<span class=\"stat_attention\">".TruncateText($f_URL,65)."</span>";
else :
$str .= TruncateText($f_URL,65);
endif;
$str .= "</a>";
else :
if ($f_URL_404=="Y") :
$str .= "<span class=\"stat_attention\">".TruncateText($f_URL,65)."</span>";
else :
$str .= TruncateText($f_URL,65);
endif;
endif;
$row->AddViewField("URL", $str);
$row->AddViewField("PERCENT", $q."%");
$row->AddViewField("NUMBER", $number);
$str = "<a href=\"hit_list.php?lang=".LANG."&find_url=".urlencode($f_URL."%")."&find_url_exact_match=Y&set_filter=Y\">".$f_COUNTER."</a>";
$row->AddViewField("COUNTER", $str);
$arActions = Array();
$arActions[] = array(
"ICON"=>"graphic",
"DEFAULT" => "Y",
"TEXT"=>GetMessage("STAT_SECTION_GRAPH"),
//"ACTION"=>"javascript:CloseWaitWindow();ShowGraph('".urlencode($f_URL)."', '".$f_SITE_ID."', '".$f_DIR."')",
"ACTION"=>"javascript:CloseWaitWindow();jsUtils.OpenWindow('section_graph_list.php?lang=".LANG.$s."&find_adv_data_type=".$find_adv_data_type."&date1=".urlencode($find_date1)."&date2=".urlencode($find_date2)."§ion=".urlencode($f_URL)."&site_id=".$f_SITE_ID."&is_dir=".$f_DIR."&set_default=Y', 620, 600);",
);
$arActions[] = array(
"ICON"=>"",
"TEXT"=>GetMessage("STAT_SECTION_LINK_STAT"),
"ACTION"=>$lAdmin->ActionRedirect($f_URL."?show_link_stat=Y"),
);
$row->AddActions($arActions);
//$row->AddViewField("GRAPH", '<img src="/bitrix/images/statistic/votebar.gif" width="'.($w==0 ? "0" : $w."%").'" height="10" border=0 alt="">');
}
$lAdmin->AddFooter(
array(
array("title"=>GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value"=>$rsData->SelectedRowsCount()),
array("title"=>GetMessage("STAT_TOTAL"), "value"=>$sum_counter),
)
);
if($context!="tab")
$lAdmin->AddAdminContextMenu(array());
$lAdmin->BeginPrologContent();?>
<?if (is_array($arrPages) && count($arrPages)>0):?>
<div class="graph">
<table cellpadding="0" cellspacing="0" border="0" class="graph" align="center">
<tr>
<td>
<?$diameter = COption::GetOptionString("statistic", "DIAGRAM_DIAMETER");?>
<img class="graph" src="<?echo htmlspecialcharsbx("visit_section_diagram.php?lang=".LANG."
&find_section=".urlencode($find_section)."&find_date1=".urlencode($find_date1)."&find_date2=".urlencode($find_date2)."&find_show=".urlencode($find_show)."&find_site_id=".urlencode($find_site_id)."&find_page_404=".urlencode($find_page_404)."&find_adv_data_type=".urlencode($find_adv_data_type)."&find_section_exact_match=".urlencode($find_section_exact_match).$s.GetFilterParams("find_")."&by=".urlencode($by)."&order=".urlencode($order))?>" width="<?=$diameter?>" height="<?=$diameter?>">
</td>
<td>
<table border="0" cellspacing="2" cellpadding="0" class="legend">
<?
$i = 1;
$max_width = 100;
$max_relation = ($max_counter*100)/$max_width;
$total = count($arrPages);
if ($total>10)
$total = 11;
$top_sum = 0;
foreach($arrPages as $key => $arVal):
if ($i==11) break;
$color = GetNextRGB($color, $total);
$q = number_format(($arVal["COUNTER"]*100)/$sum_counter, 2, '.', '');
//$w = round(($arVal["COUNTER"]*100)/$max_relation);
$top_sum += $arVal["COUNTER"];
$str = '<a target="_blank" title="'.GetMessage("STAT_GO").'" href="'.htmlspecialcharsbx($arVal["URL"]).'">»</a> ';
if ($arVal["DIR"]=="Y") :
$str .= '<a title="'.GetMessage("STAT_FILTER_PAGE_DIAGRAM_ALT").'" href="'.htmlspecialcharsbx($APPLICATION->GetCurPage().'?lang='.LANG.GetFilterParams($arFilterFields).'&find_diagram_type='.$find_diagram_type.'&find_section='.urlencode($arVal["URL"]."% ~".$arVal["URL"]).'&find_show=F&find_section_exact_match=Y&set_filter=Y').'">';
if ($arVal["URL_404"]=="Y") :
$str .= "<span class=\"stat_attention\">".htmlspecialcharsEx(TruncateText($arVal["URL"],45))."</span>";
else:
$str .= htmlspecialcharsEx(TruncateText($arVal["URL"],45));
endif;
$str .= "</a>";
else :
if(substr($arVal["URL"], -1) == "/")
$arVal["URL"] .= "index.php";
if ($arVal["URL_404"]=="Y") :
$str .= "<span class=\"stat_attention\">".htmlspecialcharsEx(TruncateText($arVal["URL"],45))."</span>";
else:
$str .= htmlspecialcharsEx(TruncateText($arVal["URL"],45));
endif;
endif;
?>
<tr>
<td valign="center" class="color">
<div style="background-color: <?="#".$color?>"></div>
</td>
<td class="number"><?=$q?>%</td>
<td><?=$str?></td>
<td class="number"><a href="<?echo htmlspecialcharsbx("hit_list.php?lang=".LANG."&find_url=".urlencode($arVal["URL"]."%")."&find_url_exact_match=Y&set_filter=Y")?>"><?echo $arVal["COUNTER"]?></a></td>
</tr>
<?$i++;endforeach;?>
<?if ($total==11):?>
<tr>
<td valign="center" class="color">
<div style="background-color: <?="#".GetNextRGB($color, $total)?>"></div>
</td>
<td class="number"><?=(number_format((($sum_counter-$top_sum)*100)/$sum_counter, 2, '.', ''))?>%</td>
<td><?=GetMessage("STAT_OTHER")?></td>
<td class="number"><?=($sum_counter-$top_sum)?></td>
</tr>
<?endif?>
</table>
</td>
</tr>
</table>
</div>
<?else:?>
<?//CAdminMessage::ShowMessage(GetMessage("STAT_NO_DATA"))?>
<?endif?>
<h2><?=$diagram_title?></h2>
<?
$lAdmin->EndPrologContent();
$lAdmin->CheckListMode();
if($find_diagram_type == "ENTER_COUNTER")
$APPLICATION->SetTitle(GetMessage("STAT_GROUP_BY_ENTERS"));
elseif($find_diagram_type == "EXIT_COUNTER")
$APPLICATION->SetTitle(GetMessage("STAT_GROUP_BY_EXITS"));
else
$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="<?=$APPLICATION->GetCurPage()?>">
<?$filter->Begin();?>
<tr valign="center">
<td width="0%" nowrap><?echo GetMessage("STAT_F_PERIOD").":"?></td>
<td width="0%" nowrap><?echo CalendarPeriod("find_date1", $find_date1, "find_date2", $find_date2, "form1","Y")?></td>
</tr>
<tr valign="center">
<td width="0%" nowrap><?echo GetMessage("STAT_F_SECTIONS")?>:</td>
<td width="0%" nowrap><?
echo SelectBoxFromArray("find_site_id", $arSiteDropdown, $find_site_id, GetMessage("STAT_D_SITE"));
?> <?
echo SelectBoxFromArray("find_page_404", array("reference"=>array(GetMessage("STAT_YES"), GetMessage("STAT_NO")), "reference_id"=>array("Y","N")), htmlspecialcharsbx($find_page_404), GetMessage("STAT_404"));
?> <input type="text" name="find_section" size="37" value="<?echo htmlspecialcharsbx($find_section)?>"><?=ShowExactMatchCheckbox("find_section")?> <?=ShowFilterLogicHelp()?></td>
</tr>
<tr valign="center">
<td width="0%" nowrap><?
echo GetMessage("STAT_F_VIEW")?>:</td>
<td width="100%" nowrap><?
$arr = array("reference"=>array(GetMessage("STAT_F_VIEW_SECTIONS"), GetMessage("STAT_F_VIEW_FILES")), "reference_id"=>array("D","F"));
echo SelectBoxFromArray("find_show", $arr, htmlspecialcharsbx($find_show), GetMessage("MAIN_ALL"));
?>
</td>
</tr>
<?
if (is_array($arrADV)):
?>
<tr valign="top">
<td width="0%" nowrap valign="top"><?
echo GetMessage("STAT_F_ADV")?>:<br><img src="/bitrix/images/statistic/mouse.gif" width="44" height="21" border=0 alt=""></td>
<td width="100%" nowrap><?
echo SelectBoxMFromArray("find_adv[]",array("REFERENCE"=>$find_adv_names, "REFERENCE_ID"=>$find_adv), $find_adv,"",false,"5", "style=\"width:300px;\"");
?>
<script language="Javascript">
function selectEventType(form, field)
{
jsUtils.OpenWindow('adv_multiselect.php?lang=<?=LANG?>&form='+form+'&field='+field, 600, 600);
}
jsSelectUtils.sortSelect('find_adv[]');
jsSelectUtils.selectAllOptions('find_adv[]');
</script>
<br>
<input type="button" OnClick="selectEventType('find_form','find_adv[]')" value="<?=GetMessage("MAIN_ADMIN_MENU_ADD")?>...">
<input type="button" OnClick="jsSelectUtils.deleteSelectedOptions('find_adv[]');" value="<?=GetMessage("MAIN_ADMIN_MENU_DELETE")?>">
</td>
</tr>
<?endif;?>
<tr valign="top">
<td width="0%" nowrap><?echo GetMessage("STAT_F_ADV_DATA_TYPE")?>:</td>
<td width="0%" nowrap><?
$arr = array(
"reference"=>array(
GetMessage("STAT_ADV_SUMMA"),
GetMessage("STAT_ADV_NO_BACK"),
GetMessage("STAT_ADV_BACK")
),
"reference_id"=>array("S","P","B"));
echo SelectBoxFromArray("find_adv_data_type", $arr, htmlspecialcharsbx($find_adv_data_type));
?></td>
</tr>
<?$filter->Buttons(array("table_id"=>$sTableID, "url"=>$APPLICATION->GetCurPage(), "form"=>"form1"));$filter->End();?>
</form>
<?
if ($message)
echo $message->Show();
?>
<?$lAdmin->DisplayList();?>
<?echo BeginNote();?>
<table border="0" width="100%" cellspacing="1" cellpadding="3">
<tr>
<td nowrap><?echo GetMessage("STAT_ATTENTION")?> !<br><?echo GetMessage("STAT_ATTENTION_GOTO")?></td>
</tr>
</table>
<?echo EndNote();?>
<?require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");