$labels = array(); $sql = 'SELECT selementid, label ' . ' FROM sysmaps_elements ' . ' WHERE ' . DBcondition('selementid', $selementids); $result = DBselect($sql); while ($row = DBfetch($result)) { $labels[$row['selementid']] = $row['label']; } foreach ($links as $linkid => $row) { $links[$linkid]['label1'] = $labels[$row['selementid1']]; $links[$linkid]['label2'] = $labels[$row['selementid2']]; } order_result($links, 'label1'); foreach ($links as $linkid => $row) { $label1 = $row['label1']; $label2 = $row['label2']; /* 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));
imagestring($im, 2, $x + 2, 2, $x, $black); } for ($y = $grid; $y < $height; $y += $grid) { MyDrawLine($im, 0, $y, $width, $y, $black, MAP_LINK_DRAWTYPE_DASHED_LINE); imagestring($im, 2, 2, $y + 2, $y, $black); } imagestring($im, 2, 1, 1, "Y X:", $black); } // Draw connectors $links = DBselect('select * from sysmaps_links where sysmapid=' . $_REQUEST['sysmapid']); while ($link = DBfetch($links)) { list($x1, $y1) = get_icon_center_by_selementid($link["selementid1"]); list($x2, $y2) = get_icon_center_by_selementid($link["selementid2"]); $drawtype = $link["drawtype"]; $color = convertColor($im, $link["color"]); $triggers = get_link_triggers($link['linkid']); if (!empty($triggers)) { $max_severity = 0; foreach ($triggers as $id => $link_trigger) { $triggers[$id] = array_merge($link_trigger, get_trigger_by_triggerid($link_trigger["triggerid"])); if ($triggers[$id]["status"] == TRIGGER_STATUS_ENABLED && $triggers[$id]["value"] == TRIGGER_VALUE_TRUE) { if ($triggers[$id]['severity'] >= $max_severity) { $drawtype = $triggers[$id]['drawtype']; $color = convertColor($im, $triggers[$id]['color']); $max_severity = $triggers[$id]['severity']; } } } } MyDrawLine($im, $x1, $y1, $x2, $y2, $color, $drawtype); }