%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/statistic/admin/ |
Current File : //home/bitrix/www/bitrix/modules/statistic/admin/traffic.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 */ $STAT_RIGHT = $APPLICATION->GetGroupRight("statistic"); if($STAT_RIGHT=="D") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); include($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/statistic/colors.php"); IncludeModuleLangFile(__FILE__); $arrParams = array( "hour" => array( GetMessage("STAT_PAGES_HOURS"), GetMessage("STAT_GRAPH_BY_HOURS"), GetMessage("STAT_TRAFFIC_HOUR_GRAPH_TITLE"), GetMessage("STAT_TRAFFIC_HOUR_TABLE_TITLE"), ), "date" => array( GetMessage("STAT_PAGES_DATES"), GetMessage("STAT_GRAPH_BY_DATES"), GetMessage("STAT_TRAFFIC_DATE_GRAPH_TITLE"), GetMessage("STAT_TRAFFIC_DATE_TABLE_TITLE"), ), "weekday" => array( GetMessage("STAT_PAGES_WEEKDAYS"), GetMessage("STAT_GRAPH_BY_WEEKDAYS"), GetMessage("STAT_TRAFFIC_WEEKDAY_GRAPH_TITLE"), GetMessage("STAT_TRAFFIC_WEEKDAY_TABLE_TITLE"), ), "month" => array( GetMessage("STAT_PAGES_MONTHS"), GetMessage("STAT_GRAPH_BY_MONTHS"), GetMessage("STAT_TRAFFIC_MONTH_GRAPH_TITLE"), GetMessage("STAT_TRAFFIC_MONTH_TABLE_TITLE"), ), ); if(isset($graph_type)) { if($graph_type!="date" && $graph_type!="hour" && $graph_type!="weekday" && $graph_type!="month") $graph_type="date"; $saved_graph_type = $graph_type; } else { $graph_type=false;//no setting (will be read later from session) } $sTableID = "tbl_traf_list"; $oSort = new CAdminSorting($sTableID); $lAdmin = new CAdminList($sTableID, $oSort); $ref = $ref_id = array(); $rs = CSite::GetList(($v1="sort"), ($v2="asc")); while ($ar = $rs->Fetch()) { $ref[] = "[".$ar["ID"]."] ".$ar["NAME"]; $ref_id[] = $ar["ID"]; } $arSiteDropdown = array("reference" => $ref, "reference_id" => $ref_id); if($lAdmin->IsDefaultFilter()) { $find_date1_DAYS_TO_BACK=90; $find_date2 = ConvertTimeStamp(time()-86400, "SHORT"); $find_host = "Y"; $find_session = "Y"; $find_event = "Y"; $find_guest = "Y"; $find_new_guest = "Y"; $set_filter = "Y"; } $FilterArr1 = array( "find_hit", "find_host", "find_session", "find_event", "find_guest", "find_new_guest", ); $FilterArr2 = array( "find_site_id", "find_date1", "find_date2", ); $FilterArr = array_merge($FilterArr1, $FilterArr2); $lAdmin->InitFilter($FilterArr); //Restore & Save settings (windows registry like) $arSettings = array ("saved_graph_type"); InitFilterEx($arSettings, $sTableID."_settings", "get"); if($graph_type===false)//Restore saved setting $graph_type=$saved_graph_type; if($graph_type!="date" && $graph_type!="hour" && $graph_type!="weekday" && $graph_type!="month") $graph_type="date"; if($saved_graph_type!=$graph_type)//Set if changed $saved_graph_type=$graph_type; InitFilterEx($arSettings, $sTableID."_settings", "set"); AdminListCheckDate($lAdmin, array("find_date1"=>$find_date1, "find_date2"=>$find_date2)); $arFilter = Array( "DATE1" => $find_date1, "DATE2" => $find_date2, "SITE_ID" => $find_site_id, ); if(is_array($find_site_id)) { $site_filtered = count($find_site_id) > 0; } else { $site_filtered = (strlen($find_site_id) > 0 && $find_site_id != "NOT_REF"); } $lAdmin->BeginPrologContent(); ?> <? /*************************************************************************** HTML form ****************************************************************************/ $days = CTraffic::DynamicDays($arFilter["DATE1"], $arFilter["DATE2"], $arFilter["SITE_ID"]); //echo "1".$days."1"; if ($days<2) : CAdminMessage::ShowMessage(GetMessage("STAT_NOT_ENOUGH_DATA")); elseif (!function_exists("ImageCreate")) : CAdminMessage::ShowMessage(GetMessage("STAT_GD_NOT_INSTALLED")); elseif (count($lAdmin->arFilterErrors)==0) : $width = COption::GetOptionString("statistic", "GRAPH_WEIGHT"); $height = COption::GetOptionString("statistic", "GRAPH_HEIGHT"); ?> <div class="graph"> <?echo $arrParams[$graph_type][2]?> <table cellspacing="0" cellpadding="0" class="graph" border="0" align="center"> <tr> <td valign="center" class="graph"> <img class="graph" src="/bitrix/admin/traffic_graph.php?<?=GetFilterParams($FilterArr1)?>&<?=GetFilterParams($FilterArr2)?>&width=<?=$width?>&height=<?=$height?>&lang=<?=LANG?>&rand=<?=rand()?>&find_graph_type=<?=$graph_type?>" width="<?=$width?>" height="<?=$height?>"> </td> <td valign="center"> <table cellpadding="2" cellspacing="0" border="0" class="legend"> <?if ($find_hit=="Y"):?> <tr> <td valign="center"><img src="/bitrix/admin/graph_legend.php?color=<?=$arrColor["HITS"]?>" width="45" height="2"></td> <td nowrap><img src="/bitrix/images/1.gif" width="3" height="1"><?=GetMessage("STAT_HITS_2")?></td> </tr> <?endif;?> <?if ($find_host=="Y"):?> <tr> <td valign="center"><img src="/bitrix/admin/graph_legend.php?color=<?=$arrColor["HOSTS"]?>" width="45" height="2"></td> <td nowrap><img src="/bitrix/images/1.gif" width="3" height="1"><?=GetMessage("STAT_HOSTS_2")?></td> </tr> <?endif;?> <?if ($find_session=="Y"):?> <tr> <td valign="center"><img src="/bitrix/admin/graph_legend.php?color=<?=$arrColor["SESSIONS"]?>" width="45" height="2"></td> <td nowrap><img src="/bitrix/images/1.gif" width="3" height="1"><?=GetMessage("STAT_SESSIONS_2")?></td> </tr> <?endif;?> <?if ($find_event=="Y"):?> <tr> <td valign="center"><img src="/bitrix/admin/graph_legend.php?color=<?=$arrColor["EVENTS"]?>" width="45" height="2"></td> <td nowrap><img src="/bitrix/images/1.gif" width="3" height="1"><?=GetMessage("STAT_EVENTS_2")?></td> </tr> <?endif;?> <?if ($find_guest=="Y" && !$site_filtered):?> <tr> <td valign="center"><img src="/bitrix/admin/graph_legend.php?color=<?=$arrColor["GUESTS"]?>" width="45" height="2"></td> <td nowrap><img src="/bitrix/images/1.gif" width="3" height="1"><?=GetMessage("STAT_GUESTS_2")?></td> </tr> <?endif;?> <?if ($find_new_guest=="Y" && !$site_filtered):?> <tr> <td valign="center"><img src="/bitrix/admin/graph_legend.php?color=<?=$arrColor["NEW_GUESTS"]?>" width="45" height="2"></td> <td nowrap><img src="/bitrix/images/1.gif" width="3" height="1"><?=GetMessage("STAT_NEW_GUESTS_2")?></td> </tr> <?endif;?> </table> </td> </tr> </table> </div> <?endif;?> <h2><?echo $arrParams[$graph_type][3]?></h2> <? $lAdmin->EndPrologContent(); if($graph_type=="date") { $rsData = CTraffic::GetDailyList($by, $order, $arMaxMin, $arFilter, $is_filtered); } else { $temp_graph_type = $graph_type; $rs = CTraffic::GetSumList($temp_graph_type, $arFilter); $ar = $rs->Fetch(); switch ($graph_type) { case "hour": $start = 0; $end = 23; break; case "weekday": $start = 0; $end = 6; break; case "month": $start = 1; $end = 12; break; } $graph_type_upper = ToUpper($graph_type); $ra=array(); for ($i=$start; $i<=$end; $i++) { $ra[] = array ( "ID"=>$i, "HITS"=>$ar[$graph_type_upper."_HIT_".$i], "C_HOSTS"=>$ar[$graph_type_upper."_HOST_".$i], "SESSIONS"=>$ar[$graph_type_upper."_SESSION_".$i], "C_EVENTS"=>$ar[$graph_type_upper."_EVENT_".$i], "GUESTS"=>$ar[$graph_type_upper."_GUEST_".$i], "NEW_GUESTS"=>$ar[$graph_type_upper."_NEW_GUEST_".$i], ); } $rsData = new CDBResult; $rsData->InitFromArray($ra); } $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint($arrParams[$graph_type][0])); $arHeaders = array(); switch($graph_type) { case "date": $arHeaders[]= array( "id" =>"ID", "content" =>"ID", "sort" =>"s_id", "align" =>"right", "default" =>true, ); $arHeaders[]= array( "id" =>"DATE_STAT", "content" =>GetMessage("STAT_DATE"), "sort" =>"s_date", "default" =>true, ); $arHeaders[]= array( "id" =>"WDAY", "content" =>GetMessage("STAT_WEEKDAY"), "sort" =>false, "default" =>true, ); break; case "weekday": $arHeaders[]= array( "id" =>"ID", "content" =>GetMessage("STAT_WEEKDAY"), "sort" =>false, "default" =>true, ); break; case "hour": $arHeaders[]= array( "id" =>"ID", "content" =>GetMessage("STAT_HOUR"), "sort" =>false, "align" =>"right", "default" =>true, ); break; case "month": $arHeaders[]= array( "id" =>"ID", "content" =>GetMessage("STAT_MONTH"), "sort" =>false, "align" =>"right", "default" =>true, ); break; } $arHeaders[]= array( "id" =>"HITS", "content" =>GetMessage("STAT_HITS"), "sort" =>"s_hits", "align" =>"right", "default" =>true, ); $arHeaders[]= array( "id" =>"C_HOSTS", "content" =>GetMessage("STAT_HOSTS"), "sort" =>"s_hosts", "align" =>"right", "default" =>true, ); $arHeaders[]= array( "id" =>"SESSIONS", "content" =>GetMessage("STAT_SESSIONS"), "sort" =>"s_sessions", "align" =>"right", "default" =>true, ); $arHeaders[]= array( "id" =>"C_EVENTS", "content" =>GetMessage("STAT_EVENTS"), "sort" =>"s_events", "align" =>"right", "default" =>true, ); if(!$site_filtered): $arHeaders[]= array( "id" =>"GUESTS", "content" =>GetMessage("STAT_GUESTS"), "sort" =>"s_guests", "align" =>"right", "default" =>true, ); $arHeaders[]= array( "id" =>"NEW_GUESTS", "content" =>GetMessage("STAT_NEW_GUESTS_S"), "sort" =>"s_new_guests", "align" =>"right", "default" =>true, ); endif; $lAdmin->AddHeaders($arHeaders); while($arRes = $rsData->NavNext(true, "f_")): if ($f_WDAY==6) $f_WDAY = 0; else $f_WDAY++; $row =& $lAdmin->AddRow($f_ID, $arRes); switch($graph_type) { case "date": case "hour": case "month": $strHTML=$f_ID; break; case "weekday": if($f_ID==0) $strHTML='<span class="required">'.GetMessage("STAT_WEEKDAY_".$f_ID."_S").'</span>'; else $strHTML=GetMessage("STAT_WEEKDAY_".$f_ID."_S"); break; } $row->AddViewField("ID",$strHTML); if($f_WDAY==0) $strHTML='<span class="required">'.GetMessage("STAT_WEEKDAY_".$f_WDAY."_S").'</span>'; else $strHTML=GetMessage("STAT_WEEKDAY_".$f_WDAY."_S"); $row->AddViewField("WDAY",$strHTML); if($graph_type=="date") $strHTML='<a href="hit_list.php?lang='.LANG.'&find_date1='.$f_DATE_STAT.'&find_date2='.$f_DATE_STAT.'&set_filter=Y">'.$f_HITS.'</a>'; else $strHTML=$f_HITS; $row->AddViewField("HITS",$strHTML); if($graph_type=="date") $strHTML='<a href="session_list.php?lang='.LANG.'&find_date1='.$f_DATE_STAT.'&find_date2='.$f_DATE_STAT.'&set_filter=Y">'.$f_SESSIONS.'</a>'; else $strHTML=$f_SESSIONS; $row->AddViewField("SESSIONS",$strHTML); if($graph_type=="date") $strHTML='<a href="event_list.php?lang='.LANG.'&find_date1='.$f_DATE_STAT.'&find_date2='.$f_DATE_STAT.'&set_filter=Y">'.$f_C_EVENTS.'</a>'; else $strHTML=$f_C_EVENTS; $row->AddViewField("C_EVENTS",$strHTML); if (!$site_filtered) { if($graph_type=="date") $strHTML='<a href="guest_list.php?lang='.LANG.'&find_period_date1='.$f_DATE_STAT.'&find_period_date2='.$f_DATE_STAT.'&set_filter=Y">'.$f_GUESTS.'</a>'; else $strHTML=$f_GUESTS; $row->AddViewField("GUESTS",$strHTML); if($graph_type=="date") $strHTML='<a href="guest_list.php?lang='.LANG.'&find_period_date1='.$f_DATE_STAT.'&find_period_date2='.$f_DATE_STAT.'&find_sess2=1&set_filter=Y">'.$f_NEW_GUESTS.'</a>'; else $strHTML=$f_NEW_GUESTS; $row->AddViewField("NEW_GUESTS",$strHTML); } endwhile; $arFooter = array(); $arFooter[] = array( "title"=>GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value"=>$rsData->SelectedRowsCount(), ); $lAdmin->AddFooter($arFooter); $aContext = array( array( "TEXT"=>GetMessage("STAT_GROUPED")." ".$arrParams[$graph_type][1], "MENU"=>array( array( "TEXT"=>GetMessage("STAT_GROUP_BY")." ".$arrParams["date"][1], "ACTION"=>$lAdmin->ActionDoGroup(0, "", "graph_type=date"), "ICON"=>($graph_type=="date"?"checked":""), ), array( "TEXT"=>GetMessage("STAT_GROUP_BY")." ".$arrParams["hour"][1], "ACTION"=>$lAdmin->ActionDoGroup(0, "", "graph_type=hour"), "ICON"=>($graph_type=="hour"?"checked":""), ), array( "TEXT"=>GetMessage("STAT_GROUP_BY")." ".$arrParams["weekday"][1], "ACTION"=>$lAdmin->ActionDoGroup(0, "", "graph_type=weekday"), "ICON"=>($graph_type=="weekday"?"checked":""), ), array( "TEXT"=>GetMessage("STAT_GROUP_BY")." ".$arrParams["month"][1], "ACTION"=>$lAdmin->ActionDoGroup(0, "", "graph_type=month"), "ICON"=>($graph_type=="month"?"checked":""), ), ), ), ); $lAdmin->AddAdminContextMenu($aContext); $lAdmin->CheckListMode(); $APPLICATION->SetTitle(GetMessage("STAT_PAGE_TITLE")); /*************************************************************************** HTML form ****************************************************************************/ require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); $oFilter = new CAdminFilter($sTableID."_filter",array( GetMessage("STAT_SITE"), GetMessage("STAT_SHOW"), )); ?> <form name="find_form" method="GET" action="<?=$APPLICATION->GetCurPage()?>?"> <? $oFilter->Begin(); ?> <tr> <td><?echo GetMessage("STAT_PERIOD")." (".FORMAT_DATE."):"?></td> <td><?echo CalendarPeriod("find_date1", $find_date1, "find_date2", $find_date2, "find_form", "Y")?></td> </tr> <tr> <td><?echo GetMessage("STAT_SITE")?>:</td> <td><?echo SelectBoxMFromArray("find_site_id[]", $arSiteDropdown, $find_site_id, "", "");?></td> </tr> <tr valign="top"> <td><?=GetMessage("STAT_SHOW")?>:</td> <td> <?echo InputType("checkbox","find_hit","Y",$find_hit,false,false,'id="find_hit"');?> <label for="find_hit"><?=GetMessage("STAT_HITS_2")?></label><br> <?echo InputType("checkbox","find_host","Y",$find_host,false,false,'id="find_host"'); ?> <label for="find_host"><?=GetMessage("STAT_HOSTS_2")?></label><br> <?echo InputType("checkbox","find_session","Y",$find_session,false,false,'id="find_session"'); ?> <label for="find_session"><?=GetMessage("STAT_SESSIONS_2")?></label><br> <?echo InputType("checkbox","find_event","Y",$find_event,false,false,'id="find_event"'); ?> <label for="find_event"><?=GetMessage("STAT_EVENTS_2")?></label><br> <?echo InputType("checkbox","find_guest","Y",$find_guest,false,false,'id="find_guest"'); ?> <label for="find_guest"><?=GetMessage("STAT_GUESTS_2")?></label><br> <?echo InputType("checkbox","find_new_guest","Y",$find_new_guest,false,false,'id="find_new_guest"'); ?> <label for="find_new_guest"><?=GetMessage("STAT_NEW_GUESTS_2")?></label><br> </td> </tr> <? $oFilter->Buttons(array("table_id"=>$sTableID, "url"=>$APPLICATION->GetCurPage(), "form" => "find_form", "report"=>true)); $oFilter->End(); ?> </form> <? if($message) echo $message->Show(); $lAdmin->DisplayList(); ?> <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");