%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_graph.php |
<?php define("STOP_STATISTICS", true); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.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"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/img.php"); $width = intval($_GET["width"]); $max_width = COption::GetOptionInt("statistic", "GRAPH_WEIGHT"); if($width <= 0 || $width > $max_width) $width = $max_width; $height = intval($_GET["height"]); $max_height = COption::GetOptionInt("statistic", "GRAPH_HEIGHT"); if($height <= 0 || $height > $max_height) $height = $max_height; // 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 $arrParams = array( "SESSION_SUMMA" => true, "SESSION" => true, "SESSION_BACK" => true, "VISITOR_SUMMA" => true, "VISITOR" => true, "VISITOR_BACK" => true, "NEW_VISITOR" => true, "HOST_SUMMA" => true, "HOST" => true, "HOST_BACK" => true, "HIT_SUMMA" => true, "HIT" => true, "HIT_BACK" => true, "EVENT_SUMMA" => true, "EVENT" => true, "EVENT_BACK" => true, ); if(!array_key_exists($find_data_type, $arrParams)) $find_data_type = "SESSION_SUMMA"; /****************************************************** Get graph data *******************************************************/ $arFilter = Array( "DATE1" => $find_date1, "DATE2" => $find_date2, "ADV_ID" => $find_adv_id, "ADV_ID_EXACT_MATCH" => $find_adv_id_exact_match, "REFERER1" => $find_referer1, "REFERER1_EXACT_MATCH" => $find_referer1_exact_match, "REFERER2" => $find_referer2, "REFERER2_EXACT_MATCH" => $find_referer2_exact_match, "EVENT_TYPE_ID" => $find_event_type_id, "EVENT_TYPE_ID_EXACT_MATCH" => $find_event_type_id_exact_match, "EVENT1" => $find_event1, "EVENT1_EXACT_MATCH" => $find_event1_exact_match, "EVENT2" => $find_event2, "EVENT2_EXACT_MATCH" => $find_event2_exact_match, "ADV" => $find_adv, "EVENT_TYPE" => $find_events ); $arrDays = CAdv::GetAnalysisGraphArray($arFilter, $is_filtered, $find_data_type, $arrLegend, $total, $max); reset($arrDays); while (list($keyD,$arD) = each($arrDays)) { $date = mktime(0,0,0,$arD["M"],$arD["D"],$arD["Y"]); $date_tmp = 0; // check if date is missing (or misordered) then $next_date = AddTime($prev_date,1,"D"); if ($date>$next_date && intval($prev_date)>0) { // fill missed $date_tmp = $next_date; while ($date_tmp<$date) { $arrX[] = $date_tmp; reset($arrLegend); while(list($adv_id, $arrS) = each($arrLegend)) { $arrY_adv[$adv_id][] = 0; $arrY[] = 0; } $date_tmp = AddTime($date_tmp,1,"D"); } } $arrX[] = $date; reset($arrLegend); while(list($adv_id, $arrS) = each($arrLegend)) { $arrY_adv[$adv_id][] = $arD[$adv_id]; $arrY[] = $arD[$adv_id]; } $prev_date = $date; } /****************************************************** X axis *******************************************************/ $arrayX = GetArrayX($arrX, $MinX, $MaxX); /****************************************************** Y axis *******************************************************/ $arrayY = GetArrayY($arrY, $MinY, $MaxY); /****************************************************** draw grid *******************************************************/ DrawCoordinatGrid($arrayX, $arrayY, $width, $height, $ImageHandle); /****************************************************** plot graph *******************************************************/ reset($arrLegend); while(list($adv_id, $arrS) = each($arrLegend)) { Graf($arrX, $arrY_adv[$adv_id], $ImageHandle, $MinX, $MaxX, $MinY, $MaxY, $arrS["CLR"]); } /****************************************************** send image *******************************************************/ ShowImageHeader($ImageHandle);