function graphPorts($devices, $ports, $wire, $format, $PluginArchiresView) { global $DB, $CFG_GLPI; $PluginArchiresNetworkInterfaceColor = new PluginArchiresNetworkInterfaceColor(); $PluginArchiresVlanColor = new PluginArchiresVlanColor(); $items_id1 = $ports[$wire["networkports_id_1"]]["items_id"]; $itemtype1 = $ports[$wire["networkports_id_1"]]["itemtype"]; $logical_number1 = $ports[$wire["networkports_id_1"]]["logical_number"]; $name1 = $ports[$wire["networkports_id_1"]]["namep"]; $ID1 = $ports[$wire["networkports_id_1"]]["idp"]; $networkinterfaces_id1 = $ports[$wire["networkports_id_1"]]["instantiation_type"]; $ip1 = $ports[$wire["networkports_id_1"]]["ip"]; $netmask1 = $ports[$wire["networkports_id_2"]]["netmask"]; $device_unique_name1 = $itemtype1 . "_" . $items_id1 . "_"; $device_unique_name1 .= $devices[$itemtype1][$items_id1]["name"]; $items_id2 = $ports[$wire["networkports_id_2"]]["items_id"]; $itemtype2 = $ports[$wire["networkports_id_2"]]["itemtype"]; $logical_number2 = $ports[$wire["networkports_id_2"]]["logical_number"]; $name2 = $ports[$wire["networkports_id_2"]]["namep"]; $ID2 = $ports[$wire["networkports_id_2"]]["idp"]; $networkinterfaces_id2 = $ports[$wire["networkports_id_2"]]["instantiation_type"]; $ip2 = $ports[$wire["networkports_id_2"]]["ip"]; $netmask2 = $ports[$wire["networkports_id_2"]]["netmask"]; $device_unique_name2 = $itemtype2 . "_" . $items_id2 . "_"; $device_unique_name2 .= $devices[$itemtype2][$items_id2]["name"]; $graph = ""; if ($PluginArchiresView->fields["color"] == PluginArchiresView::PLUGIN_ARCHIRES_NETWORK_COLOR) { if (empty($networkinterfaces_id1) && empty($networkinterfaces_id2)) { $graph .= "edge [color=black,arrowsize=1, fontname=\"Verdana\", fontsize=\"5\"];\n"; } else { if (!empty($networkinterfaces_id1)) { if ($PluginArchiresNetworkInterfaceColor->getFromDBbyNetworkInterface($networkinterfaces_id1)) { $graph .= "edge [color=" . $PluginArchiresNetworkInterfaceColor->fields["color"] . ",\n fontname=\"Verdana\", fontsize=\"5\"];\n"; } else { $graph .= "edge [color=black,arrowsize=1, fontname=\"Verdana\", fontsize=\"5\"];\n"; } } else { if ($PluginArchiresNetworkInterfaceColor->getFromDBbyNetworkInterface($networkinterfaces_id2)) { $graph .= "edge [color=" . $PluginArchiresNetworkInterfaceColor->fields["color"] . ",\n fontname=\"Verdana\", fontsize=\"5\"];\n"; } else { $graph .= "edge [color=black,arrowsize=1, fontname=\"Verdana\", fontsize=\"5\"];\n"; } } } } else { if ($PluginArchiresView->fields["color"] == PluginArchiresView::PLUGIN_ARCHIRES_VLAN_COLOR) { $vlan1 = $PluginArchiresVlanColor->getVlanbyNetworkPort($ID1); $vlan2 = $PluginArchiresVlanColor->getVlanbyNetworkPort($ID2); if (empty($vlan1) && empty($vlan2)) { $graph .= "edge [color=black,arrowsize=1, fontname=\"Verdana\", fontsize=\"5\"];\n"; } else { if (!empty($vlan1)) { if ($PluginArchiresVlanColor->getFromDBbyVlan($vlan1)) { $graph .= "edge [color=" . $PluginArchiresVlanColor->fields["color"] . ",\n fontname=\"Verdana\", fontsize=\"5\"];\n"; } else { $graph .= "edge [color=black,arrowsize=1, fontname=\"Verdana\", fontsize=\"5\"];\n"; } } else { if ($PluginArchiresVlanColor->getFromDBbyVlan($vlan2)) { $graph .= "edge [color=" . $PluginArchiresVlanColor->fields["color"] . ",\n fontname=\"Verdana\", fontsize=\"5\"];\n"; } else { $graph .= "edge [color=black,arrowsize=1, fontname=\"Verdana\", fontsize=\"5\"];\n"; } } } } } //Display Ports if ($PluginArchiresView->fields["display_ports"] != 0 && $PluginArchiresView->fields["engine"] != 1) { $url_ports = $CFG_GLPI["root_doc"] . "/front/networkport.form.php?id="; $graph .= "\"" . $device_unique_name1 . "\""; $graph .= " -- \"" . $device_unique_name2 . "\"[label="; $graph .= "<<table border=\"0\" cellpadding=\"2\" cellspacing=\"2\">"; //display ip ports if ($PluginArchiresView->fields["display_ip"] != 0) { if (!empty($ip1)) { $graph .= "<tr><td>" . $ip1; if (!empty($netmask1)) { $graph = sprintf(__('%1$s / %2$s'), $graph, $netmask1); } $graph .= "</td></tr>"; } } $graph .= "<tr><td HREF=\"" . $url_ports . $ID1 . "\" tooltip=\"" . $name1; if ($_SESSION["glpiis_ids_visible"] || empty($name1)) { $graph .= "_" . $ID1 . "_"; } $graph .= "\">"; if ($PluginArchiresView->fields["display_ports"] == 1) { $graph .= __('Socket', 'archires') . " " . $logical_number1; } else { if ($PluginArchiresView->fields["display_ports"] == 2) { $graph .= $name1; if ($_SESSION["glpiis_ids_visible"] || empty($name1)) { $graph = sprintf(__('%1$s (%2$s)'), $graph, $ID1); } } } $graph .= "</td></tr>"; if ($format != 'svg') { $graph .= "<tr><td><img src= 'pics/socket.png' /></td></tr>"; } else { $graph .= "<tr><td><img src=\"" . realpath(GLPI_ROOT) . "/plugins/archires/pics/socket.png\"/>" . "</td></tr>"; } $graph .= "<tr><td HREF=\"" . $url_ports . $ID2 . "\" tooltip=\"" . $name2; if ($_SESSION["glpiis_ids_visible"] || empty($name2)) { $graph .= "_" . $ID2 . "_"; } $graph .= "\">"; if ($PluginArchiresView->fields["display_ports"] == 1) { $graph .= __('Socket', 'archires') . " " . $logical_number2; } else { if ($PluginArchiresView->fields["display_ports"] == 2) { $graph .= $name2; if ($_SESSION["glpiis_ids_visible"] || empty($name2)) { $graph = sprintf(__('%1$s (%2$s)'), $graph, $ID2); } } } $graph .= "</td></tr>"; //display ip ports if ($PluginArchiresView->fields["display_ip"] != 0) { if (!empty($ip2)) { $graph .= "<tr><td>" . $ip2; if (!empty($netmask2)) { $graph = sprintf(__('%1$s / %2$s'), $graph, $netmask2); } $graph .= "</td></tr>"; } } $graph .= "</table>>];\n"; } else { $graph .= "\"" . $device_unique_name1 . "\""; $graph .= " -- \"" . $device_unique_name2 . "\";\n"; } return $graph; }