%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/statistic/admin/ |
| Current File : //home/bitrix/www/bitrix/modules/statistic/admin/city_list.php |
<?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__);
$err_mess = "File: ".__FILE__."<br>Line: ";
/***************************************************************************
GET | POST handlers
****************************************************************************/
$arrCOUNTRY = array();
$rs = CCountry::GetList($v1="s_name", $v2="asc", array(), $v);
while ($ar = $rs->Fetch())
$arrCOUNTRY[$ar["ID"]] = $ar["NAME"]." [".$ar["ID"]."]";
$sTableID = "t_city_list";
$oSort = new CAdminSorting($sTableID);
$lAdmin = new CAdminList($sTableID, $oSort);
if (!isset($find_data_type) || !in_array($find_data_type,Array("NEW_GUESTS","HITS","C_EVENTS","SESSIONS")))
$find_data_type = false;
if($lAdmin->IsDefaultFilter())
{
//$find_data_type = "SESSIONS";
$find_date1_DAYS_TO_BACK = 90;
$find_country_id = "";
$set_filter = "Y";
}
$FilterArr = array(
"find_date1",
"find_date2",
"find_country_id",
);
$lAdmin->InitFilter($FilterArr);
$arSettings = array("saved_group_by");
InitFilterEx($arSettings, $sTableID."_settings", "get");
if($find_data_type===false)//Restore saved setting
{
if (strlen($saved_group_by) > 0)
$find_data_type = $saved_group_by;
else
$find_data_type = "SESSIONS";
}
elseif($saved_group_by!=$find_data_type)//Set if changed
$saved_group_by=$find_data_type;
InitFilterEx($arSettings, $sTableID."_settings", "set");
$arrDays = array();
AdminListCheckDate($lAdmin, array("find_date1"=>$find_date1, "find_date2"=>$find_date2));
$arrLegend = array();
$arrTotalLegend = array();
$arFilter = Array(
"COUNTRY_ID" => $find_country_id < 0? "": $find_country_id,
"DATE1" => $find_date1,
"DATE2" => $find_date2
);
if(strlen($arFilter["COUNTRY_ID"]) == 2)
{
$arrDays = CCity::GetGraphArray($arFilter, $arrLegend, $find_data_type, 20);
$arrTotalDays = CCity::GetGraphArray($arFilter, $arrTotalLegend, "TOTAL_".$find_data_type, 20);
}
else
{
$lAdmin->AddFilterError(GetMessage("STAT_NO_COUNTRY_ID"));
}
$lAdmin->BeginCustomContent();
if(!function_exists("ImageCreate")):
ShowError(GetMessage("STAT_GD_NOT_INSTALLED"));
else:
$width = COption::GetOptionString("statistic", "GRAPH_WEIGHT");
$height = COption::GetOptionString("statistic", "GRAPH_HEIGHT");
$diameter = COption::GetOptionString("statistic", "DIAGRAM_DIAMETER");
?>
<?
$found = false;
foreach($arrLegend as $key => $val)
{
if ($val[$find_data_type] > 0)
{
$found = true; break;
}
}
?>
<?if($found):?>
<?if(count($arrDays) > 1):?>
<div class="graph">
<table border="0" cellspacing="1" cellpadding="0" align="center">
<tr>
<td valign="center">
<img src="/bitrix/admin/city_graph.php?find_data_type=<?=$find_data_type?><?=GetFilterParams($FilterArr)?>&width=<?=$width?>&height=<?=$height?>&lang=<?echo LANG?>" width="<?=$width?>" height="<?=$height?>">
</td>
</tr>
</table>
</div>
<?endif?>
<div class="graph">
<?echo GetMessage("STAT_DYNAMIC_GRAPH2")?>
<table cellspacing=0 cellpadding=10 align="center">
<tr>
<td valign="center"><img src="/bitrix/admin/city_diagram.php?<?=GetFilterParams($FilterArr)?>&lang=<?=LANG?>&find_data_type=<?=$find_data_type?>" width="<?=$diameter?>" height="<?=$diameter?>"></td>
<td valign="center">
<table cellpadding=2 cellspacing=0 border=0 class="legend">
<?
$sum = 0;
foreach($arrLegend as $keyL => $arrL)
$sum += $arrL[$find_data_type];
$i=0;
foreach($arrLegend as $keyL => $arrL) :
$i++;
$id = $keyL;
$name = $arrL["NAME"];
$counter = intval($arrL[$find_data_type]);
$procent = (intval($sum)>0) ? round(($counter*100)/$sum,2) : 0;
$color = $arrL["COLOR"];
?>
<tr>
<td class="number" nowrap><?=$i."."?></td>
<td valign="center" class="color">
<div style="background-color: <?="#".$color?>"></div>
</td>
<td class="number" nowrap><?echo sprintf("%01.2f", $procent)."%"?></td>
<td nowrap>(<?
if ($find_data_type=="SESSIONS") :
?><a href="/bitrix/admin/session_list.php?lang=<?=LANGUAGE_ID?>&find_city_id=<?echo urlencode($id)?>&find_city_exact_match=Y&find_date1=<?echo urlencode($arFilter["DATE1"])?>&find_date2=<?echo urlencode($arFilter["DATE2"])?>&set_filter=Y"><?=$counter?></a><?
elseif ($find_data_type=="NEW_GUESTS") :
?><a href="/bitrix/admin/guest_list.php?lang=<?=LANGUAGE_ID?>&find_city_id=<?echo urlencode($id)?>&find_city_exact_match=Y&find_sess2=1&find_period_date1=<?echo urlencode($arFilter["DATE1"])?>&find_period_date2=<?echo urlencode($arFilter["DATE2"])?>&set_filter=Y"><?=$counter?></a><?
elseif ($find_data_type=="HITS") :
?><a href="/bitrix/admin/hit_list.php?lang=<?=LANGUAGE_ID?>&find_city_id=<?echo urlencode($id)?>&find_city_exact_match=Y&find_date1=<?echo urlencode($arFilter["DATE1"])?>&find_date2=<?echo urlencode($arFilter["DATE2"])?>&set_filter=Y"><?=$counter?></a><?
elseif ($find_data_type=="C_EVENTS") :
?><?=$counter?><?
endif;
?>)</td>
<td nowrap><?=htmlspecialcharsbx($name)?></td>
</tr>
<?endforeach;?>
</table>
</td>
</tr>
</table>
</div>
<?else:
CAdminMessage::ShowMessage(GetMessage("STAT_NO_DATA"));
endif?>
<?
$found = false;
foreach($arrTotalLegend as $key => $val)
{
if ($val["TOTAL_".$find_data_type] > 0)
{
$found = true; break;
}
}
if ($found):
?>
<div class="graph">
<?echo GetMessage("STAT_STATIC_GRAPH")?>
<table cellspacing=0 cellpadding=10 class="graph" align="center">
<tr>
<td valign="center"><img src="/bitrix/admin/city_diagram.php?<?=GetFilterParams($FilterArr)?>&lang=<?=LANGUAGE_ID?>&find_data_type=<?=$find_data_type?>&diagram_type=TOTAL" width="<?=$diameter?>" height="<?=$diameter?>"></td>
<td valign="center">
<table cellpadding=2 cellspacing=0 border=0 class="legend">
<?
$sum = 0;
foreach($arrTotalLegend as $keyL => $arrL)
$sum += $arrL["TOTAL_".$find_data_type];
$i=0;
foreach($arrTotalLegend as $keyL => $arrL) :
$i++;
$id = $keyL;
$name = $arrL["NAME"];
$counter = intval($arrL["TOTAL_".$find_data_type]);
$procent = (intval($sum)>0) ? round(($counter*100)/$sum,2) : 0;
$color = $arrL["COLOR"];
?>
<tr>
<td class="number" nowrap><?=$i."."?></td>
<td valign="center" class="color">
<div style="background-color: <?="#".$color?>"></div>
</td>
<td class="number" nowrap><?echo sprintf("%01.2f", $procent)."%"?></td>
<td nowrap>(<?
if ($find_data_type=="SESSIONS") :
?><a href="/bitrix/admin/session_list.php?lang=<?=LANGUAGE_ID?>&find_city_id=<?echo urlencode($id)?>&find_city_exact_match=Y&set_filter=Y"><?=$counter?></a><?
elseif ($find_data_type=="NEW_GUESTS") :
?><a href="/bitrix/admin/guest_list.php?lang=<?=LANGUAGE_ID?>&find_city_id=<?echo urlencode($id)?>&find_city_exact_match=Y&find_sess2=1&set_filter=Y"><?=$counter?></a><?
elseif ($find_data_type=="HITS") :
?><a href="/bitrix/admin/hit_list.php?lang=<?=LANGUAGE_ID?>&find_city_id=<?echo urlencode($id)?>&find_city_exact_match=Y&set_filter=Y"><?=$counter?></a><?
elseif ($find_data_type=="C_EVENTS") :
?><?=$counter?><?
endif;
?>)</td>
<td nowrap><?=htmlspecialcharsbx($name)?></td>
</tr>
<?endforeach;?>
</table>
</td>
</tr>
</table>
</div>
<?else:
CAdminMessage::ShowMessage(GetMessage("STAT_NO_DATA"));
endif?>
<?
endif;
$lAdmin->EndCustomContent();
switch($find_data_type)
{
case "NEW_GUESTS":
$group_title = GetMessage("STAT_NEW_GUESTS");
break;
case "HITS":
$group_title = GetMessage("STAT_HITS");
break;
case "C_EVENTS":
$group_title = GetMessage("STAT_EVENTS");
break;
case "SESSIONS":
$group_title = GetMessage("STAT_SESSIONS");
break;
default:
$group_title = "";
break;
}
$aContext = array(
array(
"TEXT" => $group_title,
"MENU" => array(
array(
"TEXT"=>GetMessage("STAT_SESSIONS"),
"ACTION"=>$lAdmin->ActionDoGroup(0, "", "find_data_type=SESSIONS"),
"ICON"=>($find_data_type=="SESSIONS"?"checked":""),
),
array(
"TEXT"=>GetMessage("STAT_NEW_GUESTS"),
"ACTION"=>$lAdmin->ActionDoGroup(0, "", "find_data_type=NEW_GUESTS"),
"ICON"=>($find_data_type=="NEW_GUESTS"?"checked":""),
),
array(
"TEXT"=>GetMessage("STAT_HITS"),
"ACTION"=>$lAdmin->ActionDoGroup(0, "", "find_data_type=HITS"),
"ICON"=>($find_data_type=="HITS"?"checked":""),
),
array(
"TEXT"=>GetMessage("STAT_EVENTS"),
"ACTION"=>$lAdmin->ActionDoGroup(0, "", "find_data_type=C_EVENTS"),
"ICON"=>($find_data_type=="C_EVENTS"?"checked":""),
),
),
),
);
$lAdmin->AddAdminContextMenu($aContext, false, false);
$lAdmin->CheckListMode();
$APPLICATION->SetTitle(GetMessage("STAT_RECORDS_LIST").': '.$group_title);
require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
$filter = new CAdminFilter($sTableID."_filter_id", array(GetMessage("STAT_F_COUNTRY_ID")));
?>
<form name="form1" method="post" action="<?=$APPLICATION->GetCurPage()?>?">
<?$filter->Begin();?>
<tr valign="top">
<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>
<?
$ref = array_values($arrCOUNTRY);
array_unshift($ref, GetMessage("MAIN_NO"));
$ref_id = array_keys($arrCOUNTRY);
array_unshift($ref_id, "-1");
?>
<tr valign="top">
<td valign="top"><?echo GetMessage("STAT_F_COUNTRY_ID")?>:</td>
<td><?echo SelectBoxFromArray(
"find_country_id",
array("REFERENCE"=>$ref, "REFERENCE_ID"=>$ref_id),
$find_country_id? $find_country_id: "-1",
"",
"style=\"width:100%\""
);?></td>
</tr>
<?
$filter->Buttons(array("table_id"=>$sTableID, "url"=>$APPLICATION->GetCurPage(), "form"=>"form1"));
$filter->End();
?>
</form>
<?$lAdmin->DisplayList();?>
<?require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");?>