nodeid = id2nodeid($groupid); $this->groupid = $groupid; $this->style = null; parent::CTable(NULL,"hosts_info"); $this->SetOrientation($style); } function SetOrientation($value) { if($value != STYLE_HORISONTAL && $value != STYLE_VERTICAL) return $this->error("Incorrect value for SetOrientation [$value]"); $this->style = $value; } function BodyToString() { global $USER_DETAILS; $this->CleanItems(); $accessible_groups = get_accessible_groups_by_user($USER_DETAILS,PERM_READ_ONLY); $cond = (remove_nodes_from_id($this->groupid)>0)?(' AND hg.groupid='.zbx_dbstr($this->groupid)):(' AND '.DBin_node('hg.groupid', $this->nodeid)); $db_host_cnt = DBselect('SELECT COUNT(*) as cnt '. ' FROM hosts h, hosts_groups hg'. ' WHERE h.available='.HOST_AVAILABLE_TRUE. ' AND hg.groupid IN ('.$accessible_groups.') '.$cond); $host_cnt = DBfetch($db_host_cnt); $avail = $host_cnt['cnt']; $db_host_cnt = DBselect('SELECT COUNT(*) as cnt '. ' FROM hosts h, hosts_groups hg'. ' WHERE h.available='.HOST_AVAILABLE_FALSE. ' AND hg.groupid IN ('.$accessible_groups.') '.$cond); $host_cnt = DBfetch($db_host_cnt); $notav = $host_cnt['cnt']; $db_host_cnt = DBselect('SELECT COUNT(*) as cnt '. ' FROM hosts h, hosts_groups hg'. ' WHERE h.available='.HOST_AVAILABLE_UNKNOWN. ' AND hg.groupid IN ('.$accessible_groups.') '.$cond); $host_cnt = DBfetch($db_host_cnt); $uncn = $host_cnt['cnt']; $node = get_node_by_nodeid($this->nodeid); $header_str = S_HOSTS_INFO.SPACE; if(remove_nodes_from_id($this->groupid)>0){ $group = get_hostgroup_by_groupid($this->groupid); $header_str.= S_FOR_GROUP_SMALL.SPACE.'"('.$node['name'].')'.SPACE.$group['name'].'"'; } else{ $header_str.= S_FOR_NODE_SMALL.SPACE.'"('.$node['name'].')"'; } $header = new CCol($header_str,"header"); if($this->style == STYLE_HORISONTAL) $header->SetColspan(3); $this->AddRow($header); $avail = new CCol($avail." ".S_AVAILABLE, "avail"); $notav = new CCol($notav." ".S_NOT_AVAILABLE, "notav"); $uncn = new CCol($uncn." ".S_UNKNOWN, "uncn"); if($this->style == STYLE_HORISONTAL) { $this->AddRow(array($avail, $notav, $uncn)); } else { $this->AddRow($avail); $this->AddRow($notav); $this->AddRow($uncn); } return parent::BodyToString(); } } ?>