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; } }