function plugin_init_fusioninventory()
{
    global $PLUGIN_HOOKS, $CFG_GLPI, $LANG;
    // Params - Register type
    //	registerPluginType('fusioninventory', "PLUGIN_FUSIONINVENTORY_ERROR_TYPE", 5150, array(
    //		'classname' => 'PluginFusioninventoryErrors',
    //		'tablename' => 'glpi_plugin_fusioninventory_errors',
    //		'formpage' => 'front/errors.form.php'
    //		));
    Plugin::registerClass('PluginFusioninventoryErrors');
    //	registerPluginType('fusioninventory', "PLUGIN_FUSIONINVENTORY_MODEL", 5151, array(
    //		'classname' => 'PluginFusioninventoryModelInfos',
    //		'tablename' => 'glpi_plugin_fusioninventory_model_infos',
    //		'formpage' => 'front/models.form.php',
    //		'searchpage' => 'front/models.php',
    //		'typename' => $LANG['plugin_fusioninventory']["model_info"][4]
    //		));
    Plugin::registerClass('PluginFusioninventoryModelInfos');
    //	registerPluginType('fusioninventory', "PLUGIN_FUSIONINVENTORY_SNMP_AUTH", 5152, array(
    //		'classname' => 'PluginFusioninventorySnmpauth',
    //		'tablename' => 'glpi_plugin_fusioninventory_snmpauths',
    //		'formpage' => 'front/snmp_auth.form.php',
    //		'searchpage' => 'front/snmp_auth.php',
    //		'typename' => $LANG['plugin_fusioninventory']["model_info"][3]
    //		));
    Plugin::registerClass('PluginFusioninventorySnmpauth');
    //	registerPluginType('fusioninventory', "PLUGIN_FUSIONINVENTORY_MAC_UNKNOWN", 5153, array(
    //		'classname' => 'PluginFusioninventoryUnknownDevice',
    //		'tablename' => 'glpi_plugin_fusioninventory_unknown_device',
    //      'formpage' => 'front/unknown.form.php',
    //		'searchpage' => 'front/unknown.form.php',
    //		'typename' => $LANG['plugin_fusioninventory']["processes"][13],
    //		'deleted_tables' => true,
    //		));
    Plugin::registerClass('PluginFusioninventoryUnknownDevice');
    //	registerPluginType('fusioninventory', "PLUGIN_FUSIONINVENTORY_PRINTERS_CARTRIDGES", 5156, array(
    //		'classname' => 'PluginFusioninventoryPrinters',
    //		'tablename' => 'glpi_plugin_fusioninventory_printers_cartridges',
    //		'formpage' => 'front/printer_info.form.php',
    //		'typename' => $LANG["cartridges"][0]
    //		));
    Plugin::registerClass('PluginFusioninventoryPrinters');
    //	registerPluginType('fusioninventory', "PLUGIN_FUSIONINVENTORY_SNMP_NETWORKING_PORTS", 5157, array(
    //		'classname' => 'PluginFusioninventoryNetworking',
    //		'tablename' => 'glpi_networking_ports'
    //		));
    Plugin::registerClass('PluginFusioninventoryNetworking');
    //	registerPluginType('fusioninventory', "PLUGIN_FUSIONINVENTORY_SNMP_AGENTS", 5158, array(
    //		'classname' => 'PluginFusioninventoryAgents',
    //		'tablename' => 'glpi_plugin_fusioninventory_agents',
    //		'formpage' => 'front/agents.form.php',
    //		'searchpage' => 'front/agents.php'
    //		));
    Plugin::registerClass('PluginFusioninventoryAgents');
    //	registerPluginType('fusioninventory', "PLUGIN_FUSIONINVENTORY_SNMP_RANGEIP", 5159, array(
    //		'classname' => 'PluginFusioninventoryRangeIP',
    //		'tablename' => 'glpi_plugin_fusioninventory_rangeip',
    //		'formpage' => 'front/rangeip.form.php',
    //		'searchpage' => 'front/rangeip.php'
    //		));
    Plugin::registerClass('PluginFusioninventoryRangeIP');
    //	registerPluginType('fusioninventory', "PLUGIN_FUSIONINVENTORY_AGENTS_PROCESSES", 5161, array(
    //		'classname' => 'PluginFusioninventoryAgentsProcesses',
    //		'tablename' => 'glpi_plugin_fusioninventory_agents_processes',
    //		'formpage' => 'front/agents.processes.php',
    //		'massiveaction_noupdate' => true
    //		));
    Plugin::registerClass('PluginFusioninventoryAgentsProcesses');
    //	registerPluginType('fusioninventory', "PLUGIN_FUSIONINVENTORY_SNMP_HISTORY", 5162, array(
    //		'classname' => 'PluginFusioninventorySnmphistory',
    //		'tablename' => 'glpi_plugin_fusioninventory_snmphistories'
    //		));
    Plugin::registerClass('PluginFusioninventorySnmphistory');
    //	registerPluginType('fusioninventory', "PLUGIN_FUSIONINVENTORY_SNMP_NETWORKING_PORTS2", 5163, array(
    //		'classname' => 'PluginFusioninventoryNetworking',
    //		'tablename' => 'glpi_plugin_fusioninventory_networking_ports'
    //		));
    Plugin::registerClass('PluginFusioninventoryNetworking');
    //	registerPluginType('fusioninventory', "PLUGIN_FUSIONINVENTORY_SNMP_CONFIG", 5165, array(
    //		'classname' => 'PluginFusioninventoryConfig',
    //		'tablename' => 'glpi_plugin_fusioninventory_config',
    //		'formpage' => 'front/functionalities.form.php'
    //		));
    Plugin::registerClass('PluginFusioninventoryConfig');
    //   registerPluginType('fusioninventory', "PLUGIN_FUSIONINVENTORY_TASK", 5166, array(
    //		'classname' => 'PluginFusioninventoryTask',
    //		'tablename' => 'glpi_plugin_fusioninventory_task',
    //      'searchpage' => 'front/task.php'
    //		));
    Plugin::registerClass('PluginFusioninventoryTask');
    //	registerPluginType('fusioninventory', "PLUGIN_FUSIONINVENTORY_CONSTRUCT_DEVICE", 5167, array(
    //		'classname' => 'PluginFusioninventoryConstructDevice',
    //		'tablename' => 'glpi_plugin_fusioninventory_construct_device',
    //		'formpage' => 'front/construct_device.form.php',
    //		'searchpage' => 'front/construct_device.php',
    //		'typename' => $LANG['plugin_fusioninventory']["constructdevice"][0]
    //		));
    Plugin::registerClass('PluginFusioninventoryConstructDevice');
    //array_push($CFG_GLPI["specif_entities_tables"],"glpi_plugin_fusioninventory_errors");
    $PLUGIN_HOOKS['init_session']['fusioninventory'] = 'plugin_fusioninventory_initSession';
    $PLUGIN_HOOKS['change_profile']['fusioninventory'] = 'plugin_fusioninventory_changeprofile';
    $PLUGIN_HOOKS['cron']['fusioninventory'] = 20 * MINUTE_TIMESTAMP;
    // All 20 minutes
    $PLUGIN_HOOKS['add_javascript']['fusioninventory'] = "script.js";
    if (isset($_SESSION["glpiID"])) {
        if (haveRight("configuration", "r") || haveRight("profile", "w")) {
            // Config page
            $PLUGIN_HOOKS['config_page']['fusioninventory'] = 'front/functionalities.form.php';
        }
        // Define SQL table restriction of entity
        $CFG_GLPI["specif_entities_tables"][] = 'glpi_plugin_fusioninventory_discovery';
        $CFG_GLPI["specif_entities_tables"][] = 'glpi_plugin_fusioninventory_rangeip';
        $CFG_GLPI["specif_entities_tables"][] = 'glpi_plugin_fusioninventory_unknown_device';
        if (isset($_SESSION["glpi_plugin_fusioninventory_installed"]) && $_SESSION["glpi_plugin_fusioninventory_installed"] == 1) {
            $PLUGIN_HOOKS['use_massive_action']['fusioninventory'] = 1;
            $PLUGIN_HOOKS['pre_item_delete']['fusioninventory'] = 'plugin_pre_item_delete_fusioninventory';
            $PLUGIN_HOOKS['pre_item_purge']['fusioninventory'] = 'plugin_pre_item_purge_fusioninventory';
            $PLUGIN_HOOKS['item_update']['fusioninventory'] = 'plugin_item_update_fusioninventory';
            $report_list = array();
            $report_list["report/switch_ports.history.php"] = "Historique des ports de switchs";
            $report_list["report/ports_date_connections.php"] = "Ports de switchs non connectés depuis xx mois";
            $PLUGIN_HOOKS['reports']['fusioninventory'] = $report_list;
            if (haveRight("snmp_models", "r") || haveRight("snmp_authentification", "r")) {
                $PLUGIN_HOOKS['menu_entry']['fusioninventory'] = true;
            }
            // Tabs for each type
            $PLUGIN_HOOKS['headings']['fusioninventory'] = 'plugin_get_headings_fusioninventory';
            $PLUGIN_HOOKS['headings_action']['fusioninventory'] = 'plugin_headings_actions_fusioninventory';
            if (PluginFusioninventory::HaveRight("snmp_models", "r") or PluginFusioninventory::HaveRight("snmp_authentification", "r") or PluginFusioninventory::HaveRight("rangeip", "r") or PluginFusioninventory::HaveRight("agents", "r") or PluginFusioninventory::HaveRight("agentsprocesses", "r") or PluginFusioninventory::HaveRight("unknowndevices", "r") or PluginFusioninventory::HaveRight("reports", "r")) {
                $PLUGIN_HOOKS['menu_entry']['fusioninventory'] = true;
                if (PluginFusioninventory::haveRight("snmp_models", "w")) {
                    $PLUGIN_HOOKS['submenu_entry']['fusioninventory']['add']['models'] = 'front/models.form.php?add=1';
                    $PLUGIN_HOOKS['submenu_entry']['fusioninventory']['search']['models'] = 'front/models.php';
                }
                if (PluginFusioninventory::haveRight("snmp_authentification", "w")) {
                    $PLUGIN_HOOKS['submenu_entry']['fusioninventory']['add']['snmp_auth'] = 'front/snmp_auth.form.php?add=1';
                    $PLUGIN_HOOKS['submenu_entry']['fusioninventory']['search']['snmp_auth'] = 'front/snmp_auth.php';
                }
                if (PluginFusioninventory::haveRight("agents", "w")) {
                    $PLUGIN_HOOKS['submenu_entry']['fusioninventory']['add']['agents'] = 'front/agents.form.php?add=1';
                    $PLUGIN_HOOKS['submenu_entry']['fusioninventory']['search']['agents'] = 'front/agents.php';
                }
                if (PluginFusioninventory::haveRight("rangeip", "w")) {
                    $PLUGIN_HOOKS['submenu_entry']['fusioninventory']['add']['rangeip'] = 'front/rangeip.form.php?add=1';
                    $PLUGIN_HOOKS['submenu_entry']['fusioninventory']['search']['rangeip'] = 'front/rangeip.php';
                }
                $PLUGIN_HOOKS['submenu_entry']['fusioninventory']['add']['constructdevice'] = 'front/construct_device.form.php?add=1';
                $PLUGIN_HOOKS['submenu_entry']['fusioninventory']['search']['constructdevice'] = 'front/construct_device.php';
                if (PluginFusioninventory::haveRight("configuration", "r")) {
                    $PLUGIN_HOOKS['submenu_entry']['fusioninventory']['config'] = 'front/functionalities.form.php';
                }
            }
            $PLUGIN_HOOKS['submenu_entry']['fusioninventory']["<img  src='" . GLPI_ROOT . "/plugins/fusioninventory/pics/books.png' title='" . $LANG['plugin_fusioninventory']["setup"][16] . "' alt='" . $LANG['plugin_fusioninventory']["setup"][16] . "'>"] = 'front/documentation.php';
        }
    }
}
  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");
$NEEDED_ITEMS = array("computer", "device", "printer", "networking", "peripheral", "monitor", "software", "infocom", "phone", "tracking", "enterprise", "reservation", "setup", "group", "registry", "rulesengine", "ocsng", "admininfo");
include GLPI_ROOT . "/inc/includes.php";
if (PluginFusioninventory::HaveRight("snmp_models", "r") or PluginFusioninventory::HaveRight("snmp_authentification", "r") or PluginFusioninventory::HaveRight("snmp_iprange", "r") or PluginFusioninventory::HaveRight("snmp_agent", "r") or PluginFusioninventory::HaveRight("snmp_scripts_infos", "r") or PluginFusioninventory::HaveRight("snmp_agent_infos", "r") or PluginFusioninventory::HaveRight("snmp_discovery", "r") or PluginFusioninventory::HaveRight("snmp_report", "r")) {
    if (plugin_fusioninventory_needUpdate() == 1) {
        commonHeader($LANG['plugin_fusioninventory']["setup"][4], $_SERVER["PHP_SELF"], "plugins", "fusioninventory");
        echo "<div align='center'>";
        echo "<table class='tab_cadre' cellpadding='5'>";
        echo "<tr><th>" . $LANG['plugin_fusioninventory']["setup"][3];
        echo "</th></tr>";
        echo "<tr class='tab_bg_1'><td>";
        echo "<a href='install.php'>" . $LANG['plugin_fusioninventory']["setup"][5] . "</a></td></tr>";
        echo "</table></div>";
    } else {
        commonHeader($LANG['plugin_fusioninventory']["title"][0], $_SERVER["PHP_SELF"], "plugins", "fusioninventory");
        PluginFusioninventoryDisplay::menu();
    }
} else {
    displayRightError();
PluginFusioninventoryAuth::checkRight("snmp_authentification", "r");
$plugin_fusioninventory_snmp_auth = new PluginFusioninventorySnmpauth();
$config = new PluginFusioninventoryConfig();
commonHeader($LANG['plugin_fusioninventory']["title"][0], $_SERVER["PHP_SELF"], "plugins", "fusioninventory", "snmp_auth");
PluginFusioninventoryDisplay::mini_menu();
if (isset($_POST["add"])) {
    PluginFusioninventoryAuth::checkRight("snmp_authentification", "w");
    if ($config->getValue("authsnmp") == "file") {
        $new_ID = $plugin_fusioninventory_snmp_auth->add_xml();
    } else {
        if ($config->getValue("authsnmp") == "DB") {
            $new_ID = $plugin_fusioninventory_snmp_auth->add($_POST);
        }
    }
    $_SESSION["MESSAGE_AFTER_REDIRECT"] = "Import effectué avec succès : <a href='snmp_auth.php?ID=" . $new_ID . "'>" . $_POST["name"] . "</a>";
    glpi_header($_SERVER['HTTP_REFERER']);
} else {
    if (isset($_POST["update"])) {
        PluginFusioninventoryAuth::checkRight("snmp_authentification", "w");
        $plugin_fusioninventory_snmp_auth->update($_POST);
        glpi_header($_SERVER['HTTP_REFERER']);
    }
}
$ID = "";
if (isset($_GET["ID"])) {
    $ID = $_GET["ID"];
}
if (PluginFusioninventory::HaveRight("snmp_authentification", "r")) {
    $plugin_fusioninventory_snmp_auth->showForm($_SERVER["PHP_SELF"], $ID);
}
commonFooter();
                        $importexport->importMass();
                        glpi_header($_SERVER['HTTP_REFERER']);
                    }
                }
            }
        }
    }
}
if (isset($_POST["add_oid"])) {
    PluginFusioninventoryAuth::checkRight("snmp_models", "w");
    $plugin_fusioninventory_mib_networking->add($_POST);
    glpi_header($_SERVER['HTTP_REFERER']);
}
if (PluginFusioninventory::HaveRight("snmp_models", "r")) {
    $importexport->showForm($_SERVER["PHP_SELF"]);
    $importexport->showFormMassImport($_SERVER["PHP_SELF"]);
}
$ID = "";
if (isset($_GET["ID"])) {
    $ID = $_GET["ID"];
}
if (!empty($_POST["item_coche"])) {
    PluginFusioninventoryAuth::checkRight("snmp_models", "w");
    $plugin_fusioninventory_mib_networking->deleteMib($_POST["item_coche"]);
    glpi_header($_SERVER['HTTP_REFERER']);
}
if (PluginFusioninventory::HaveRight("snmp_models", "r")) {
    $plugin_fusioninventory_model_infos->showForm($_SERVER["PHP_SELF"], $ID);
    $plugin_fusioninventory_mib_networking->showForm($_SERVER["PHP_SELF"], $ID);
}
commonFooter();