static function exportDictionnaryFile($enableright = TRUE)
 {
     global $DB;
     if (!strstr($_SERVER['PHP_SELF'], "front/plugin.php") && !strstr($_SERVER['PHP_SELF'], "front/plugin.form.php") && basename($_SERVER['PHP_SELF']) != "cli_install.php") {
         if ($enableright) {
             Session::checkRight('plugin_fusioninventory_model', READ);
         }
     }
     $xmlstr = "<?xml version='1.0' encoding='UTF-8'?>" . "<SNMPDISCOVERY>" . "</SNMPDISCOVERY>";
     $xml = new SimpleXMLElement($xmlstr);
     $query = "SELECT * FROM `glpi_plugin_fusioninventory_snmpmodeldevices`\n                LEFT JOIN `glpi_plugin_fusioninventory_snmpmodels`\n                   ON `plugin_fusioninventory_snmpmodels_id`=" . "`glpi_plugin_fusioninventory_snmpmodels`.`id`\n                ORDER BY `sysdescr`";
     $result = $DB->query($query);
     while ($data = $DB->fetch_array($result)) {
         $device = $xml->addChild('DEVICE');
         $device->addChild('SYSDESCR', $data['sysdescr']);
         //            $device->addChild('MANUFACTURER', $data['manufacturers_id']);
         switch ($data['itemtype']) {
             case 'Computer':
                 $device->addChild('TYPE', '1');
                 break;
             case 'NetworkEquipment':
                 $device->addChild('TYPE', '2');
                 break;
             case 'Printer':
                 $device->addChild('TYPE', '3');
                 break;
         }
         $device->addChild('MODELSNMP', $data['discovery_key']);
         $query_serial = "SELECT * FROM `glpi_plugin_fusioninventory_snmpmodelmibs`\n                  LEFT JOIN `glpi_plugin_fusioninventory_mappings`\n                     ON `glpi_plugin_fusioninventory_snmpmodelmibs`." . "`plugin_fusioninventory_mappings_id`=\n                        `glpi_plugin_fusioninventory_mappings`.`id`\n               WHERE `plugin_fusioninventory_snmpmodels_id`='" . $data['plugin_fusioninventory_snmpmodels_id'] . "'\n                  AND `name`='serial'\n               LIMIT 1";
         $result_serial = $DB->query($query_serial);
         if ($DB->numrows($result_serial) > 0) {
             $line = $DB->fetch_assoc($result_serial);
             $device->addChild('SERIAL', Dropdown::getDropdownName('glpi_plugin_fusioninventory_snmpmodelmiboids', $line['plugin_fusioninventory_snmpmodelmiboids_id']));
         }
         $query_serial = "SELECT * FROM `glpi_plugin_fusioninventory_snmpmodelmibs`\n                  LEFT JOIN `glpi_plugin_fusioninventory_mappings`\n                     ON `glpi_plugin_fusioninventory_snmpmodelmibs`." . "`plugin_fusioninventory_mappings_id`=\n                        `glpi_plugin_fusioninventory_mappings`.`id`\n               WHERE `plugin_fusioninventory_snmpmodels_id`='" . $data['plugin_fusioninventory_snmpmodels_id'] . "'\n                  AND ((`name`='macaddr' AND `itemtype`='NetworkEquipment')\n                        OR ( `name`='ifPhysAddress' AND `itemtype`='Printer')\n                        OR ( `name`='ifPhysAddress' AND `itemtype`='Computer'))\n               LIMIT 1";
         $result_serial = $DB->query($query_serial);
         if ($DB->numrows($result_serial) > 0) {
             $line = $DB->fetch_assoc($result_serial);
             if ($line['name'] == "macaddr") {
                 $device->addChild('MAC', Dropdown::getDropdownName('glpi_plugin_fusioninventory_snmpmodelmiboids', $line['plugin_fusioninventory_snmpmodelmiboids_id']));
             } else {
                 $device->addChild('MACDYN', Dropdown::getDropdownName('glpi_plugin_fusioninventory_snmpmodelmiboids', $line['plugin_fusioninventory_snmpmodelmiboids_id']));
             }
         }
     }
     $xmlprint = PluginFusioninventoryToolbox::formatXML($xml);
     $xmlprint = str_replace("<SYSDESCR>", "<SYSDESCR><![CDATA[", $xmlprint);
     $xmlprint = str_replace("</SYSDESCR>", "]]></SYSDESCR>", $xmlprint);
     file_put_contents(GLPI_PLUGIN_DOC_DIR . "/fusioninventory/discovery.xml", $xmlprint);
 }
 /**
  * Send data, using given compression algorithm
  *
  **/
 function sendMessage($compressmode = 'none')
 {
     if (!$this->message) {
         return;
     }
     switch ($compressmode) {
         case 'none':
             header("Content-Type: application/xml");
             echo PluginFusioninventoryToolbox::formatXML($this->message);
             break;
         case 'zlib':
             # rfc 1950
             header("Content-Type: application/x-compress-zlib");
             echo gzcompress(PluginFusioninventoryToolbox::formatXML($this->message));
             break;
         case 'deflate':
             # rfc 1951
             header("Content-Type: application/x-compress-deflate");
             echo gzdeflate(PluginFusioninventoryToolbox::formatXML($this->message));
             break;
         case 'gzip':
             # rfc 1952
             header("Content-Type: application/x-compress-gzip");
             echo gzencode(PluginFusioninventoryToolbox::formatXML($this->message));
             break;
     }
 }