function showForm(Printer $item, $options = array())
 {
     // ** Get link OID fields
     $mapping_name = array();
     $id = $item->getID();
     $a_cartridges = $this->find("`printers_id`='" . $id . "'");
     echo "<div align='center'><form method='post' name='snmp_form' id='snmp_form'\n                 action=\"" . $options['target'] . "\">";
     echo "<table class='tab_cadre' cellpadding='5' width='950'>";
     echo "<tr class='tab_bg_1'>";
     echo "<th align='center' colspan='3'>";
     echo __('Cartridge(s)', 'fusioninventory');
     echo "</th>";
     echo "</tr>";
     asort($mapping_name);
     $mapping = new PluginFusioninventoryMapping();
     foreach ($a_cartridges as $a_cartridge) {
         echo "<tr class='tab_bg_1'>";
         echo "<td align='center'>";
         $mapping->getFromDB($a_cartridge['plugin_fusioninventory_mappings_id']);
         echo $mapping->getTranslation($mapping->fields);
         echo " : ";
         echo "</td>";
         echo "<td align='center'>";
         echo "</td>";
         echo "<td align='center'>";
         if ($a_cartridge['state'] == 100000) {
             echo __('OK');
         } else {
             if ($a_cartridge['state'] < 0) {
                 $a_cartridge['state'] = $a_cartridge['state'] * -1;
                 echo $a_cartridge['state'];
                 echo ' ' . __('remaining pages', 'fusioninventory');
             } else {
                 PluginFusioninventoryDisplay::bar($a_cartridge['state']);
             }
         }
         echo "</td>";
         echo "</tr>";
     }
     echo "</table>";
     Html::closeForm();
     echo "</div>";
 }
  You should have received a copy of the GNU General Public License
  along with GLPI; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  ------------------------------------------------------------------------
*/
// Original Author of file: David DURIEUX
// Purpose of file:
// ----------------------------------------------------------------------
if (!defined('GLPI_ROOT')) {
    define('GLPI_ROOT', '../../..');
}
$NEEDED_ITEMS = array("fusioninventory", "search");
include GLPI_ROOT . "/inc/includes.php";
commonHeader($LANG['plugin_fusioninventory']["title"][0], $_SERVER["PHP_SELF"], "plugins", "fusioninventory");
PluginFusioninventoryAuth::checkRight("reports", "r");
PluginFusioninventoryDisplay::mini_menu();
echo "<table class='tab_cadre'>";
echo "<th align='center'>" . $LANG["Menu"][6] . "</th>";
echo "<tr class='tab_bg_1'>";
echo "<td align='center'>";
echo "<a href='" . GLPI_ROOT . "/plugins/fusioninventory/report/switch_ports.history.php'>" . $LANG['plugin_fusioninventory']["menu"][5] . "</a>";
echo "</td>";
echo "</tr>";
echo "<tr class='tab_bg_1'>";
echo "<td align='center'>";
echo "<a href='" . GLPI_ROOT . "/plugins/fusioninventory/report/ports_date_connections.php'>" . $LANG['plugin_fusioninventory']["menu"][6] . "</a>";
echo "</td>";
echo "</tr>";
/*
echo "<tr class='tab_bg_1'>";
echo "<td align='center'>";
 /**
  * Display state of taskjob
  *
  * @param $taskjobs_id integer id of the taskjob
  * @param $width integer how large in pixel display array
  * @param $return value display or return in var (html or htmlvar or other value
  *        to have state number in %)
  * @param $style '' = normal or 'simple' for very simple display
  *
  * @return nothing, html or pourcentage value
  *
  **/
 function stateTaskjob($taskjobs_id, $width = '930', $return = 'html', $style = '')
 {
     $state = array();
     $state[0] = 0;
     $state[1] = 0;
     $state[2] = 0;
     $state[3] = 0;
     $a_taskjobstates = $this->find("`plugin_fusioninventory_taskjobs_id`='" . $taskjobs_id . "' AND `state`!='" . self::FINISHED . "'");
     $total = 0;
     if (count($a_taskjobstates) > 0) {
         foreach ($a_taskjobstates as $data) {
             $total++;
             $state[$data['state']]++;
         }
         $globalState = 0;
         if ($total == '0') {
             $globalState = 0;
         } else {
             $first = 25;
             $second = ($state[1] + $state[2] + $state[3]) * 100 / $total / 4;
             $third = ($state[2] + $state[3]) * 100 / $total / 4;
             $fourth = $state[3] * 100 / $total / 4;
             $globalState = $first + $second + $third + $fourth;
         }
         if ($return == 'html') {
             if ($style == 'simple') {
                 Html::displayProgressBar($width, ceil($globalState), array('simple' => 1));
             } else {
                 Html::displayProgressBar($width, ceil($globalState));
             }
         } else {
             if ($return == 'htmlvar') {
                 if ($style == 'simple') {
                     return PluginFusioninventoryDisplay::getProgressBar($width, ceil($globalState), array('simple' => 1));
                 } else {
                     return PluginFusioninventoryDisplay::getProgressBar($width, ceil($globalState));
                 }
             } else {
                 return ceil($globalState);
             }
         }
     }
 }
 function getStateAgent($ip, $agentid, $type = "")
 {
     global $LANG;
     PluginFusioninventoryDisplay::disableDebug();
     $state = false;
     if ($fp = fsockopen($ip, 62354, $errno, $errstr, 1)) {
         echo "<tr class='tab_bg_1'>";
         echo "<td align='center'>";
         echo "<input type='checkbox' name='agent-ip[]' value='{$agentid}-{$ip}-{$type}'/>";
         echo "</td>";
         echo "<td align='center'>" . $ip;
         echo "</td>";
         echo "<td align='center'>";
         echo $LANG['plugin_fusioninventory']["task"][8];
         echo "</td>";
         echo "</tr>";
         fclose($fp);
         $state = true;
     }
     PluginFusioninventoryDisplay::reenableusemode();
     return $state;
 }
 function showForm($target, $ID)
 {
     global $DB, $CFG_GLPI, $LANG;
     $history = new PluginFusioninventorySnmphistory();
     if (!PluginFusioninventory::haveRight("snmp_networking", "r")) {
         return false;
     }
     if (PluginFusioninventory::haveRight("snmp_networking", "w")) {
         $canedit = true;
     } else {
         $canedit = false;
     }
     include GLPI_ROOT . "/plugins/fusioninventory/inc_constants/snmp.mapping.constant.php";
     $this->ID = $ID;
     $nw = new Netwire();
     $CommonItem = new CommonItem();
     $plugin_fusioninventory_snmp = new PluginFusioninventorySNMP();
     echo "<script type='text/javascript' src='" . GLPI_ROOT . "/lib/extjs/adapter/prototype/prototype.js'></script>";
     echo "<script type='text/javascript' src='" . GLPI_ROOT . "/lib/extjs/adapter/prototype/effects.js'></script>";
     if (!($data = $this->find("`FK_networking`='" . $ID . "'", '', 1))) {
         // Add in database if not exist
         $input['FK_networking'] = $ID;
         $ID_tn = $this->add($input);
         $this->getFromDB($ID_tn);
     } else {
         foreach ($data as $ID_tn => $datas) {
             $this->fields = $data[$ID_tn];
         }
     }
     $PID = $this->fields['last_PID_update'];
     // Form networking informations
     echo "<div align='center'>\n            <form method='post' name='snmp_form' id='snmp_form' action=\"" . $target . "\">";
     echo "<table class='tab_cadre' cellpadding='5' width='950'>";
     echo "<tr class='tab_bg_1'>";
     echo "<th colspan='3'>";
     echo $LANG['plugin_fusioninventory']["snmp"][11];
     echo "</th>";
     echo "</tr>";
     echo "<tr class='tab_bg_1'>";
     echo "<td align='center'>" . $LANG['plugin_fusioninventory']["profile"][24] . "</td>";
     echo "<td align='center'>";
     $query_models = "SELECT * \n                       FROM `glpi_plugin_fusioninventory_model_infos`\n                       WHERE `device_type`!='2'\n                             AND `device_type`!='0';";
     $result_models = $DB->query($query_models);
     $exclude_models = array();
     while ($data_models = $DB->fetch_array($result_models)) {
         $exclude_models[] = $data_models['ID'];
     }
     Dropdown::show("PluginFusioninventoryModelInfos", array('name' => "model_infos", 'value' => $this->fields['FK_model_infos'], 'comments' => 0, 'used' => $exclude_models));
     echo "</td>";
     echo "</tr>";
     echo "<tr class='tab_bg_1'>";
     echo "<td align='center'>" . $LANG['plugin_fusioninventory']["functionalities"][43] . "</td>";
     echo "<td align='center'>";
     PluginFusioninventorySNMP::auth_dropdown($this->fields['FK_snmp_connection']);
     echo "</td>";
     echo "</tr>";
     echo "<tr class='tab_bg_1 center'>";
     echo "<td>";
     echo " <input type='submit' name='GetRightModel'\n              value='" . $LANG['plugin_fusioninventory']["model_info"][13] . "' class='submit'/></td>";
     echo "<td>";
     echo "<input type='hidden' name='ID' value='" . $ID . "'>";
     echo "<input type='submit' name='update' value=\"" . $LANG["buttons"][7] . "\" class='submit' >";
     echo "</td>";
     echo "</tr>";
     echo "</table></form>";
     // Remote action of agent
     $pfit = new PluginFusioninventoryTask();
     $pfit->RemoteStateAgent($target, $ID, NETWORKING_TYPE, array('INVENTORY' => 1));
     // SNMP Informations
     //		echo "<div align='center'>
     echo "<form method='post' name='snmp_form' id='snmp_form'  action=\"" . $target . "\">";
     echo "<table class='tab_cadre' cellpadding='5' width='950'>";
     echo "<tr class='tab_bg_1'>";
     echo "<th colspan='3'>";
     echo $LANG['plugin_fusioninventory']["title"][1];
     echo "</th>";
     echo "</tr>";
     echo "<tr class='tab_bg_1 center'>";
     echo "<td colspan='2' height='30'>";
     echo $LANG['plugin_fusioninventory']["snmp"][52] . ": " . convDateTime($this->fields['last_fusioninventory_update']);
     echo "</td>";
     echo "</tr>";
     // Get link field to detect if cpu, memory and uptime are get onthis network device
     $Array_Object_TypeNameConstant = $plugin_fusioninventory_snmp->GetLinkOidToFields($ID, NETWORKING_TYPE);
     $mapping_name = array();
     foreach ($Array_Object_TypeNameConstant as $object => $mapping_type_name) {
         $mapping_name[$mapping_type_name] = "1";
     }
     if (isset($mapping_name['uptime']) and $mapping_name['uptime'] == "1") {
         echo "<tr class='tab_bg_1 center'>";
         echo "<td>" . $LANG['plugin_fusioninventory']["snmp"][12] . "</td>";
         echo "<td>";
         $sysUpTime = $this->fields['uptime'];
         if (strstr($sysUpTime, "days")) {
             list($day, $hour, $minute, $sec, $ticks) = sscanf($sysUpTime, "%d days, %d:%d:%d.%d");
         } else {
             if (strstr($sysUpTime, "hours")) {
                 $day = 0;
                 list($hour, $minute, $sec, $ticks) = sscanf($sysUpTime, "%d hours, %d:%d.%d");
             } else {
                 if (strstr($sysUpTime, "minutes")) {
                     $day = 0;
                     $hour = 0;
                     list($minute, $sec, $ticks) = sscanf($sysUpTime, "%d minutes, %d.%d");
                 } else {
                     if ($sysUpTime == "0") {
                         $day = 0;
                         $hour = 0;
                         $minute = 0;
                         $sec = 0;
                     } else {
                         list($hour, $minute, $sec, $ticks) = sscanf($sysUpTime, "%d:%d:%d.%d");
                         $day = 0;
                     }
                 }
             }
         }
         echo "<b>{$day}</b> " . $LANG["stats"][31] . " ";
         echo "<b>{$hour}</b> " . $LANG["job"][21] . " ";
         echo "<b>{$minute}</b> " . $LANG["job"][22] . " ";
         echo " " . strtolower($LANG["rulesengine"][42]) . " <b>{$sec}</b> " . $LANG["stats"][34] . " ";
         echo "</td>";
         echo "</tr>";
     }
     if (isset($mapping_name['cpu']) and $mapping_name['cpu'] == "1" or isset($mapping_name['cpuuser']) and $mapping_name['cpuuser'] == "1" and (isset($mapping_name['cpusystem']) and $mapping_name['cpusystem'] == "1")) {
         echo "<tr class='tab_bg_1 center'>";
         echo "<td>" . $LANG['plugin_fusioninventory']["snmp"][13] . "</td>";
         echo "<td>";
         PluginFusioninventoryDisplay::bar($this->fields['cpu'], '', 'inverse');
         echo "</td>";
         echo "</tr>";
     }
     if (isset($mapping_name['memory']) and $mapping_name['memory'] == "1") {
         echo "<tr class='tab_bg_1 center'>";
         echo "<td>" . $LANG['plugin_fusioninventory']["snmp"][14] . "</td>";
         echo "<td>";
         $query2 = "SELECT *\n                    FROM `glpi_networking`\n                    WHERE `ID`='" . $ID . "';";
         $result2 = $DB->query($query2);
         $data2 = $DB->fetch_assoc($result2);
         if (empty($data2["ram"])) {
             $ram_pourcentage = 0;
         } else {
             $ram_pourcentage = ceil(100 * ($data2["ram"] - $this->fields['memory']) / $data2["ram"]);
         }
         PluginFusioninventoryDisplay::bar($ram_pourcentage, " (" . ($data2["ram"] - $this->fields['memory']) . " Mo / " . $data2["ram"] . " Mo)", 'inverse');
         echo "</td>";
         echo "</tr>";
     }
     echo "</table></form>";
     // ********************************************************************************************** //
     // *********************************** METTRE TABLEAU DES PORTS ********************************* //
     // ********************************************************************************************** //
     function ByteSize($bytes, $sizeoct = 1024)
     {
         $size = $bytes / $sizeoct;
         if ($size < $sizeoct) {
             $size = number_format($size, 0);
             $size .= ' K';
         } else {
             if ($size / $sizeoct < $sizeoct) {
                 $size = number_format($size / $sizeoct, 0);
                 $size .= ' M';
             } else {
                 if ($size / $sizeoct / $sizeoct < $sizeoct) {
                     $size = number_format($size / $sizeoct / $sizeoct, 0);
                     $size .= ' G';
                 } else {
                     if ($size / $sizeoct / $sizeoct / $sizeoct < $sizeoct) {
                         $size = number_format($size / $sizeoct / $sizeoct / $sizeoct, 0);
                         $size .= ' T';
                     }
                 }
             }
         }
         return $size;
     }
     $query = "\n\t\tSELECT *,glpi_plugin_fusioninventory_networking_ports.ifmac as ifmacinternal\n\t\t\n\t\tFROM glpi_plugin_fusioninventory_networking_ports\n\n\t\tLEFT JOIN glpi_networking_ports\n\t\tON glpi_plugin_fusioninventory_networking_ports.FK_networking_ports = glpi_networking_ports.ID \n\t\tWHERE glpi_networking_ports.on_device='" . $ID . "'\n\t\tORDER BY logical_number ";
     echo "<script  type='text/javascript'>\nfunction close_array(id){\n\tdocument.getElementById('plusmoins'+id).innerHTML = '<img src=\\'" . GLPI_ROOT . "/pics/collapse.gif\\''+\n      'onClick=\\'Effect.Fade(\"viewfollowup'+id+'\");appear_array('+id+');\\' />';\n} \nfunction appear_array(id){\n\tdocument.getElementById('plusmoins'+id).innerHTML = '<img src=\\'" . GLPI_ROOT . "/pics/expand.gif\\''+\n      'onClick=\\'Effect.Appear(\"viewfollowup'+id+'\");close_array('+id+');\\' />';\n}\t\t\n\t\t\n\t\t</script>";
     echo "<table class='tab_cadre' cellpadding='5' width='1100'>";
     echo "<tr class='tab_bg_1'>";
     $query_array = "SELECT *\n                      FROM `glpi_display`\n                      WHERE `type`='" . PLUGIN_FUSIONINVENTORY_SNMP_NETWORKING_PORTS . "'\n                            AND `FK_users`='0'\n                      ORDER BY `rank`;";
     $result_array = $DB->query($query_array);
     echo "<th colspan='" . (mysql_num_rows($result_array) + 2) . "'>";
     echo $LANG['plugin_fusioninventory']["snmp"][40];
     $result = $DB->query($query);
     echo ' (' . $DB->numrows($result) . ')';
     if ($_SESSION["glpilanguage"] == "fr_FR") {
         $url_legend = "https://forge.indepnet.net/wiki/fusioninventory/Fr_VI_visualisationsdonnees_2_reseau";
     } else {
         $url_legend = "https://forge.indepnet.net/wiki/fusioninventory/En_VI_visualisationsdonnees_2_reseau";
     }
     echo " <a href='" . $url_legend . "'>[ " . $LANG['plugin_fusioninventory']["functionalities"][6] . " ]</a>";
     echo "</th>";
     echo "</tr>";
     echo "<tr class='tab_bg_1'>";
     echo '<th><img alt="Sélectionnez les éléments à afficher par défaut" 
                  title="Sélectionnez les éléments à afficher par défaut"
                  src="' . GLPI_ROOT . '/pics/options_search.png" class="pointer"
                  onclick="var w = window.open(\'' . GLPI_ROOT . '/front/popup.php?popup=search_config&type=5157\' ,\'glpipopup\',
                     \'height=400,
                  width=1000, top=100, left=100, scrollbars=yes\' ); w.focus();"></th>';
     echo "<th>" . $LANG["common"][16] . "</th>";
     $query_array = "SELECT * \n                      FROM `glpi_display`\n                      WHERE `type`='5157'\n                             AND `FK_users`='0'\n                      ORDER BY `rank`;";
     $result_array = $DB->query($query_array);
     while ($data_array = $DB->fetch_array($result_array)) {
         echo "<th>";
         switch ($data_array['num']) {
             case 2:
                 echo $LANG['plugin_fusioninventory']["snmp"][42];
                 break;
             case 3:
                 echo $LANG['plugin_fusioninventory']["snmp"][43];
                 break;
             case 4:
                 echo $LANG['plugin_fusioninventory']["snmp"][44];
                 break;
             case 5:
                 echo $LANG['plugin_fusioninventory']["snmp"][45];
                 break;
             case 6:
                 echo $LANG['plugin_fusioninventory']["snmp"][46];
                 break;
             case 7:
                 echo $LANG['plugin_fusioninventory']["snmp"][47];
                 break;
             case 8:
                 echo $LANG['plugin_fusioninventory']["snmp"][48];
                 break;
             case 9:
                 echo $LANG['plugin_fusioninventory']["snmp"][49];
                 break;
             case 10:
                 echo $LANG['plugin_fusioninventory']["snmp"][51];
                 break;
             case 11:
                 echo $LANG['plugin_fusioninventory']["mapping"][115];
                 break;
             case 12:
                 echo $LANG["networking"][17];
                 break;
             case 13:
                 echo $LANG['plugin_fusioninventory']["snmp"][50];
                 break;
             case 14:
                 echo $LANG["networking"][56];
                 break;
             case 15:
                 echo $LANG['plugin_fusioninventory']["snmp"][41];
                 break;
         }
         echo "</th>";
     }
     echo "</tr>";
     // Fin de l'entête du tableau
     if ($result) {
         while ($data = $DB->fetch_array($result)) {
             $background_img = "";
             if ($data["trunk"] == "1" and (strstr($data["ifstatus"], "up") or strstr($data["ifstatus"], "1"))) {
                 $background_img = " style='background-image: url(\"" . GLPI_ROOT . "/plugins/fusioninventory/pics/port_trunk.png\"); '";
             } else {
                 if ($data["trunk"] == "-1" and (strstr($data["ifstatus"], "up") or strstr($data["ifstatus"], "1"))) {
                     $background_img = " style='background-image: url(\"" . GLPI_ROOT . "/plugins/fusioninventory/pics/multiple_mac_addresses.png\"); '";
                 } else {
                     if (strstr($data["ifstatus"], "up") or strstr($data["ifstatus"], "1")) {
                         $background_img = " style='background-image: url(\"" . GLPI_ROOT . "/plugins/fusioninventory/pics/connected_trunk.png\"); '";
                     }
                 }
             }
             echo "<tr class='tab_bg_1 center' height='40'" . $background_img . ">";
             echo "<td id='plusmoins" . $data["ID"] . "'><img src='" . GLPI_ROOT . "/pics/expand.gif' onClick='Effect.Appear(\"viewfollowup" . $data["ID"] . "\");close_array(" . $data["ID"] . ");' /></td>";
             echo "<td><a href='networking.port.php?ID=" . $data["ID"] . "'>" . $data["name"] . "</a></td>";
             $query_array = "SELECT *\n                            FROM `glpi_display`\n                            WHERE `type`='5157'\n                                  AND `FK_users`='0'\n                            ORDER BY `rank`;";
             $result_array = $DB->query($query_array);
             while ($data_array = $DB->fetch_array($result_array)) {
                 switch ($data_array['num']) {
                     case 2:
                         echo "<td>" . $data["ifmtu"] . "</td>";
                         break;
                     case 3:
                         echo "<td>" . ByteSize($data["ifspeed"], 1000) . "bps</td>";
                         break;
                     case 4:
                         echo "<td>";
                         if (strstr($data["ifstatus"], "up") or strstr($data["ifinternalstatus"], "1")) {
                             echo "<img src='" . GLPI_ROOT . "/pics/greenbutton.png'/>";
                         } else {
                             if (strstr($data["ifstatus"], "down") or strstr($data["ifinternalstatus"], "2")) {
                                 echo "<img src='" . GLPI_ROOT . "/pics/redbutton.png'/>";
                             } else {
                                 if (strstr($data["ifstatus"], "testing") or strstr($data["ifinternalstatus"], "3")) {
                                     echo "<img src='" . GLPI_ROOT . "/plugins/fusioninventory/pics/yellowbutton.png'/>";
                                 }
                             }
                         }
                         echo "</td>";
                         break;
                     case 5:
                         echo "<td>" . $data["iflastchange"] . "</td>";
                         break;
                     case 6:
                         echo "<td>";
                         if ($data["ifinoctets"] == "0") {
                             echo "-";
                         } else {
                             echo ByteSize($data["ifinoctets"], 1000) . "o";
                         }
                         echo "</td>";
                         break;
                     case 7:
                         if ($data["ifinerrors"] == "0") {
                             echo "<td>-";
                         } else {
                             echo "<td background='#cf9b9b' class='tab_bg_1_2'>";
                             echo $data["ifinerrors"];
                         }
                         echo "</td>";
                         break;
                     case 8:
                         echo "<td>";
                         if ($data["ifinoctets"] == "0") {
                             echo "-";
                         } else {
                             echo ByteSize($data["ifoutoctets"], 1000) . "o";
                         }
                         echo "</td>";
                         break;
                     case 9:
                         if ($data["ifouterrors"] == "0") {
                             echo "<td>-";
                         } else {
                             echo "<td background='#cf9b9b' class='tab_bg_1_2'>";
                             echo $data["ifouterrors"];
                         }
                         echo "</td>";
                         break;
                     case 10:
                         echo "<td>" . $data["portduplex"] . "</td>";
                         break;
                     case 11:
                         // ** internal mac
                         echo "<td>" . $data["ifmac"] . "</td>";
                         break;
                     case 12:
                         // ** Mac address and link to device which are connected to this port
                         $opposite_port = $nw->getOppositeContact($data["FK_networking_ports"]);
                         if ($opposite_port != "") {
                             $query_device = "SELECT * \n                                         FROM `glpi_networking_ports`\n                                         WHERE `ID`='" . $opposite_port . "';";
                             $result_device = $DB->query($query_device);
                             $data_device = $DB->fetch_assoc($result_device);
                             $CommonItem->getFromDB($data_device["device_type"], $data_device["on_device"]);
                             $link1 = $CommonItem->getLink(1);
                             $link = str_replace($CommonItem->getName(0), $data_device["ifmac"], $CommonItem->getLink());
                             $link2 = str_replace($CommonItem->getName(0), $data_device["ifaddr"], $CommonItem->getLink());
                             if ($data_device["device_type"] == PLUGIN_FUSIONINVENTORY_MAC_UNKNOWN) {
                                 if ($CommonItem->getField("accepted") == "1") {
                                     echo "<td style='background:#bfec75'\n                                        class='tab_bg_1_2'>" . $link1;
                                 } else {
                                     echo "<td background='#cf9b9b'\n                                        class='tab_bg_1_2'>" . $link1;
                                 }
                                 if (!empty($link)) {
                                     echo "<br/>" . $link;
                                 }
                                 if (!empty($link2)) {
                                     echo "<br/>" . $link2;
                                 }
                                 echo "</td>";
                             } else {
                                 echo "<td>" . $link1;
                                 if (!empty($link)) {
                                     echo "<br/>" . $link;
                                 }
                                 if (!empty($link2)) {
                                     echo "<br/>" . $link2;
                                 }
                                 echo "</td>";
                             }
                         } else {
                             echo "<td></td>";
                         }
                         break;
                     case 13:
                         // ** Connection status
                         echo "<td>";
                         if (strstr($data["ifstatus"], "up") or strstr($data["ifstatus"], "1")) {
                             echo "<img src='" . GLPI_ROOT . "/pics/greenbutton.png'/>";
                         } else {
                             if (strstr($data["ifstatus"], "down") or strstr($data["ifstatus"], "2")) {
                                 echo "<img src='" . GLPI_ROOT . "/pics/redbutton.png'/>";
                             } else {
                                 if (strstr($data["ifstatus"], "testing") or strstr($data["ifstatus"], "3")) {
                                     echo "<img src='" . GLPI_ROOT . "/plugins/fusioninventory/pics/yellowbutton.png'/>";
                                 } else {
                                     if (strstr($data["ifstatus"], "dormant") or strstr($data["ifstatus"], "5")) {
                                         echo "<img src='" . GLPI_ROOT . "/plugins/fusioninventory/pics/orangebutton.png'/>";
                                     }
                                 }
                             }
                         }
                         echo "</td>";
                         break;
                     case 14:
                         echo "<td>";
                         $canedit = haveRight("networking", "w");
                         $used = array();
                         $query_vlan = "SELECT * FROM glpi_networking_vlan WHERE FK_port='" . $data["ID"] . "'";
                         $result_vlan = $DB->query($query_vlan);
                         if ($DB->numrows($result_vlan) > 0) {
                             echo "<table cellpadding='0' cellspacing='0'>";
                             while ($line = $DB->fetch_array($result_vlan)) {
                                 $used[] = $line["FK_vlan"];
                                 $a_vlan = Dropdown::getDropdownName("glpi_dropdown_vlan", $line["FK_vlan"], 1);
                                 echo "<tr><td>" . $a_vlan['name'] . " [" . $a_vlan['comments'] . "]";
                                 echo "</td><td>";
                                 if ($canedit) {
                                     echo "<a href='" . $CFG_GLPI["root_doc"] . "/front/networking.port.php?unassign_vlan=unassigned&amp;ID=" . $line["ID"] . "'>";
                                     echo "<img src=\"" . $CFG_GLPI["root_doc"] . "/pics/delete2.png\" alt='" . $LANG['buttons'][6] . "' title='" . $LANG['buttons'][6] . "'></a>";
                                 } else {
                                     echo "&nbsp;";
                                 }
                                 echo "</td></tr>";
                             }
                             echo "</table>";
                         } else {
                             echo "&nbsp;";
                         }
                         echo "</td>";
                         break;
                     case 15:
                         //Port description
                         echo "<td>" . $data["ifdescr"] . "</td>";
                         break;
                 }
             }
             echo "</tr>";
             // Historique
             echo "\n\t\t\t\t<tr style='display: none;' id='viewfollowup" . $data["ID"] . "'>\n\t\t\t\t\t<td colspan='" . (mysql_num_rows($result_array) + 2) . "'>" . PluginFusioninventorySnmphistory::showHistory($data["ID"]) . "</td>\n\t\t\t\t</tr>\n\t\t\t\t";
         }
     }
     echo "</table>";
 }
 function showFormPrinter($target, $ID)
 {
     global $DB, $CFG_GLPI, $LANG, $FUSIONINVENTORY_MAPPING;
     PluginFusioninventoryAuth::checkRight("snmp_printers", "r");
     include GLPI_ROOT . "/plugins/fusioninventory/inc_constants/snmp.mapping.constant.php";
     $this->ID = $ID;
     $plugin_fusioninventory_printers = new PluginFusioninventoryPrinters();
     //		$config_snmp_printer = new PluginFusioninventoryConfigSNMPPrinter;
     $plugin_fusioninventory_snmp = new PluginFusioninventorySNMP();
     $query = "SELECT * \n                FROM `glpi_plugin_fusioninventory_printers`\n                WHERE `FK_printers`=" . $ID . " ";
     $result = $DB->query($query);
     $data = $DB->fetch_assoc($result);
     // Add in database if not exist
     if ($DB->numrows($result) == "0") {
         $query_add = "INSERT INTO `glpi_plugin_fusioninventory_printers` (`FK_printers`)\n                              VALUES('" . $ID . "') ";
         $DB->query($query_add);
     }
     // Form printer informations
     //		echo "<br>";
     echo "<div align='center'><form method='post' name='snmp_form' id='snmp_form'\n                 action=\"" . $target . "\">";
     echo "<table class='tab_cadre' cellpadding='5' width='950'>";
     echo "<tr class='tab_bg_1'>";
     echo "<th colspan='3'>";
     echo $LANG['plugin_fusioninventory']["snmp"][11];
     echo "</th>";
     echo "</tr>";
     echo "<tr class='tab_bg_1'>";
     echo "<td align='center'>" . $LANG['plugin_fusioninventory']["model_info"][4] . "</td>";
     echo "<td align='center'>";
     $query_models = "SELECT * \n                       FROM `glpi_plugin_fusioninventory_model_infos`\n                       WHERE `device_type`!=3\n                             AND `device_type`!=0";
     $result_models = $DB->query($query_models);
     $exclude_models = array();
     while ($data_models = $DB->fetch_array($result_models)) {
         $exclude_models[] = $data_models['ID'];
     }
     Dropdown::show("PluginFusioninventoryModelInfos", array('name' => "FK_model_infos", 'value' => $data["FK_model_infos"], 'comments' => false, 'used' => $exclude_models));
     echo "</td>";
     echo "<td align='center'>";
     echo " <input type='submit' name='GetRightModel' value='" . $LANG['plugin_fusioninventory']["model_info"][13] . "' class='submit'/></td>";
     echo "</td>";
     echo "</tr>";
     echo "<tr class='tab_bg_1'>";
     echo "<td align='center'>" . $LANG['plugin_fusioninventory']["functionalities"][43] . "</td>";
     echo "<td align='center'>";
     PluginFusioninventorySNMP::auth_dropdown($data["FK_snmp_connection"]);
     echo "</td>";
     echo "<td>";
     echo "</td>";
     echo "</tr>";
     echo "<tr class='tab_bg_1'>";
     echo "<td align='center' colspan='2' height='30'>";
     echo $LANG['plugin_fusioninventory']["snmp"][52] . ": " . convDateTime($data["last_fusioninventory_update"]);
     echo "</td>";
     echo "<td>";
     echo "</td>";
     echo "</tr>";
     echo "<tr class='tab_bg_1'>";
     echo "<td colspan='3'>";
     echo "<div align='center'>";
     echo "<input type='hidden' name='ID' value='" . $ID . "'>";
     echo "<input type='submit' name='update' value=\"" . $LANG["buttons"][7] . "\" class='submit' >";
     echo "</td>";
     echo "</tr>";
     echo "</table></form>";
     echo "</div>";
     // Remote action of agent
     $pfit = new PluginFusioninventoryTask();
     $pfit->RemoteStateAgent($target, $ID, PRINTER_TYPE, array('INVENTORY' => 1));
     // ** FORM FOR CARTRIDGES
     // get infos to get visible or not the counters
     $snmp_model_ID = $plugin_fusioninventory_snmp->GetSNMPModel($ID, PRINTER_TYPE);
     // ** Get link OID fields
     $Array_Object_TypeNameConstant = $plugin_fusioninventory_snmp->GetLinkOidToFields($ID, PRINTER_TYPE);
     $mapping_name = array();
     foreach ($Array_Object_TypeNameConstant as $object => $mapping_type_name) {
         if (strstr($mapping_type_name, "cartridge") or strstr($mapping_type_name, "toner")) {
             switch ($mapping_type_name) {
                 case "cartridgeblack":
                     $mapping_name[$mapping_type_name] = "1";
                     break;
                 case "cartridgeblackphoto":
                     $mapping_name[$mapping_type_name] = "2";
                     break;
                 case "tonerblack":
                     $mapping_name[$mapping_type_name] = "3";
                     break;
                 case "tonerblack2":
                     $mapping_name[$mapping_type_name] = "4";
                     break;
                 case "cartridgecyan":
                     $mapping_name[$mapping_type_name] = "5";
                     break;
                 case "cartridgecyanlight":
                     $mapping_name[$mapping_type_name] = "6";
                     break;
                 case "tonercyan":
                     $mapping_name[$mapping_type_name] = "7";
                     break;
                 case "cartridgemagenta":
                     $mapping_name[$mapping_type_name] = "8";
                     break;
                 case "cartridgemagentalight":
                     $mapping_name[$mapping_type_name] = "9";
                     break;
                 case "tonermagenta":
                     $mapping_name[$mapping_type_name] = "10";
                     break;
                 case "cartridgeyellow":
                     $mapping_name[$mapping_type_name] = "11";
                     break;
                 case "toneryellow":
                     $mapping_name[$mapping_type_name] = "12";
                     break;
                 case "drumblack":
                     $mapping_name[$mapping_type_name] = "13";
                     break;
                 case "drumcyan":
                     $mapping_name[$mapping_type_name] = "14";
                     break;
                 case "drummagenta":
                     $mapping_name[$mapping_type_name] = "15";
                     break;
                 case "drumyellow":
                     $mapping_name[$mapping_type_name] = "16";
                     break;
                 case "wastetoner":
                     $mapping_name[$mapping_type_name] = "17";
                     break;
                 case "maintenancekit":
                     $mapping_name[$mapping_type_name] = "18";
                     break;
                 default:
                     $mapping_name[$mapping_type_name] = "19";
             }
         }
     }
     echo "<div align='center'><form method='post' name='snmp_form' id='snmp_form'\n                 action=\"" . $target . "\">";
     echo "<table class='tab_cadre' cellpadding='5' width='950'>";
     echo "<tr class='tab_bg_1'>";
     echo "<th align='center' colspan='3'>";
     echo $LANG["cartridges"][16];
     echo "</th>";
     echo "</tr>";
     asort($mapping_name);
     foreach ($mapping_name as $cartridge_name => $val) {
         $state = $plugin_fusioninventory_printers->cartridges_state($ID, $cartridge_name);
         echo "<tr class='tab_bg_1'>";
         echo "<td align='center'>";
         echo $FUSIONINVENTORY_MAPPING[PRINTER_TYPE][$cartridge_name]['shortname'];
         echo " : ";
         echo "</td>";
         echo "<td align='center'>";
         //			if ($config_snmp_printer->getValue('manage_cartridges') == "1") {
         //				echo "<form method='post' name='snmp_form' id='snmp_form'  action=\"".$target."\">";
         //				dropdownValue("glpi_cartridges_type","FK_cartridges",$state['FK_cartridges'],0);
         //				echo "<input type='hidden' name='ID' value='".$ID."' />";
         //				echo "<input type='hidden' name='object_name' value='".$cartridge_name."' />";
         //				echo "<input name='update_cartridges' value='update_cartridges' src='".GLPI_ROOT.
         //                 "/pics/actualiser.png' class='calendrier' type='image'>";
         //				echo "</form>";
         //			}
         echo "</td>";
         echo "<td align='center'>";
         PluginFusioninventoryDisplay::bar($state['state']);
         echo "</td>";
         echo "</tr>";
     }
     echo "</table></form>";
     echo "</div>";
 }