array(T_ZBX_INT, O_MAND, P_SYS, DB_ID, null), "period"=> array(T_ZBX_INT, O_OPT, P_NZERO, BETWEEN(ZBX_MIN_PERIOD,ZBX_MAX_PERIOD), null), "from"=> array(T_ZBX_INT, O_OPT, P_NZERO, null, null), "stime"=> array(T_ZBX_STR, O_OPT, P_SYS, null, null), "border"=> array(T_ZBX_INT, O_OPT, P_NZERO, IN('0,1'), null), "width"=> array(T_ZBX_INT, O_OPT, P_NZERO, '{}>0', null), "height"=> array(T_ZBX_INT, O_OPT, P_NZERO, '{}>0', null), ); check_fields($fields); ?> 0) && ($_REQUEST['period'] >= ZBX_MIN_PERIOD)){ update_profile('web.graph.period',$_REQUEST['period'],PROFILE_TYPE_INT,$_REQUEST['graphid']); } update_profile('web.charts.graphid',$_REQUEST['graphid']); $sql = 'SELECT g.*,h.host,h.hostid '. ' FROM graphs g '. ' LEFT JOIN graphs_items gi ON g.graphid=gi.graphid '. ' LEFT JOIN items i ON gi.itemid=i.itemid '. ' LEFT JOIN hosts h ON i.hostid=h.hostid '. ' WHERE g.graphid='.$_REQUEST['graphid']. ' AND '.DBcondition('h.hostid',$available_hosts); $db_data = DBfetch(DBselect($sql)); $graph = new Chart($db_data['graphtype']); if(isset($_REQUEST['period'])) $graph->SetPeriod($_REQUEST['period']); if(isset($_REQUEST['from'])) $graph->SetFrom($_REQUEST['from']); if(isset($_REQUEST['stime'])) $graph->SetSTime($_REQUEST['stime']); if(isset($_REQUEST['border'])) $graph->SetBorder(0); $width = get_request('width', 0); if($width <= 0) $width = $db_data['width']; $height = get_request('height', 0); if($height <= 0) $height = $db_data['height']; $graph->ShowWorkPeriod($db_data['show_work_period']); $graph->ShowTriggers($db_data['show_triggers']); $graph->SetWidth($width); $graph->SetHeight($height); $graph->SetHeader($db_data['host'].':'.$db_data['name']); $graph->SetYAxisType($db_data['yaxistype']); $graph->SetYAxisMin($db_data['yaxismin']); $graph->SetYAxisMax($db_data['yaxismax']); $result = DBselect('SELECT gi.* '. ' FROM graphs_items gi '. ' WHERE gi.graphid='.$db_data['graphid']. ' ORDER BY gi.sortorder, gi.itemid DESC'); while($db_data=DBfetch($result)){ $graph->AddItem( $db_data['itemid'], $db_data['yaxisside'], $db_data['calc_fnc'], $db_data['color'], $db_data['drawtype'], $db_data['type'], $db_data['periods_cnt'] ); } $graph->Draw(); ?>