%PDF- %PDF-
Direktori : /proc/self/root/home/bitrix/www/bitrix/modules/statistic/admin/ |
Current File : //proc/self/root/home/bitrix/www/bitrix/modules/statistic/admin/adv_analysis.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: "; $arrParams = array( "SESSION_SUMMA" => array(GetMessage("STAT_SESSION_SUMMA"), GetMessage("STAT_GRAPH_SESSION_SUMMA")), "SESSION" => array(GetMessage("STAT_SESSION"), GetMessage("STAT_GRAPH_SESSION")), "SESSION_BACK" => array(GetMessage("STAT_SESSION_BACK"), GetMessage("STAT_GRAPH_SESSION_BACK")), "VISITOR_SUMMA" => array(GetMessage("STAT_VISITOR_SUMMA"), GetMessage("STAT_GRAPH_VISITOR_SUMMA")), "VISITOR" => array(GetMessage("STAT_VISITOR"), GetMessage("STAT_GRAPH_VISITOR")), "VISITOR_BACK" => array(GetMessage("STAT_VISITOR_BACK"), GetMessage("STAT_GRAPH_VISITOR_BACK")), "NEW_VISITOR" => array(GetMessage("STAT_NEW_VISITOR"), GetMessage("STAT_GRAPH_NEW_VISITOR")), "HOST_SUMMA" => array(GetMessage("STAT_HOST_SUMMA"), GetMessage("STAT_GRAPH_HOST_SUMMA")), "HOST" => array(GetMessage("STAT_HOST"), GetMessage("STAT_GRAPH_HOST")), "HOST_BACK" => array(GetMessage("STAT_HOST_BACK"), GetMessage("STAT_GRAPH_HOST_BACK")), "HIT_SUMMA" => array(GetMessage("STAT_HIT_SUMMA"), GetMessage("STAT_GRAPH_HIT_SUMMA")), "HIT" => array(GetMessage("STAT_HIT"), GetMessage("STAT_GRAPH_HIT")), "HIT_BACK" => array(GetMessage("STAT_HIT_BACK"), GetMessage("STAT_GRAPH_HIT_BACK")), "EVENT_SUMMA" => array(GetMessage("STAT_EVENT_SUMMA"), GetMessage("STAT_GRAPH_EVENT_SUMMA")), "EVENT" => array(GetMessage("STAT_EVENT"), GetMessage("STAT_GRAPH_EVENT")), "EVENT_BACK" => array(GetMessage("STAT_EVENT_BACK"), GetMessage("STAT_GRAPH_EVENT_BACK")), ); /*************************************************************************** GET | POST handlers ****************************************************************************/ $rs = CAdv::GetList($v1="", $v2="", Array(), $v3, "", $v4, $v5); while($ar = $rs->Fetch()) { $arrADV[$ar["ID"]] = $ar["REFERER1"]." / ".$ar["REFERER2"]." [".$ar["ID"]."]"; } $rs = CStatEventType::GetSimpleList($v1="", $v2="", array(), $v3); while($ar = $rs->Fetch()) { $arrEVENT[$ar["ID"]] = htmlspecialcharsbx($ar["EVENT"])." [".$ar["ID"]."]"; } $sTableID = "t_adv_analysis"; $oSort = new CAdminSorting($sTableID);// Sorting init $lAdmin = new CAdminList($sTableID, $oSort);// List init if(isset($find_data_type)) { if(!array_key_exists($find_data_type, $arrParams)) $find_data_type = "SESSION_SUMMA"; } else { $find_data_type=false; } if($lAdmin->IsDefaultFilter()) { $i=0; $find_adv=array(); if (is_array($arrADV)) { reset($arrADV); while (list($key,$value)=each($arrADV)) { $i++; if ($i<=10) $find_adv[] = $key; } } $set_filter = "Y"; $find_data_type = "SESSION_SUMMA"; } //echo "!".$find_data_type."!"; $arFilterEvent = Array( Array( GetMessage("STAT_F_ID2"), "event1", "event2", GetMessage("STAT_F_EVENT_TYPIES"), ), Array( "find_event_type_id", "find_event_type_id_exact_match", "find_event1","find_event1_exact_match", "find_event2","find_event2_exact_match", "find_events", ) ); $filter = new CAdminFilter( $sTableID."_filter_id", array_merge( Array(GetMessage("STAT_F_ID"),"referer1","referer2"), Array(GetMessage("STAT_F_SELECT_ADV")), //Array(GetMessage("STAT_F_DATA_TYPE")), (is_array($arrEVENT) ? $arFilterEvent[0] : Array()) ) ); $FilterArr = array_merge( Array( "find_date1", "find_date2", "find_adv_id","find_adv_id_exact_match", "find_referer1","find_referer1_exact_match", "find_referer2","find_referer2_exact_match" ), Array("find_adv"), //Array("find_data_type"), (is_array($arrEVENT) ? $arFilterEvent[1] : Array())); $lAdmin->InitFilter($FilterArr);//Filter init //Restore & Save settings (windows registry like) $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 = "SESSION_SUMMA"; } elseif($saved_group_by!=$find_data_type)//Set if changed $saved_group_by=$find_data_type; InitFilterEx($arSettings, $sTableID."_settings", "set"); if(is_array($find_adv)) { $find_adv_names = array(); foreach($find_adv as $value) { $find_adv_names[]=$arrADV[$value]; } } else { $find_adv=array(); $find_adv_names = array(); } if(is_array($find_events)) { $find_events_names = array(); foreach($find_events as $value) { $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) : $m = new CAdminMessage(GetMessage("STAT_NOT_ENOUGH_DATA")); echo $m->Show(); else: ?> <div class="graph"> <?echo $arrParams[$find_data_type][1]?> <table cellspacing="0" cellpadding="0" class="graph" border="0" align="center"><tr> <td valign="center" class="graph"><? $width = COption::GetOptionString("statistic", "GRAPH_WEIGHT"); $height = COption::GetOptionString("statistic", "GRAPH_HEIGHT"); ?><img class="graph" src="/bitrix/admin/adv_analysis_graph.php?rand=<?=rand()?>&find_data_type=<?=$find_data_type?><?=GetFilterParams($FilterArr)?>&width=<?=$width?>&height=<?=$height?>&lang=<?=LANGUAGE_ID?>" width="<?=$width?>" height="<?=$height?>"> </td> </tr> </table> </div> <br> <?endif; $lAdmin->EndPrologContent(); $column_title = $arrParams[$find_data_type][0]; $arHeaders = Array(); $arHeaders[] = array("id"=>"COLOR", "content"=>GetMessage("STAT_COLOR"),"default"=>true,"align"=>"center"); $arHeaders[] = array("id"=>"ADV", "content"=>GetMessage("STAT_ADV"), "default"=>true); $arHeaders[] = array("id"=>"COUNTER", "content"=>$column_title, "default"=>true, "align"=>"right"); $arHeaders[] = array("id"=>"PERCENT", "content"=>GetMessage("STAT_PERCENT"), "default"=>true, "align"=>"right"); $lAdmin->AddHeaders($arHeaders); function sup_sort($a,$b) { $sort1 = intval($a["SM"]); $sort2 = intval($b["SM"]); if ($sort1 == $sort2) return 0; if ($sort1 < $sort2) return 1; else return -1; } uasort($arrLegend, "sup_sort"); $rsAdv = new CDBResult; $rsAdv->InitFromArray($arrLegend); $rsData = new CAdminResult($rsAdv, $sTableID); $rsData->NavStart(); $number = (intval($rsData->NavPageNomer)-1)*intval($rsData->NavPageSize); $max_width = 90; $max_relation = ($max*100)/$max_width; while($arRes = $rsData->NavNext(true, "f_")) { if ($max_relation>0) $w = round(($f_SM*100)/$max_relation); if ($total>0) $q = number_format(($f_SM*100)/$total, 2, '.', ''); $number++; $row =& $lAdmin->AddRow($number, $arRes); $row->AddViewField("COLOR", " <img src=\"/bitrix/admin/graph_legend.php?color=".$f_CLR."\" width=\"45\" height=\"2\"> "); $row->AddViewField("ADV", "[<a href=\"/bitrix/admin/adv_list.php?lang=".LANG."&find_id=".$f_ID."&find_id_exact_match=Y&set_filter=Y\">".$f_ID."</a>] ".$f_R1." / ".$f_R2); $row->AddViewField("PERCENT", $q."%"); $row->AddViewField("COUNTER", "<a href=\"/bitrix/admin/adv_dynamic_list.php?lang=".LANG."&find_adv_id=".$f_ID."&find_adv_id_exact_match=Y&find_date1=".urlencode($find_date1)."&find_date2=".urlencode($find_date2)."&set_filter=Y\">".$f_SM."</a>"); } // List footer $lAdmin->AddFooter( array( array("title"=>GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value"=>$rsData->SelectedRowsCount()), ) ); $arSubMenu = Array(); foreach($arrParams as $key=>$value) { $arSubMenu[] = Array( "TEXT" => $value[0], "ACTION" => $lAdmin->ActionDoGroup(0, "", "set_filter=Y&find_data_type=".$key), "ICON" => ($find_data_type==$key? "checked": ""), ); } $aContext = array( array( "TEXT"=>$column_title, "MENU"=>$arSubMenu, ), ); $lAdmin->AddAdminContextMenu($aContext); $lAdmin->CheckListMode(); $APPLICATION->SetTitle(GetMessage("STAT_PAGE_TITLE")); 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> <td><?=GetMessage("STAT_F_ID")?>:</td> <td><input type="text" name="find_adv_id" size="35" value="<?echo htmlspecialcharsbx($find_adv_id)?>"><?=ShowExactMatchCheckbox("find_adv_id")?> <?=ShowFilterLogicHelp()?></td> </tr> <tr> <td>referer1:</td> <td><input type="text" name="find_referer1" size="35" value="<?echo htmlspecialcharsbx($find_referer1)?>"><?=ShowExactMatchCheckbox("find_referer1")?> <?=ShowFilterLogicHelp()?></td> </tr> <tr> <td>referer2:</td> <td><input type="text" name="find_referer2" size="35" value="<?echo htmlspecialcharsbx($find_referer2)?>"><?=ShowExactMatchCheckbox("find_referer2")?> <?=ShowFilterLogicHelp()?></td> </tr> <?//if (is_array($arrADV)):?> <tr valign="top"> <td width="0%" nowrap valign="top"><? echo GetMessage("STAT_F_SELECT_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,"10", "style=\"width:300px;\""); ?> <script language="Javascript"> function selectEventType(form, field) { jsUtils.OpenWindow('adv_multiselect.php?lang=<?echo LANGUAGE_ID?>&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;?> <script language="JavaScript"> <!-- function OnChangeAnalysisParam() { var sbParam = document.forms['form1'].elements['find_data_type']; switch (sbParam[sbParam.selectedIndex].value) { case "EVENT_SUMMA": case "EVENT": case "EVENT_BACK": document.getElementById("events_tr").style.display = "inline"; break; default: document.getElementById("events_tr").style.display = "none"; } } //--> </script> <?if (is_array($arrEVENT)):?> <tr> <td><?=GetMessage("STAT_F_ID2")?>:</td> <td><input type="text" name="find_event_type_id" size="35" value="<?echo htmlspecialcharsbx($find_event_type_id)?>"><?=ShowExactMatchCheckbox("find_event_type_id")?> <?=ShowFilterLogicHelp()?></td> </tr> <tr> <td>event1:</td> <td><input type="text" name="find_event1" size="35" value="<?echo htmlspecialcharsbx($find_event1)?>"><?=ShowExactMatchCheckbox("find_event1")?> <?=ShowFilterLogicHelp()?></td> </tr> <tr> <td>event2:</td> <td><input type="text" name="find_event2" size="35" value="<?echo htmlspecialcharsbx($find_event2)?>"><?=ShowExactMatchCheckbox("find_event2")?> <?=ShowFilterLogicHelp()?></td> </tr> <tr valign="top"> <td><?=GetMessage("STAT_F_SELECT_EVENTS")?>:</td> <td> <? echo SelectBoxMFromArray("find_events[]",array("REFERENCE"=>$find_events_names, "REFERENCE_ID"=>$find_events), $find_events,"",false,"10", "style=\"width:300px;\""); ?> <script language="Javascript"> function selectEvent(form, field) { jsUtils.OpenWindow('event_multiselect.php?lang=<?echo LANGUAGE_ID?>&form='+form+'&field='+field, 600, 600); } jsSelectUtils.sortSelect('find_events[]'); jsSelectUtils.selectAllOptions('find_events[]'); </script> <br> <input type="button" OnClick="selectEvent('find_form','find_events[]')" value="<?=GetMessage("MAIN_ADMIN_MENU_ADD")?>..."> <input type="button" OnClick="jsSelectUtils.deleteSelectedOptions('find_events[]');" value="<?=GetMessage("MAIN_ADMIN_MENU_DELETE")?>"> </td> </tr> <?endif;?> <?$filter->Buttons(array("table_id"=>$sTableID, "url"=>$APPLICATION->GetCurPage(), "form"=>"form1"));$filter->End();?> </form> <? if($message) echo $message->Show(); $lAdmin->DisplayList(); ?> <?require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");?>