Esempio n. 1
0
 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;
 }