array(T_ZBX_INT, O_MAND,P_SYS, DB_ID, NULL), "period"=> array(T_ZBX_STR, O_OPT, null, IN('"dayly","weekly","monthly","yearly"'), NULL), "year"=> array(T_ZBX_INT, O_OPT, null, null, NULL) ); check_fields($fields); $period = get_request("period", "weekly"); $year = get_request("year", date("Y")); define("YEAR_LEFT_SHIFT", 5); ?> SetMethod('get'); $form->AddVar("serviceid", $_REQUEST["serviceid"]); $cmbPeriod = new CComboBox("period", $period, "submit();"); $cmbPeriod->AddItem("dayly",S_DAILY); $cmbPeriod->AddItem("weekly",S_WEEKLY); $cmbPeriod->AddItem("monthly",S_MONTHLY); $cmbPeriod->AddItem("yearly",S_YEARLY); $form->AddItem(array(SPACE.S_PERIOD.SPACE, $cmbPeriod)); $cmbYear = new CComboBox("year", $year, "submit();"); for($y = (date("Y") - YEAR_LEFT_SHIFT); $y <= date("Y"); $y++){ $cmbYear->AddItem($y, $y); } $form->AddItem(array(SPACE.S_YEAR.SPACE, $cmbYear)); show_table_header(array( S_IT_SERVICES_AVAILABILITY_REPORT_BIG, SPACE."\"", new CLink($service["name"],"srv_status.php?serviceid=".$service["serviceid"]), "\"" ), $form); ?> SetHeader($header); for($t = $from; $t <= $to; $t++) { if(($start = get_time($t)) > time()) break; if(($end = get_time($t+1)) > time()) $end = time(); $stat = calculate_service_availability($service["serviceid"],$start,$end); $ok = new CSpan( sprintf("%dd %dh %dm", $stat["ok_time"]/(24*3600), ($stat["ok_time"]%(24*3600))/3600, ($stat["ok_time"]%(3600))/(60)), "off"); $problems = new CSpan( sprintf("%dd %dh %dm", $stat["problem_time"]/(24*3600), ($stat["problem_time"]%(24*3600))/3600, ($stat["problem_time"]%(3600))/(60)), "on"); $downtime = sprintf("%dd %dh %dm", $stat["downtime_time"]/(24*3600), ($stat["downtime_time"]%(24*3600))/3600, ($stat["downtime_time"]%(3600))/(60)); $percentage = new CSpan(sprintf("%2.2f%%",$stat["ok"]) , "off"); $table->AddRow(array( format_time($start), format_time2($end), $ok, $problems, $downtime, $percentage, ($service["showsla"]==1) ? new CSpan($service["goodsla"], ($stat["ok"] >= $service["goodsla"]) ? "off" : "on") : "-" )); } $table->Show(); ?>