3) $color=$colors["Red"]; else $color=$colors["Dark Yellow"]; $info = expand_trigger_description_simple($trigger["triggerid"]); } elseif($count==0) { $host = get_host_by_hostid($db_element["elementid"]); if($host["status"] == HOST_STATUS_TEMPLATE) { $color = $colors["Gray"]; $info = "template"; } else { $info = S_OK_BIG; $color = $colors["Dark Green"]; } } } elseif($db_element["elementtype"]==SYSMAP_ELEMENT_TYPE_MAP) { $db_subelements = DBselect("select selementid from sysmaps_elements". " where sysmapid=".$db_element["elementid"]); while($db_subelement = DBfetch($db_subelements)) {// recursion $count += get_info_by_selementid($db_subelement["selementid"],$info,$color); } if($count==0) { $out_info = S_OK_BIG; $out_color = $colors["Dark Green"]; } } elseif($db_element["elementtype"]==SYSMAP_ELEMENT_TYPE_IMAGE) { if($db_element["elementid"]>0){ $trigger=get_trigger_by_triggerid($db_element["elementid"]); if($trigger["value"] == TRIGGER_VALUE_TRUE) { $info=S_TRUE_BIG; $color=$colors["Red"]; $count = 1; } } } if($count>1) { $out_info = $count." ".S_PROBLEMS_SMALL; $out_color = $colors["Red"]; } else { $out_info = $info; $out_color = $color; } return $count; } function get_action_map_by_sysmapid($sysmapid) { $action_map = new CMap("links$sysmapid"); $db_elements=DBselect("select * from sysmaps_elements where sysmapid=$sysmapid"); while($db_element = DBfetch($db_elements)) { $url = $db_element["url"]; $alt = "Label: ".$db_element["label"]; if($db_element["elementtype"] == SYSMAP_ELEMENT_TYPE_HOST) { $host = get_host_by_hostid($db_element["elementid"]); if($host["status"] != HOST_STATUS_MONITORED) continue; if($url=="") $url="tr_status.php?hostid=".$db_element["elementid"]. "&noactions=true&onlytrue=true&compact=true"; $alt = "Host: ".$host["host"]." ".$alt; } elseif($db_element["elementtype"] == SYSMAP_ELEMENT_TYPE_MAP) { $map = get_sysmap_by_sysmapid($db_element["elementid"]); if($url=="") $url="maps.php?sysmapid=".$db_element["elementid"]; $alt = "Host: ".$map["name"]." ".$alt; } elseif($db_element["elementtype"] == SYSMAP_ELEMENT_TYPE_IMAGE) { if($url=="" && $db_element["elementid"]!=0) $url="alarms.php?triggerid=".$db_element["elementid"]; } if($url=="") continue; $back = get_png_by_selementid($db_element["selementid"]); if(!$back) continue; $x1_ = $db_element["x"]; $y1_ = $db_element["y"]; $x2_ = $db_element["x"] + imagesx($back); $y2_ = $db_element["y"] + imagesy($back); $action_map->AddRectArea($x1_,$y1_,$x2_,$y2_, $url, $alt); } return $action_map; } function get_icon_center_by_selementid($selementid) { $element = get_sysmaps_element_by_selementid($selementid); $x = $element["x"]; $y = $element["y"]; $image = get_png_by_selementid($selementid); if($image) { $x += imagesx($image) / 2; $y += imagesy($image) / 2; } return array($x, $y); } function MyDrawLine($image,$x1,$y1,$x2,$y2,$color,$drawtype) { if($drawtype == GRAPH_DRAW_TYPE_BOLDLINE) { ImageLine($image,$x1,$y1,$x2,$y2,$color); if(($x1-$x2) < ($y1-$y2)) { $x1++; $x2++; } else { $y1++; $y2++; } ImageLine($image,$x1,$y1,$x2,$y2,$color); } else if($drawtype == GRAPH_DRAW_TYPE_DASHEDLINE) { if(function_exists("imagesetstyle")) { /* Use ImageSetStyle+ImageLIne instead of bugged ImageDashedLine */ $style = array($color, $color, IMG_COLOR_TRANSPARENT, IMG_COLOR_TRANSPARENT); ImageSetStyle($image, $style); ImageLine($image,$x1,$y1,$x2,$y2,IMG_COLOR_STYLED); } else { ImageDashedLine($image,$x1,$y1,$x2,$y2,$color); } } else { ImageLine($image,$x1,$y1,$x2,$y2,$color); } } ?>