array(T_ZBX_INT, O_MAND, P_SYS, DB_ID,NULL), "selementid"=> array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, NULL), "elementid"=> array(T_ZBX_INT, O_OPT, NULL, DB_ID.'{}>0', 'isset({save})'), "elementtype"=> array(T_ZBX_INT, O_OPT, NULL, IN("0,1,2,3"), 'isset({save})'), "label"=> array(T_ZBX_STR, O_OPT, NULL, NOT_EMPTY, 'isset({save})'), "x"=> array(T_ZBX_INT, O_OPT, NULL, BETWEEN(0,65535),'isset({save})'), "y"=> array(T_ZBX_INT, O_OPT, NULL, BETWEEN(0,65535),'isset({save})'), "iconid_off"=> array(T_ZBX_INT, O_OPT, NULL, DB_ID, 'isset({save})'), "iconid_on"=> array(T_ZBX_INT, O_OPT, NULL, DB_ID, 'isset({save})'), "iconid_unknown"=> array(T_ZBX_INT, O_OPT, NULL, DB_ID, 'isset({save})'), "iconid_disabled"=> array(T_ZBX_INT, O_OPT, NULL, DB_ID, 'isset({save})'), "url"=> array(T_ZBX_STR, O_OPT, NULL, NULL, 'isset({save})'), "label_location"=>array(T_ZBX_INT, O_OPT, NULL, IN("-1,0,1,2,3"),'isset({save})'), "linkid"=> array(T_ZBX_INT, O_OPT, P_SYS, DB_ID,NULL), "selementid1"=> array(T_ZBX_INT, O_OPT, NULL, DB_ID.'{}!={selementid2}','isset({save_link})'), "selementid2"=> array(T_ZBX_INT, O_OPT, NULL, DB_ID.'{}!={selementid1}','isset({save_link})'), "triggers"=> array(T_ZBX_STR, O_OPT, NULL, null,null), "drawtype"=>array(T_ZBX_INT, O_OPT, NULL, IN("0,1,2,3,4"),'isset({save_link})'), "color"=> array(T_ZBX_STR, O_OPT, NULL, NOT_EMPTY,'isset({save_link})'), /* actions */ "save"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, NULL, NULL), "save_link"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, NULL, NULL), "delete"=> array(T_ZBX_STR, O_OPT, P_SYS|P_ACT, NULL, NULL), "cancel"=> array(T_ZBX_STR, O_OPT, P_SYS, NULL, NULL), /* other */ "form"=> array(T_ZBX_STR, O_OPT, P_SYS, NULL, NULL), "form_refresh"=> array(T_ZBX_INT, O_OPT, NULL, NULL, NULL) ); check_fields($fields); ?> 1){ show_table_header(S_CONNECTORS); echo SBR; insert_map_link_form(); } else{ info('Not enough elements in this map'); } } else{ show_table_header(S_DISPLAYED_ELEMENTS, new CButton("form",S_ADD_ELEMENT, "return redirect('".$page["file"]."?form=add_element".url_param("sysmapid")."');")); $table = new CTableInfo(); $table->SetHeader(array(S_LABEL,S_TYPE,S_X,S_Y,S_ICON_OFF,S_ICON_ON,S_ICON_UNKNOWN,S_ICON_DISABLED)); $db_elements = DBselect("select * from sysmaps_elements where sysmapid=".$_REQUEST["sysmapid"]. " order by label"); while($db_element = DBfetch($db_elements)){ if( $db_element["elementtype"] == SYSMAP_ELEMENT_TYPE_HOST) $type = S_HOST; elseif($db_element["elementtype"] == SYSMAP_ELEMENT_TYPE_MAP) $type = S_MAP; elseif($db_element["elementtype"] == SYSMAP_ELEMENT_TYPE_TRIGGER) $type = S_TRIGGER; elseif($db_element["elementtype"] == SYSMAP_ELEMENT_TYPE_HOST_GROUP) $type = S_HOST_GROUP; else $type = "Map element"; $table->addRow(array( new CLink( $db_element["label"], "sysmap.php?sysmapid=".$db_element["sysmapid"]. "&form=update&selementid=".$db_element["selementid"], "action"), nbsp($type), $db_element["x"], $db_element["y"], $db_element["iconid_off"] ? new CImg("image.php?height=24&imageid=".$db_element["iconid_off"],"no image",NULL) : '-', $db_element["iconid_on"] ? new CImg("image.php?height=24&imageid=".$db_element["iconid_on"],"no image",NULL) : '-', $db_element["iconid_unknown"] ? new CImg("image.php?height=24&imageid=".$db_element["iconid_unknown"],"no image",NULL) : '-', $db_element["iconid_disabled"] ? new CImg("image.php?height=24&imageid=".$db_element["iconid_disabled"],"no image",NULL) : '-' )); } $table->show(); echo SBR; show_table_header(S_CONNECTORS, new CButton("form",S_CREATE_CONNECTION, "return redirect('".$page["file"]."?form=add_link". url_param("sysmapid")."');")); $table = new CTableInfo(); $table->SetHeader(array(S_LINK,S_ELEMENT_1,S_ELEMENT_2,S_LINK_STATUS_INDICATOR)); $i = 1; $result=DBselect("select linkid,selementid1,selementid2 from sysmaps_links". " where sysmapid=".$_REQUEST["sysmapid"]." order by linkid"); while($row=DBfetch($result)){ /* prepare label 1 */ $result1=DBselect("select label from sysmaps_elements". " where selementid=".$row["selementid1"]); $row1=DBfetch($result1); $label1=$row1["label"]; /* prepare label 2 */ $result1=DBselect("select label from sysmaps_elements". " where selementid=".$row["selementid2"]); $row1=DBfetch($result1); $label2=$row1["label"]; /* prepare description */ $triggers = get_link_triggers($row['linkid']); $description=array(); foreach($triggers as $id => $trigger){ if(isset($trigger['triggerid'])){ if(!empty($description)) $description[]=BR(); $triggers[$id]['description'] = expand_trigger_description($trigger['triggerid']); } $description[]= $triggers[$id]['description']; } if(empty($description)) $description='-'; /* draw row */ $table->addRow(array( new CLink("link ".$i++, "sysmap.php?sysmapid=".$_REQUEST["sysmapid"]. "&form=update&linkid=".$row["linkid"], "action"), $label1, $label2, $description )); } $table->Show(); } show_messages(); echo SBR; $map=get_sysmap_by_sysmapid($_REQUEST["sysmapid"]); show_table_header($map["name"]); $table = new CTable(NULL,"map"); if(isset($_REQUEST["sysmapid"])){ $linkMap = new CMap("links".$_REQUEST["sysmapid"]."_".rand(0,100000)); $db_elements = DBselect("select * from sysmaps_elements where sysmapid=".$_REQUEST["sysmapid"]); while($db_element = DBfetch($db_elements)){ $tmp_img = get_png_by_selementid($db_element["selementid"]); if(!$tmp_img) continue; $x1_ = $db_element["x"]; $y1_ = $db_element["y"]; $x2_ = $db_element["x"] + imagesx($tmp_img); $y2_ = $db_element["y"] + imagesy($tmp_img); $linkMap->AddRectArea($x1_,$y1_,$x2_,$y2_, "sysmap.php?form=update&sysmapid=".$_REQUEST["sysmapid"]. "&selementid=".$db_element["selementid"], $db_element["label"]); } $imgMap = new CImg("map.php?sysmapid=".$_REQUEST["sysmapid"]); $imgMap->SetMap($linkMap->GetName()); $table->AddRow($linkMap); $table->AddRow($imgMap); } $table->Show(); ?>