/** * Print a nice HTML head for every page * * @param $title title of the page * @param $url not used anymore. * @param $sector sector in which the page displayed is * @param $item item corresponding to the page displayed * @param $option option corresponding to the page displayed * **/ function commonHeader($title, $url = '', $sector = "none", $item = "none", $option = "") { global $CFG_GLPI, $LANG, $PLUGIN_HOOKS, $HEADER_LOADED, $DB; // Print a nice HTML-head for every page if ($HEADER_LOADED) { return; } $HEADER_LOADED = true; includeCommonHtmlHeader($title); // Body echo "<body>"; // Generate array for menu and check right // INVENTORY $showstate = false; $menu['inventory']['title'] = $LANG['Menu'][38]; if (haveRight("computer", "r")) { $menu['inventory']['default'] = '/front/computer.php'; $menu['inventory']['content']['computer']['title'] = $LANG['Menu'][0]; $menu['inventory']['content']['computer']['shortcut'] = 'c'; $menu['inventory']['content']['computer']['page'] = '/front/computer.php'; $menu['inventory']['content']['computer']['links']['search'] = '/front/computer.php'; if (haveRight("computer", "w")) { $menu['inventory']['content']['computer']['links']['add'] = '/front/setup.templates.php?' . 'itemtype=Computer&add=1'; $menu['inventory']['content']['computer']['links']['template'] = '/front/setup.templates.php?' . 'itemtype=Computer&add=0'; } $showstate = true; } if (haveRight("monitor", "r")) { $menu['inventory']['content']['monitor']['title'] = $LANG['Menu'][3]; $menu['inventory']['content']['monitor']['shortcut'] = 'm'; $menu['inventory']['content']['monitor']['page'] = '/front/monitor.php'; $menu['inventory']['content']['monitor']['links']['search'] = '/front/monitor.php'; if (haveRight("monitor", "w")) { $menu['inventory']['content']['monitor']['links']['add'] = '/front/setup.templates.php?' . 'itemtype=Monitor&add=1'; $menu['inventory']['content']['monitor']['links']['template'] = '/front/setup.templates.php?' . 'itemtype=Monitor&add=0'; } $showstate = true; } if (haveRight("software", "r")) { $menu['inventory']['content']['software']['title'] = $LANG['Menu'][4]; $menu['inventory']['content']['software']['shortcut'] = 's'; $menu['inventory']['content']['software']['page'] = '/front/software.php'; $menu['inventory']['content']['software']['links']['search'] = '/front/software.php'; if (haveRight("software", "w")) { $menu['inventory']['content']['software']['links']['add'] = '/front/setup.templates.php?' . 'itemtype=Software&add=1'; $menu['inventory']['content']['software']['links']['template'] = '/front/setup.templates.php?' . 'itemtype=Software&add=0'; } $showstate = true; } if (haveRight("networking", "r")) { $menu['inventory']['content']['networking']['title'] = $LANG['Menu'][1]; $menu['inventory']['content']['networking']['shortcut'] = 'n'; $menu['inventory']['content']['networking']['page'] = '/front/networkequipment.php'; $menu['inventory']['content']['networking']['links']['search'] = '/front/networkequipment.php'; if (haveRight("networking", "w")) { $menu['inventory']['content']['networking']['links']['add'] = '/front/setup.templates.php?' . 'itemtype=NetworkEquipment&add=1'; $menu['inventory']['content']['networking']['links']['template'] = '/front/setup.templates.php?' . 'itemtype=NetworkEquipment&add=0'; } $showstate = true; } if (haveRight("peripheral", "r")) { $menu['inventory']['content']['peripheral']['title'] = $LANG['Menu'][16]; $menu['inventory']['content']['peripheral']['shortcut'] = 'n'; $menu['inventory']['content']['peripheral']['page'] = '/front/peripheral.php'; $menu['inventory']['content']['peripheral']['links']['search'] = '/front/peripheral.php'; if (haveRight("peripheral", "w")) { $menu['inventory']['content']['peripheral']['links']['add'] = '/front/setup.templates.php?' . 'itemtype=Peripheral&add=1'; $menu['inventory']['content']['peripheral']['links']['template'] = '/front/setup.templates.php?' . 'itemtype=Peripheral&add=0'; } $showstate = true; } if (haveRight("printer", "r")) { $menu['inventory']['content']['printer']['title'] = $LANG['Menu'][2]; $menu['inventory']['content']['printer']['shortcut'] = 'p'; $menu['inventory']['content']['printer']['page'] = '/front/printer.php'; $menu['inventory']['content']['printer']['links']['search'] = '/front/printer.php'; if (haveRight("printer", "w")) { $menu['inventory']['content']['printer']['links']['add'] = '/front/setup.templates.php?' . 'itemtype=Printer&add=1'; $menu['inventory']['content']['printer']['links']['template'] = '/front/setup.templates.php?' . 'itemtype=Printer&add=0'; } $showstate = true; } if (haveRight("cartridge", "r")) { $menu['inventory']['content']['cartridge']['title'] = $LANG['Menu'][21]; $menu['inventory']['content']['cartridge']['shortcut'] = 'c'; $menu['inventory']['content']['cartridge']['page'] = '/front/cartridgeitem.php'; $menu['inventory']['content']['cartridge']['links']['search'] = '/front/cartridgeitem.php'; if (haveRight("cartridge", "w")) { $menu['inventory']['content']['cartridge']['links']['add'] = '/front/cartridgeitem.form.php'; } } if (haveRight("consumable", "r")) { $menu['inventory']['content']['consumable']['title'] = $LANG['Menu'][32]; $menu['inventory']['content']['consumable']['shortcut'] = 'g'; $menu['inventory']['content']['consumable']['page'] = '/front/consumableitem.php'; $menu['inventory']['content']['consumable']['links']['search'] = '/front/consumableitem.php'; if (haveRight("consumable", "w")) { $menu['inventory']['content']['consumable']['links']['add'] = '/front/consumableitem.form.php'; } $menu['inventory']['content']['consumable']['links']['summary'] = '/front/consumableitem.php?' . 'synthese=yes'; } if (haveRight("phone", "r")) { $menu['inventory']['content']['phone']['title'] = $LANG['Menu'][34]; $menu['inventory']['content']['phone']['shortcut'] = 't'; $menu['inventory']['content']['phone']['page'] = '/front/phone.php'; $menu['inventory']['content']['phone']['links']['search'] = '/front/phone.php'; if (haveRight("phone", "w")) { $menu['inventory']['content']['phone']['links']['add'] = '/front/setup.templates.php?' . 'itemtype=Phone&add=1'; $menu['inventory']['content']['phone']['links']['template'] = '/front/setup.templates.php?' . 'itemtype=Phone&add=0'; } $showstate = true; } if ($showstate) { $menu['inventory']['content']['state']['title'] = $LANG['Menu'][28]; $menu['inventory']['content']['state']['shortcut'] = 'n'; $menu['inventory']['content']['state']['page'] = '/front/states.php'; $menu['inventory']['content']['state']['links']['search'] = '/front/states.php'; $menu['inventory']['content']['state']['links']['summary'] = '/front/states.php?synthese=yes'; } // ASSISTANCE $menu['maintain']['title'] = $LANG['title'][24]; if (haveRight("observe_ticket", "1") || haveRight("show_all_ticket", "1") || haveRight("create_ticket", "1")) { $menu['maintain']['default'] = '/front/ticket.php'; $menu['maintain']['content']['ticket']['title'] = $LANG['Menu'][5]; $menu['maintain']['content']['ticket']['shortcut'] = 't'; $menu['maintain']['content']['ticket']['page'] = '/front/ticket.php'; $menu['maintain']['content']['ticket']['links']['search'] = '/front/ticket.php'; $menu['maintain']['content']['ticket']['links']['search'] = '/front/ticket.php'; if (haveRight('validate_ticket', 1)) { $opt = array(); $opt['reset'] = 'reset'; $opt['field'][0] = 55; // validation status $opt['searchtype'][0] = 'equals'; $opt['contains'][0] = 'waiting'; $opt['link'][0] = 'AND'; $opt['field'][1] = 59; // validation aprobator $opt['searchtype'][1] = 'equals'; $opt['contains'][1] = getLoginUserID(); $opt['link'][1] = 'AND'; $pic_validate = "<img title=\"" . $LANG['validation'][15] . "\" alt=\"" . $LANG['validation'][15] . "\" src='" . $CFG_GLPI["root_doc"] . "/pics/menu_showall.png'>"; $menu['maintain']['content']['ticket']['links'][$pic_validate] = '/front/ticket.php?' . append_params($opt, '&'); } } if (haveRight("create_ticket", "1")) { $menu['maintain']['content']['ticket']['links']['add'] = '/front/ticket.form.php'; } if (haveRight("show_planning", "1") || haveRight("show_all_planning", "1")) { $menu['maintain']['content']['planning']['title'] = $LANG['Menu'][29]; $menu['maintain']['content']['planning']['shortcut'] = 'l'; $menu['maintain']['content']['planning']['page'] = '/front/planning.php'; $menu['maintain']['content']['planning']['links']['search'] = '/front/planning.php'; } if (haveRight("statistic", "1")) { $menu['maintain']['content']['stat']['title'] = $LANG['Menu'][13]; $menu['maintain']['content']['stat']['shortcut'] = '1'; $menu['maintain']['content']['stat']['page'] = '/front/stat.php'; } // FINANCIAL if (haveRight("budget", "r")) { $menu['financial']['content']['budget']['title'] = $LANG['financial'][110]; $menu['financial']['content']['budget']['shortcut'] = 'n'; $menu['financial']['content']['budget']['page'] = '/front/budget.php'; $menu['financial']['content']['budget']['links']['search'] = '/front/budget.php'; if (haveRight("budget", "w")) { $menu['financial']['content']['budget']['links']['add'] = '/front/setup.templates.php?' . 'itemtype=Budget&add=1'; $menu['financial']['content']['budget']['links']['template'] = '/front/setup.templates.php?' . 'itemtype=Budget&add=0'; } } $menu['financial']['title'] = $LANG['Menu'][26]; if (haveRight("contact_enterprise", "r")) { $menu['financial']['content']['supplier']['title'] = $LANG['Menu'][23]; $menu['financial']['content']['supplier']['shortcut'] = 'e'; $menu['financial']['content']['supplier']['page'] = '/front/supplier.php'; $menu['financial']['content']['supplier']['links']['search'] = '/front/supplier.php'; $menu['financial']['default'] = '/front/contact.php'; $menu['financial']['content']['contact']['title'] = $LANG['Menu'][22]; $menu['financial']['content']['contact']['shortcut'] = 't'; $menu['financial']['content']['contact']['page'] = '/front/contact.php'; $menu['financial']['content']['contact']['links']['search'] = '/front/contact.php'; if (haveRight("contact_enterprise", "w")) { $menu['financial']['content']['contact']['links']['add'] = '/front/contact.form.php'; $menu['financial']['content']['supplier']['links']['add'] = '/front/supplier.form.php'; } } if (haveRight("contract", "r")) { $menu['financial']['content']['contract']['title'] = $LANG['Menu'][25]; $menu['financial']['content']['contract']['shortcut'] = 'n'; $menu['financial']['content']['contract']['page'] = '/front/contract.php'; $menu['financial']['content']['contract']['links']['search'] = '/front/contract.php'; if (haveRight("contract", "w")) { $menu['financial']['content']['contract']['links']['add'] = '/front/contract.form.php'; } } if (haveRight("document", "r")) { $menu['financial']['content']['document']['title'] = $LANG['Menu'][27]; $menu['financial']['content']['document']['shortcut'] = 'd'; $menu['financial']['content']['document']['page'] = '/front/document.php'; $menu['financial']['content']['document']['links']['search'] = '/front/document.php'; if (haveRight("document", "w")) { $menu['financial']['content']['document']['links']['add'] = '/front/document.form.php'; } } // UTILS $menu['utils']['title'] = $LANG['Menu'][18]; $menu['utils']['default'] = '/front/reminder.php'; $menu['utils']['content']['reminder']['title'] = $LANG['title'][37]; $menu['utils']['content']['reminder']['page'] = '/front/reminder.php'; $menu['utils']['content']['reminder']['links']['search'] = '/front/reminder.php'; $menu['utils']['content']['reminder']['links']['add'] = '/front/reminder.form.php'; if (haveRight("knowbase", "r") || haveRight("faq", "r")) { if (haveRight("knowbase", "r")) { $menu['utils']['content']['knowbase']['title'] = $LANG['Menu'][19]; } else { $menu['utils']['content']['knowbase']['title'] = $LANG['knowbase'][1]; } $menu['utils']['content']['knowbase']['page'] = '/front/knowbaseitem.php'; $menu['utils']['content']['knowbase']['links']['search'] = '/front/knowbaseitem.php'; if (haveRight("knowbase", "w") || haveRight("faq", "w")) { $menu['utils']['content']['knowbase']['links']['add'] = '/front/knowbaseitem.form.php?id=new'; } } if (haveRight("reservation_helpdesk", "1") || haveRight("reservation_central", "r")) { $menu['utils']['content']['reservation']['title'] = $LANG['Menu'][17]; $menu['utils']['content']['reservation']['page'] = '/front/reservationitem.php'; $menu['utils']['content']['reservation']['links']['search'] = '/front/reservationitem.php'; $menu['utils']['content']['reservation']['links']['showall'] = '/front/reservation.php'; } if (haveRight("reports", "r")) { $menu['utils']['content']['report']['title'] = $LANG['Menu'][6]; $menu['utils']['content']['report']['page'] = '/front/report.php'; } if ($CFG_GLPI["use_ocs_mode"] && haveRight("ocsng", "w")) { $menu['utils']['content']['ocsng']['title'] = $LANG['Menu'][33]; $menu['utils']['content']['ocsng']['page'] = '/front/ocsng.php'; $menu['utils']['content']['ocsng']['options']['import']['title'] = $LANG['ocsng'][2]; $menu['utils']['content']['ocsng']['options']['import']['page'] = '/front/ocsng.import.php'; $menu['utils']['content']['ocsng']['options']['sync']['title'] = $LANG['ocsng'][1]; $menu['utils']['content']['ocsng']['options']['sync']['page'] = '/front/ocsng.sync.php'; $menu['utils']['content']['ocsng']['options']['clean']['title'] = $LANG['ocsng'][3]; $menu['utils']['content']['ocsng']['options']['clean']['page'] = '/front/ocsng.clean.php'; $menu['utils']['content']['ocsng']['options']['link']['title'] = $LANG['ocsng'][4]; $menu['utils']['content']['ocsng']['options']['link']['page'] = '/front/ocsng.link.php'; } // PLUGINS if (isset($PLUGIN_HOOKS["menu_entry"]) && count($PLUGIN_HOOKS["menu_entry"])) { $menu['plugins']['title'] = $LANG['common'][29]; $plugins = array(); foreach ($PLUGIN_HOOKS["menu_entry"] as $plugin => $active) { if ($active) { // true or a string $function = "plugin_version_{$plugin}"; if (function_exists($function)) { $plugins[$plugin] = $function(); } } } if (count($plugins)) { $list = array(); foreach ($plugins as $key => $val) { $list[$key] = $val["name"]; } asort($list); foreach ($list as $key => $val) { $menu['plugins']['content'][$key]['title'] = $val; $menu['plugins']['content'][$key]['page'] = '/plugins/' . $key . '/'; if (is_string($PLUGIN_HOOKS["menu_entry"][$key])) { $menu['plugins']['content'][$key]['page'] .= $PLUGIN_HOOKS["menu_entry"][$key]; } // Set default link for plugins if (!isset($menu['plugins']['default'])) { $menu['plugins']['default'] = $menu['plugins']['content'][$key]['page']; } if ($sector == "plugins" && $item == $key) { if (isset($PLUGIN_HOOKS["submenu_entry"][$key]) && is_array($PLUGIN_HOOKS["submenu_entry"][$key])) { foreach ($PLUGIN_HOOKS["submenu_entry"][$key] as $name => $link) { // New complete option management if ($name == "options") { $menu['plugins']['content'][$key]['options'] = $link; } else { // Keep it for compatibility if (is_array($link)) { // Simple link option if (isset($link[$option])) { $menu['plugins']['content'][$key]['links'][$name] = '/plugins/' . $key . '/' . $link[$option]; } } else { $menu['plugins']['content'][$key]['links'][$name] = '/plugins/' . $key . '/' . $link; } } } } } } } } /// ADMINISTRATION $menu['admin']['title'] = $LANG['Menu'][15]; if (haveRight("user", "r")) { $menu['admin']['default'] = '/front/user.php'; $menu['admin']['content']['user']['title'] = $LANG['Menu'][14]; $menu['admin']['content']['user']['shortcut'] = 'u'; $menu['admin']['content']['user']['page'] = '/front/user.php'; $menu['admin']['content']['user']['links']['search'] = '/front/user.php'; if (haveRight("user", "w")) { $menu['admin']['content']['user']['links']['add'] = "/front/user.form.php"; } $menu['admin']['content']['user']['options']['ldap']['title'] = $LANG['login'][2]; $menu['admin']['content']['user']['options']['ldap']['page'] = "/front/ldap.php"; } if (haveRight("group", "r")) { $menu['admin']['content']['group']['title'] = $LANG['Menu'][36]; $menu['admin']['content']['group']['shortcut'] = 'g'; $menu['admin']['content']['group']['page'] = '/front/group.php'; $menu['admin']['content']['group']['links']['search'] = '/front/group.php'; if (haveRight("group", "w")) { $menu['admin']['content']['group']['links']['add'] = "/front/group.form.php"; $menu['admin']['content']['group']['options']['ldap']['title'] = $LANG['login'][2]; $menu['admin']['content']['group']['options']['ldap']['page'] = "/front/ldap.group.php"; } } if (haveRight("entity", "r")) { $menu['admin']['content']['entity']['title'] = $LANG['Menu'][37]; $menu['admin']['content']['entity']['shortcut'] = 'z'; $menu['admin']['content']['entity']['page'] = '/front/entity.php'; $menu['admin']['content']['entity']['links']['search'] = '/front/entity.php'; $menu['admin']['content']['entity']['links']['add'] = "/front/entity.form.php"; } if (haveRight("rule_ldap", "r") || haveRight("rule_ocs", "r") || haveRight("entity_rule_ticket", "r") || haveRight("rule_softwarecategories", "r") || haveRight("rule_mailcollector", "r")) { $menu['admin']['content']['rule']['title'] = $LANG['rulesengine'][17]; $menu['admin']['content']['rule']['shortcut'] = 'r'; $menu['admin']['content']['rule']['page'] = '/front/rule.php'; if ($sector == 'admin' && $item == 'rule') { foreach ($CFG_GLPI["rulecollections_types"] as $rulecollectionclass) { $rulecollection = new $rulecollectionclass(); if ($rulecollection->canList()) { $ruleclassname = $rulecollection->getRuleClassName(); $menu['admin']['content']['rule']['options'][$rulecollection->menu_option]['title'] = $rulecollection->getRuleClass()->getTitle(); $menu['admin']['content']['rule']['options'][$rulecollection->menu_option]['page'] = getItemTypeSearchURL($ruleclassname, false); $menu['admin']['content']['rule']['options'][$rulecollection->menu_option]['links']['search'] = getItemTypeSearchURL($ruleclassname, false); if ($rulecollection->canCreate()) { $menu['admin']['content']['rule']['options'][$rulecollection->menu_option]['links']['add'] = getItemTypeFormURL($ruleclassname, false); } } } } } if (haveRight("transfer", "r") && isMultiEntitiesMode()) { $menu['admin']['content']['rule']['options']['transfer']['title'] = $LANG['transfer'][1]; $menu['admin']['content']['rule']['options']['transfer']['page'] = "/front/transfer.php"; $menu['admin']['content']['rule']['options']['transfer']['links']['search'] = "/front/transfer.php"; if (haveRight("transfer", "w")) { $menu['admin']['content']['rule']['options']['transfer']['links']['summary'] = "/front/transfer.action.php"; $menu['admin']['content']['rule']['options']['transfer']['links']['add'] = "/front/transfer.form.php"; } } if (haveRight("rule_dictionnary_dropdown", "r") || haveRight("rule_dictionnary_software", "r") || haveRight("rule_dictionnary_printer", "r")) { $menu['admin']['content']['dictionnary']['title'] = $LANG['rulesengine'][77]; $menu['admin']['content']['dictionnary']['shortcut'] = 'r'; $menu['admin']['content']['dictionnary']['page'] = '/front/dictionnary.php'; if ($sector == 'admin' && $item == 'dictionnary') { $menu['admin']['content']['dictionnary']['options']['manufacturers']['title'] = $LANG['common'][5]; $menu['admin']['content']['dictionnary']['options']['manufacturers']['page'] = '/front/ruledictionnarymanufacturer.php'; $menu['admin']['content']['dictionnary']['options']['manufacturers']['links']['search'] = '/front/ruledictionnarymanufacturer.php'; if (haveRight("rule_dictionnary_dropdown", "w")) { $menu['admin']['content']['dictionnary']['options']['manufacturers']['links']['add'] = '/front/ruledictionnarymanufacturer.form.php'; } $menu['admin']['content']['dictionnary']['options']['software']['title'] = $LANG['Menu'][4]; $menu['admin']['content']['dictionnary']['options']['software']['page'] = '/front/ruledictionnarysoftware.php'; $menu['admin']['content']['dictionnary']['options']['software']['links']['search'] = '/front/ruledictionnarysoftware.php'; if (haveRight("rule_dictionnary_software", "w")) { $menu['admin']['content']['dictionnary']['options']['software']['links']['add'] = '/front/ruledictionnarysoftware.form.php'; } $menu['admin']['content']['dictionnary']['options']['model.computer']['title'] = $LANG['setup'][91]; $menu['admin']['content']['dictionnary']['options']['model.computer']['page'] = '/front/ruledictionnarycomputermodel.php'; $menu['admin']['content']['dictionnary']['options']['model.computer']['links']['search'] = '/front/ruledictionnarycomputermodel.php'; if (haveRight("rule_dictionnary_dropdown", "w")) { $menu['admin']['content']['dictionnary']['options']['model.computer']['links']['add'] = '/front/ruledictionnarycomputermodel.form.php'; } $menu['admin']['content']['dictionnary']['options']['model.monitor']['title'] = $LANG['setup'][94]; $menu['admin']['content']['dictionnary']['options']['model.monitor']['page'] = '/front/ruledictionnarymonitormodel.php'; $menu['admin']['content']['dictionnary']['options']['model.monitor']['links']['search'] = '/front/ruledictionnarymonitormodel.php'; if (haveRight("rule_dictionnary_dropdown", "w")) { $menu['admin']['content']['dictionnary']['options']['model.monitor']['links']['add'] = '/front/ruledictionnarymonitormodel.form.php'; } $menu['admin']['content']['dictionnary']['options']['model.printer']['title'] = $LANG['setup'][96]; $menu['admin']['content']['dictionnary']['options']['model.printer']['page'] = '/front/ruledictionnaryprintermodel.php'; $menu['admin']['content']['dictionnary']['options']['model.printer']['links']['search'] = '/front/ruledictionnaryprintermodel.php'; if (haveRight("rule_dictionnary_dropdown", "w")) { $menu['admin']['content']['dictionnary']['options']['model.printer']['links']['add'] = '/front/ruledictionnaryprintermodel.form.php'; } $menu['admin']['content']['dictionnary']['options']['model.peripheral']['title'] = $LANG['setup'][97]; $menu['admin']['content']['dictionnary']['options']['model.peripheral']['page'] = '/front/ruledictionnaryperipheralmodel.php'; $menu['admin']['content']['dictionnary']['options']['model.peripheral']['links']['search'] = '/front/ruledictionnaryperipheralmodel.php'; if (haveRight("rule_dictionnary_dropdown", "w")) { $menu['admin']['content']['dictionnary']['options']['model.peripheral']['links']['add'] = '/front/ruledictionnaryperipheralmodel.form.php'; } $menu['admin']['content']['dictionnary']['options']['model.networking']['title'] = $LANG['setup'][95]; $menu['admin']['content']['dictionnary']['options']['model.networking']['page'] = '/front/ruledictionnarynetworkequipmentmodel.php'; $menu['admin']['content']['dictionnary']['options']['model.networking']['links']['search'] = '/front/ruledictionnarynetworkequipmentmodel.php'; if (haveRight("rule_dictionnary_dropdown", "w")) { $menu['admin']['content']['dictionnary']['options']['model.networking']['links']['add'] = '/front/ruledictionnarynetworkequipmentmodel.form.php'; } $menu['admin']['content']['dictionnary']['options']['model.phone']['title'] = $LANG['setup'][503]; $menu['admin']['content']['dictionnary']['options']['model.phone']['page'] = '/front/ruledictionnaryphonemodel.php'; $menu['admin']['content']['dictionnary']['options']['model.phone']['links']['search'] = '/front/ruledictionnaryphonemodel.php'; if (haveRight("rule_dictionnary_dropdown", "w")) { $menu['admin']['content']['dictionnary']['options']['model.phone']['links']['add'] = '/front/ruledictionnaryphonemodel.form.php'; } $menu['admin']['content']['dictionnary']['options']['type.computer']['title'] = $LANG['setup'][4]; $menu['admin']['content']['dictionnary']['options']['type.computer']['page'] = '/front/ruledictionnarycomputertype.php'; $menu['admin']['content']['dictionnary']['options']['type.computer']['links']['search'] = '/front/ruledictionnarycomputertype.php'; if (haveRight("rule_dictionnary_dropdown", "w")) { $menu['admin']['content']['dictionnary']['options']['type.computer']['links']['add'] = '/front/ruledictionnarycomputertype.form.php'; } $menu['admin']['content']['dictionnary']['options']['type.monitor']['title'] = $LANG['setup'][44]; $menu['admin']['content']['dictionnary']['options']['type.monitor']['page'] = '/front/ruledictionnarymonitortype.php'; $menu['admin']['content']['dictionnary']['options']['type.monitor']['links']['search'] = '/front/ruledictionnarymonitortype.php'; if (haveRight("rule_dictionnary_dropdown", "w")) { $menu['admin']['content']['dictionnary']['options']['type.monitor']['links']['add'] = '/front/ruledictionnarymonitortype.form.php'; } $menu['admin']['content']['dictionnary']['options']['type.printer']['title'] = $LANG['setup'][43]; $menu['admin']['content']['dictionnary']['options']['type.printer']['page'] = '/front/ruledictionnaryprintertype.php'; $menu['admin']['content']['dictionnary']['options']['type.printer']['links']['search'] = '/front/ruledictionnaryprintertype.php'; if (haveRight("rule_dictionnary_dropdown", "w")) { $menu['admin']['content']['dictionnary']['options']['type.printer']['links']['add'] = '/front/ruledictionnaryprintertype.form.php'; } $menu['admin']['content']['dictionnary']['options']['type.peripheral']['title'] = $LANG['setup'][69]; $menu['admin']['content']['dictionnary']['options']['type.peripheral']['page'] = '/front/ruledictionnaryperipheraltype.php'; $menu['admin']['content']['dictionnary']['options']['type.peripheral']['links']['search'] = '/front/ruledictionnaryperipheraltype.php'; if (haveRight("rule_dictionnary_dropdown", "w")) { $menu['admin']['content']['dictionnary']['options']['type.peripheral']['links']['add'] = '/front/ruledictionnaryperipheraltype.form.php'; } $menu['admin']['content']['dictionnary']['options']['type.networking']['title'] = $LANG['setup'][42]; $menu['admin']['content']['dictionnary']['options']['type.networking']['page'] = '/front/ruledictionnarynetworkequipmenttype.php'; $menu['admin']['content']['dictionnary']['options']['type.networking']['links']['search'] = '/front/ruledictionnarynetworkequipmenttype.php'; if (haveRight("rule_dictionnary_dropdown", "w")) { $menu['admin']['content']['dictionnary']['options']['type.networking']['links']['add'] = '/front/ruledictionnarynetworkequipmenttype.form.php'; } $menu['admin']['content']['dictionnary']['options']['type.phone']['title'] = $LANG['setup'][504]; $menu['admin']['content']['dictionnary']['options']['type.phone']['page'] = '/front/ruledictionnaryphonetype.php'; $menu['admin']['content']['dictionnary']['options']['type.phone']['links']['search'] = '/front/ruledictionnaryphonetype.php'; if (haveRight("rule_dictionnary_dropdown", "w")) { $menu['admin']['content']['dictionnary']['options']['type.phone']['links']['add'] = '/front/ruledictionnaryphonetype.form.php'; } $menu['admin']['content']['dictionnary']['options']['os']['title'] = $LANG['computers'][9]; $menu['admin']['content']['dictionnary']['options']['os']['page'] = '/front/ruledictionnaryoperatingsystem.php'; $menu['admin']['content']['dictionnary']['options']['os']['links']['search'] = '/front/ruledictionnaryoperatingsystem.php'; if (haveRight("rule_dictionnary_dropdown", "w")) { $menu['admin']['content']['dictionnary']['options']['os']['links']['add'] = '/front/ruledictionnaryoperatingsystem.form.php'; } $menu['admin']['content']['dictionnary']['options']['os_sp']['title'] = $LANG['computers'][53]; $menu['admin']['content']['dictionnary']['options']['os_sp']['page'] = '/front/ruledictionnaryoperatingsystemservicepack.php'; $menu['admin']['content']['dictionnary']['options']['os_sp']['links']['search'] = '/front/ruledictionnaryoperatingsystemservicepack.php'; if (haveRight("rule_dictionnary_dropdown", "w")) { $menu['admin']['content']['dictionnary']['options']['os_sp']['links']['add'] = '/front/ruledictionnaryoperatingsystemservicepack.form.php'; } $menu['admin']['content']['dictionnary']['options']['os_version']['title'] = $LANG['computers'][52]; $menu['admin']['content']['dictionnary']['options']['os_version']['page'] = '/front/ruledictionnaryoperatingsystemversion.php'; $menu['admin']['content']['dictionnary']['options']['os_version']['links']['search'] = '/front/ruledictionnaryoperatingsystemversion.php'; if (haveRight("rule_dictionnary_dropdown", "w")) { $menu['admin']['content']['dictionnary']['options']['os_version']['links']['add'] = '/front/ruledictionnaryoperatingsystemversion.form.php'; } $menu['admin']['content']['dictionnary']['options']['printer']['title'] = $LANG['rulesengine'][39]; $menu['admin']['content']['dictionnary']['options']['printer']['page'] = '/front/ruledictionnaryprinter.php'; $menu['admin']['content']['dictionnary']['options']['printer']['links']['search'] = '/front/ruledictionnaryprinter.php'; if (haveRight("rule_dictionnary_printer", "w")) { $menu['admin']['content']['dictionnary']['options']['printer']['links']['add'] = '/front/ruledictionnaryprinter.form.php'; } } } if (haveRight("profile", "r")) { $menu['admin']['content']['profile']['title'] = $LANG['Menu'][35]; $menu['admin']['content']['profile']['shortcut'] = 'p'; $menu['admin']['content']['profile']['page'] = '/front/profile.php'; $menu['admin']['content']['profile']['links']['search'] = "/front/profile.php"; if (haveRight("profile", "w")) { $menu['admin']['content']['profile']['links']['add'] = "/front/profile.form.php"; } } if (haveRight("backup", "w")) { $menu['admin']['content']['backup']['title'] = $LANG['Menu'][12]; $menu['admin']['content']['backup']['shortcut'] = 'b'; $menu['admin']['content']['backup']['page'] = '/front/backup.php'; } if (haveRight("logs", "r")) { $menu['admin']['content']['log']['title'] = $LANG['Menu'][30]; $menu['admin']['content']['log']['shortcut'] = 'l'; $menu['admin']['content']['log']['page'] = '/front/event.php'; } /// CONFIG $config = array(); $addconfig = array(); $menu['config']['title'] = $LANG['common'][12]; if (haveRight("dropdown", "r") || haveRight("entity_dropdown", "r")) { $menu['config']['content']['dropdowns']['title'] = $LANG['setup'][0]; $menu['config']['content']['dropdowns']['page'] = '/front/dropdown.php'; $menu['config']['default'] = '/front/dropdown.php'; if ($item == "dropdowns") { $dps = Dropdown::getStandardDropdownItemTypes(); foreach ($dps as $tab) { foreach ($tab as $key => $val) { if ($key == $option) { $tmp = new $key(); $menu['config']['content']['dropdowns']['options'][$option]['title'] = $val; $menu['config']['content']['dropdowns']['options'][$option]['page'] = $tmp->getSearchURL(false); $menu['config']['content']['dropdowns']['options'][$option]['links']['search'] = $tmp->getSearchURL(false); if ($tmp->canCreate()) { $menu['config']['content']['dropdowns']['options'][$option]['links']['add'] = $tmp->getFormURL(false); } } } } } } if (haveRight("device", "w")) { $menu['config']['content']['device']['title'] = $LANG['title'][30]; $menu['config']['content']['device']['page'] = '/front/device.php'; if ($item == "device") { $dps = Dropdown::getDeviceItemTypes(); foreach ($dps as $tab) { foreach ($tab as $key => $val) { if ($key == $option) { $tmp = new $key(); $menu['config']['content']['device']['options'][$option]['title'] = $val; $menu['config']['content']['device']['options'][$option]['page'] = $tmp->getSearchURL(false); $menu['config']['content']['device']['options'][$option]['links']['search'] = $tmp->getSearchURL(false); if ($tmp->canCreate()) { $menu['config']['content']['device']['options'][$option]['links']['add'] = $tmp->getFormURL(false); } } } } } } if ($CFG_GLPI['use_mailing'] && haveRight("notification", "r") || haveRight("config", "w")) { $menu['config']['content']['mailing']['title'] = $LANG['setup'][704]; $menu['config']['content']['mailing']['page'] = '/front/setup.notification.php'; $menu['config']['content']['mailing']['options']['notification']['title'] = $LANG['setup'][704]; $menu['config']['content']['mailing']['options']['notification']['page'] = '/front/notification.php'; $menu['config']['content']['mailing']['options']['notification']['links']['add'] = '/front/notification.form.php'; $menu['config']['content']['mailing']['options']['notification']['links']['search'] = '/front/notification.php'; } if (haveRight("sla", "r")) { $menu['config']['content']['sla']['title'] = $LANG['Menu'][43]; $menu['config']['content']['sla']['page'] = '/front/sla.php'; $menu['config']['content']['sla']['links']['search'] = "/front/sla.php"; if (haveRight("sla", "w")) { $menu['config']['content']['sla']['links']['add'] = "/front/sla.form.php"; } } if (haveRight("config", "w")) { $menu['config']['content']['config']['title'] = $LANG['setup'][703]; $menu['config']['content']['config']['page'] = '/front/config.form.php'; $menu['config']['content']['control']['title'] = $LANG['Menu'][41]; $menu['config']['content']['control']['page'] = '/front/control.php'; $menu['config']['content']['control']['options']['FieldUnicity']['title'] = $LANG['setup'][811]; $menu['config']['content']['control']['options']['FieldUnicity']['page'] = '/front/fieldunicity.php'; $menu['config']['content']['control']['options']['FieldUnicity']['links']['add'] = '/front/fieldunicity.form.php'; $menu['config']['content']['control']['options']['FieldUnicity']['links']['search'] = '/front/fieldunicity.php'; $menu['config']['content']['crontask']['title'] = $LANG['crontask'][0]; $menu['config']['content']['crontask']['page'] = '/front/crontask.php'; $menu['config']['content']['crontask']['links']['search'] = "/front/crontask.php"; $menu['config']['content']['mailing']['options']['config']['title'] = $LANG['mailing'][118]; $menu['config']['content']['mailing']['options']['config']['page'] = '/front/notificationmailsetting.form.php'; $menu['config']['content']['mailing']['options']['notificationtemplate']['title'] = $LANG['mailing'][113]; $menu['config']['content']['mailing']['options']['notificationtemplate']['page'] = '/front/notificationtemplate.php'; $menu['config']['content']['mailing']['options']['notificationtemplate']['links']['add'] = '/front/notificationtemplate.form.php'; $menu['config']['content']['mailing']['options']['notificationtemplate']['links']['search'] = '/front/notificationtemplate.php'; $menu['config']['content']['extauth']['title'] = $LANG['login'][10]; $menu['config']['content']['extauth']['page'] = '/front/setup.auth.php'; $menu['config']['content']['extauth']['options']['ldap']['title'] = $LANG['login'][2]; $menu['config']['content']['extauth']['options']['ldap']['page'] = '/front/authldap.php'; $menu['config']['content']['extauth']['options']['imap']['title'] = $LANG['login'][3]; $menu['config']['content']['extauth']['options']['imap']['page'] = '/front/authmail.php'; $menu['config']['content']['extauth']['options']['others']['title'] = $LANG['common'][67]; $menu['config']['content']['extauth']['options']['others']['page'] = '/front/auth.others.php'; $menu['config']['content']['extauth']['options']['settings']['title'] = $LANG['common'][12]; $menu['config']['content']['extauth']['options']['settings']['page'] = '/front/auth.settings.php'; switch ($option) { case "ldap": // LDAP $menu['config']['content']['extauth']['options']['ldap']['links']['search'] = '/front/authldap.php'; $menu['config']['content']['extauth']['options']['ldap']['links']['add'] = '' . '/front/authldap.form.php'; break; case "imap": // IMAP $menu['config']['content']['extauth']['links']['search'] = '/front/authmail.php'; $menu['config']['content']['extauth']['links']['add'] = '' . '/front/authmail.form.php'; break; } $menu['config']['content']['mailcollector']['title'] = $LANG['Menu'][39]; $menu['config']['content']['mailcollector']['page'] = '/front/mailcollector.php'; if (canUseImapPop()) { $menu['config']['content']['mailcollector']['links']['search'] = '/front/mailcollector.php'; $menu['config']['content']['mailcollector']['links']['add'] = '/front/mailcollector.form.php'; $menu['config']['content']['mailcollector']['options']['rejectedemails']['links']['search'] = '/front/notimportedemail.php'; } } if ($CFG_GLPI["use_ocs_mode"] && haveRight("config", "w")) { $menu['config']['content']['ocsng']['title'] = $LANG['setup'][134]; $menu['config']['content']['ocsng']['page'] = '/front/ocsserver.php'; $menu['config']['content']['ocsng']['links']['search'] = '/front/ocsserver.php'; $menu['config']['content']['ocsng']['links']['add'] = '/front/ocsserver.form.php'; } if (haveRight("link", "r")) { $menu['config']['content']['link']['title'] = $LANG['title'][33]; $menu['config']['content']['link']['page'] = '/front/link.php'; $menu['config']['content']['link']['hide'] = true; $menu['config']['content']['link']['links']['search'] = '/front/link.php'; if (haveRight("link", "w")) { $menu['config']['content']['link']['links']['add'] = "/front/link.form.php"; } } if (haveRight("config", "w")) { $menu['config']['content']['plugins']['title'] = $LANG['common'][29]; $menu['config']['content']['plugins']['page'] = '/front/plugin.php'; } // Special items $menu['preference']['title'] = $LANG['Menu'][11]; $menu['preference']['default'] = '/front/preference.php'; echo "<div id='header'>"; echo "<div id='c_logo'>"; echo "<a href='" . $CFG_GLPI["root_doc"] . "/front/central.php' title=\"" . $LANG['central'][5] . "\"></a>"; echo "</div>"; /// Prefs / Logout link echo "<div id='c_preference' >"; echo "<ul>"; echo "<li id='deconnexion'><a href='" . $CFG_GLPI["root_doc"] . "/logout.php"; /// logout witout noAuto login for extauth if (isset($_SESSION['glpiextauth']) && $_SESSION['glpiextauth']) { echo "?noAUTO=1"; } echo "' title=\"" . $LANG['central'][6] . "\">" . $LANG['central'][6] . "</a>"; // check user id : header used for display messages when session logout if (getLoginUserID()) { echo " ("; echo formatUserName(0, $_SESSION["glpiname"], $_SESSION["glpirealname"], $_SESSION["glpifirstname"], 0, 20); echo ")"; } echo "</li>\n"; echo "<li><a href='" . (empty($CFG_GLPI["central_doc_url"]) ? "http://glpi-project.org/help-central" : $CFG_GLPI["central_doc_url"]) . "' target='_blank' title=\"" . $LANG['central'][7] . "\">" . $LANG['central'][7] . "</a></li>"; echo "<li><a href='" . $CFG_GLPI["root_doc"] . "/front/preference.php' title=\"" . $LANG['Menu'][11] . "\">" . $LANG['Menu'][11] . "</a></li>"; echo "</ul>"; echo "<div class='sep'></div>"; echo "</div>\n"; /// Search engine echo "<div id='c_recherche' >\n"; echo "<form method='get' action='" . $CFG_GLPI["root_doc"] . "/front/search.php'>\n"; echo "<div id='boutonRecherche'>"; echo "<input type='image' src='" . $CFG_GLPI["root_doc"] . "/pics/ok2.png' value='OK' title=\"" . $LANG['buttons'][2] . "\" alt=\"" . $LANG['buttons'][2] . "\"></div>"; echo "<div id='champRecherche'><input size='15' type='text' name='globalsearch' value='" . $LANG['buttons'][0] . "' onfocus=\"this.value='';\"></div>"; echo "</form>"; echo "<div class='sep'></div>\n"; echo "</div>"; ///Main menu echo "<div id='c_menu'>"; echo "<ul id='menu'>"; // Get object-variables and build the navigation-elements $i = 1; foreach ($menu as $part => $data) { if (isset($data['content']) && count($data['content'])) { echo "<li id='menu{$i}' onmouseover=\"javascript:menuAff('menu{$i}','menu');\" >"; $link = "#"; if (isset($data['default']) && !empty($data['default'])) { $link = $CFG_GLPI["root_doc"] . $data['default']; } if (utf8_strlen($data['title']) > 14) { $data['title'] = utf8_substr($data['title'], 0, 14) . "..."; } echo "<a href='{$link}' class='itemP'>" . $data['title'] . "</a>"; echo "<ul class='ssmenu'>"; // list menu item foreach ($data['content'] as $key => $val) { if (isset($val['page']) && isset($val['title'])) { echo "<li><a href='" . $CFG_GLPI["root_doc"] . $val['page'] . "'"; if (isset($data['shortcut']) && !empty($data['shortcut'])) { echo " accesskey='" . $val['shortcut'] . "'"; } echo ">" . $val['title'] . "</a></li>\n"; } } echo "</ul></li>"; $i++; } } echo "</ul>"; echo "<div class='sep'></div>"; echo "</div>"; // End navigation bar // End headline // Le sous menu contextuel 1 echo "<div id='c_ssmenu1' >"; echo "<ul>"; // list sous-menu item if (isset($menu[$sector])) { if (isset($menu[$sector]['content']) && is_array($menu[$sector]['content'])) { $ssmenu = $menu[$sector]['content']; if (count($ssmenu) > 12) { foreach ($ssmenu as $key => $val) { if (isset($val['hide'])) { unset($ssmenu[$key]); } } $ssmenu = array_splice($ssmenu, 0, 12); } foreach ($ssmenu as $key => $val) { if (isset($val['page']) && isset($val['title'])) { echo "<li><a href='" . $CFG_GLPI["root_doc"] . $val['page'] . "'"; if (isset($val['shortcut']) && !empty($val['shortcut'])) { echo " accesskey='" . $val['shortcut'] . "'"; } echo ">" . $val['title'] . "</a></li>\n"; } } } else { echo "<li> </li>"; } } else { echo "<li> </li>"; } echo "</ul></div>"; // Le fil d ariane echo "<div id='c_ssmenu2' >"; echo "<ul>"; // Display item echo "<li><a href='" . $CFG_GLPI["root_doc"] . "/front/central.php' title=\"" . $LANG['central'][5] . "\">" . $LANG['central'][5] . "</a> ></li>"; if (isset($menu[$sector])) { $link = "/front/central.php"; if (isset($menu[$sector]['default'])) { $link = $menu[$sector]['default']; } echo "<li><a href='" . $CFG_GLPI["root_doc"] . $link . "' title=\"" . $menu[$sector]['title'] . "\">" . $menu[$sector]['title'] . "</a> ></li>"; } if (isset($menu[$sector]['content'][$item])) { // Title $with_option = false; if (!empty($option) && isset($menu[$sector]['content'][$item]['options'][$option]['title']) && isset($menu[$sector]['content'][$item]['options'][$option]['page'])) { $with_option = true; } if (isset($menu[$sector]['content'][$item]['page'])) { echo "<li><a href='" . $CFG_GLPI["root_doc"] . $menu[$sector]['content'][$item]['page'] . "' " . ($with_option ? "" : "class='here'") . " title=\"" . $menu[$sector]['content'][$item]['title'] . "\" >" . $menu[$sector]['content'][$item]['title'] . "</a>" . (!$with_option ? "" : " > ") . "</li>"; } if ($with_option) { echo "<li><a href='" . $CFG_GLPI["root_doc"] . $menu[$sector]['content'][$item]['options'][$option]['page'] . "' class='here' title=\"" . $menu[$sector]['content'][$item]['options'][$option]['title'] . "\" >"; echo resume_name($menu[$sector]['content'][$item]['options'][$option]['title'], 17); echo "</a></li>"; } echo "<li> </li>"; $links = array(); // Item with Option case if (!empty($option) && isset($menu[$sector]['content'][$item]['options'][$option]['links']) && is_array($menu[$sector]['content'][$item]['options'][$option]['links'])) { $links = $menu[$sector]['content'][$item]['options'][$option]['links']; // Without option case : only item links } else { if (isset($menu[$sector]['content'][$item]['links']) && is_array($menu[$sector]['content'][$item]['links'])) { $links = $menu[$sector]['content'][$item]['links']; } } // Add item echo "<li>"; if (isset($links['add'])) { echo "<a href='" . $CFG_GLPI["root_doc"] . $links['add'] . "'>"; echo "<img src='" . $CFG_GLPI["root_doc"] . "/pics/menu_add.png' title=\"" . $LANG['buttons'][8] . "\" alt=\"" . $LANG['buttons'][8] . "\"></a>"; } else { echo "<img src='" . $CFG_GLPI["root_doc"] . "/pics/menu_add_off.png' title=\"" . $LANG['buttons'][8] . "\" alt=\"" . $LANG['buttons'][8] . "\">"; } echo "</li>"; // Search Item if (isset($links['search'])) { echo "<li><a href='" . $CFG_GLPI["root_doc"] . $links['search'] . "'>"; echo "<img src='" . $CFG_GLPI["root_doc"] . "/pics/menu_search.png' title=\"" . $LANG['buttons'][0] . "\" alt=\"" . $LANG['buttons'][0] . "\"></a></li>"; } else { echo "<li><img src='" . $CFG_GLPI["root_doc"] . "/pics/menu_search_off.png' title=\"" . $LANG['buttons'][0] . "\" alt=\"" . $LANG['buttons'][0] . "\"></li>"; } // Links if (count($links) > 0) { foreach ($links as $key => $val) { switch ($key) { case "add": case "search": break; case "template": echo "<li><a href='" . $CFG_GLPI["root_doc"] . $val . "'><img title=\"" . $LANG['common'][8] . "\" alt=\"" . $LANG['common'][8] . "\" src='" . $CFG_GLPI["root_doc"] . "/pics/menu_addtemplate.png'></a></li>"; break; case "showall": echo "<li><a href='" . $CFG_GLPI["root_doc"] . $val . "'><img title=\"" . $LANG['buttons'][40] . "\" alt=\"" . $LANG['buttons'][40] . "\" src='" . $CFG_GLPI["root_doc"] . "/pics/menu_showall.png'></a></li>"; break; case "summary": echo "<li><a href='" . $CFG_GLPI["root_doc"] . $val . "'><img title=\"" . $LANG['state'][1] . "\" alt=\"" . $LANG['state'][1] . "\" src='" . $CFG_GLPI["root_doc"] . "/pics/menu_show.png'></a></li>"; break; case "config": echo "<li><a href='" . $CFG_GLPI["root_doc"] . $val . "'><img title=\"" . $LANG['common'][12] . "\" alt=\"" . $LANG['common'][12] . "\" src='" . $CFG_GLPI["root_doc"] . "/pics/menu_config.png'></a></li>"; break; default: echo "<li><a href='" . $CFG_GLPI["root_doc"] . $val . "'>" . $key . "</a></li>"; break; } } } } else { echo "<li> </li>"; echo "<li> " . " </li>"; } // Add common items echo "<li>"; // Display MENU ALL echo "<div id='show_all_menu' onmouseover=\"completecleandisplay('show_all_menu');\">"; $items_per_columns = 15; $i = -1; echo "<table><tr><td class='top'><table>"; foreach ($menu as $part => $data) { if (isset($data['content']) && count($data['content'])) { if ($i > $items_per_columns) { $i = 0; echo "</table></td><td class='top'><table>"; } $link = "#"; if (isset($data['default']) && !empty($data['default'])) { $link = $CFG_GLPI["root_doc"] . $data['default']; } echo "<tr><td class='tab_bg_1 b'>"; echo "<a href='{$link}' title=\"" . $data['title'] . "\" class='itemP'>" . $data['title'] . "</a>"; echo "</td></tr>"; $i++; // list menu item foreach ($data['content'] as $key => $val) { if ($i > $items_per_columns) { $i = 0; echo "</table></td><td class='top'><table>"; } if (isset($val['page']) && isset($val['title'])) { echo "<tr><td><a href='" . $CFG_GLPI["root_doc"] . $val['page'] . "'"; if (isset($data['shortcut']) && !empty($data['shortcut'])) { echo " accesskey='" . $val['shortcut'] . "'"; } echo ">" . $val['title'] . "</a></td></tr>\n"; $i++; } } } } echo "</table></td></tr></table>"; echo "</div>"; echo " "; echo "</li>"; /// Bookmark load echo "<li>"; echo "<a href='#' onClick=\"var w=window.open('" . $CFG_GLPI["root_doc"] . "/front/popup.php?popup=load_bookmark' ,'glpibookmarks', 'height=500, width=" . (Bookmark::WIDTH + 250) . ", top=100, left=100, scrollbars=yes' );w.focus();\">"; echo "<img src='" . $CFG_GLPI["root_doc"] . "/pics/bookmark.png' title=\"" . $LANG['buttons'][52] . " " . $LANG['bookmark'][1] . "\" alt=\"" . $LANG['buttons'][52] . " " . $LANG['bookmark'][1] . "\">"; echo "</a></li>"; /// MENU ALL echo "<li >"; echo "<img alt='' src='" . $CFG_GLPI["root_doc"] . "/pics/menu_all.png' " . "onclick=\"completecleandisplay('show_all_menu')\">"; echo "</li>"; // check user id : header used for display messages when session logout if (getLoginUserID()) { showProfileSelecter($CFG_GLPI["root_doc"] . "/front/central.php"); } echo "</ul>"; echo "</div>"; echo "</div>\n"; // fin header echo "<div id='page' >"; if ($DB->isSlave() && !$DB->first_connection) { echo "<div id='dbslave-float'>"; echo "<a href='#see_debug'>" . $LANG['setup'][809] . "</a>"; echo "</div>"; } // call function callcron() every 5min callCron(); displayMessageAfterRedirect(); }
but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GLPI; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -------------------------------------------------------------------------- */ // ---------------------------------------------------------------------- // Original Author of file: // Purpose of file: // ---------------------------------------------------------------------- define('GLPI_ROOT', '..'); include GLPI_ROOT . "/inc/includes.php"; checkRight("config", "w"); commonHeader($LANG['Menu'][39], $_SERVER['PHP_SELF'], "config", "mailcollector"); if (!canUseImapPop()) { echo "<div class='center'>"; echo "<table class='tab_cadre_fixe'>"; echo "<tr><th colspan='2'>" . $LANG['Menu'][39] . "</th></tr>"; echo "<tr class='tab_bg_2'><td class='center red'>" . $LANG['setup'][165] . "</td></tr></table>"; echo "</div>"; commonFooter(); exit; } else { $mailcollector = new MailCollector(); $mailcollector->title(); Search::show('MailCollector'); commonFooter(); }
LICENSE This file is part of GLPI. GLPI is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. GLPI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GLPI; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -------------------------------------------------------------------------- */ // ---------------------------------------------------------------------- // Original Author of file: // Purpose of file: // ---------------------------------------------------------------------- define('GLPI_ROOT', '..'); include GLPI_ROOT . "/inc/includes.php"; checkRight("config", "w"); commonHeader($LANG['title'][14], $_SERVER['PHP_SELF'], "config", "extauth", "imap"); if (canUseImapPop()) { Search::show('AuthMail'); } commonFooter();
/** * Print the auth mail form * * @param $ID Integer : ID of the item * @param $options array * * @return Nothing (display) **/ function showForm($ID, $options = array()) { global $LANG; if (!haveRight("config", "w")) { return false; } $spotted = false; if (empty($ID)) { if ($this->getEmpty()) { $spotted = true; } } else { if ($this->getFromDB($ID)) { $spotted = true; } } if (canUseImapPop()) { $options['colspan'] = 1; $this->showTabs($options); $this->showFormHeader($options); echo "<tr class='tab_bg_1'><td>" . $LANG['common'][16] . " :</td>"; echo "<td><input size='30' type='text' name='name' value='" . $this->fields["name"] . "'>"; echo "</td></tr>"; echo "<tr class='tab_bg_1'>"; echo "<td>" . $LANG['common'][60] . " :</td>"; echo "<td colspan='3'>"; Dropdown::showYesNo('is_active', $this->fields['is_active']); echo "</td></tr>"; echo "<tr class='tab_bg_1'><td>" . $LANG['setup'][164] . " :</td>"; echo "<td><input size='30' type='text' name='host' value='" . $this->fields["host"] . "'>"; echo "</td></tr>"; showMailServerConfig($this->fields["connect_string"]); echo "<tr class='tab_bg_1'><td>" . $LANG['common'][25] . " :</td>"; echo "<td>"; echo "<textarea cols='40' rows='4' name='comment'>" . $this->fields["comment"] . "</textarea>"; if ($ID > 0) { echo "<br>" . $LANG['common'][26] . " : " . convDateTime($this->fields["date_mod"]); } echo "</td></tr>"; $this->showFormButtons($options); $this->addDivForTabs(); } else { echo "<div class='center'> <table class='tab_cadre_fixe'>"; echo "<tr><th colspan='2'>" . $LANG['setup'][162] . "</th></tr>"; echo "<tr class='tab_bg_2'><td class='center'>"; echo "<p class='red'>" . $LANG['setup'][165] . "</p>"; echo "<p>" . $LANG['setup'][166] . "</p></td></tr></table></div>"; } }
/** * Manage use authentication and initialize the session * * @param $login_name string * @param $login_password string * @param $noauto boolean * * @return boolean (success) */ function Login($login_name, $login_password, $noauto = false) { global $DB, $CFG_GLPI, $LANG; $this->getAuthMethods(); $this->user_present = 1; $this->auth_succeded = false; //In case the user was deleted in the LDAP directory $user_deleted_ldap = false; if (!$noauto && ($authtype = self::checkAlternateAuthSystems())) { if ($this->getAlternateAuthSystemsUserLogin($authtype) && !empty($this->user->fields['name'])) { // Used for log when login process failed $login_name = $this->user->fields['name']; $this->auth_succeded = true; $this->extauth = 1; $this->user_present = $this->user->getFromDBbyName(addslashes($login_name)); $this->user->fields['authtype'] = $authtype; // if LDAP enabled too, get user's infos from LDAP $this->user->fields["auths_id"] = $CFG_GLPI['authldaps_id_extra']; if (canUseLdap()) { if (isset($this->authtypes["ldap"][$this->user->fields["auths_id"]])) { $ldap_method = $this->authtypes["ldap"][$this->user->fields["auths_id"]]; $ds = AuthLdap::connectToServer($ldap_method["host"], $ldap_method["port"], $ldap_method["rootdn"], decrypt($ldap_method["rootdn_passwd"], GLPIKEY), $ldap_method["use_tls"], $ldap_method["deref_option"]); if ($ds) { $params['method'] = AuthLdap::IDENTIFIER_LOGIN; $params['fields'][AuthLdap::IDENTIFIER_LOGIN] = $ldap_method["login_field"]; $user_dn = AuthLdap::searchUserDn($ds, array('basedn' => $ldap_method["basedn"], 'login_field' => $ldap_method['login_field'], 'search_parameters' => $params, 'user_params' => array('method' => AuthLDAP::IDENTIFIER_LOGIN, 'value' => $login_name), 'condition' => $ldap_method["condition"])); if ($user_dn) { $this->user->getFromLDAP($ds, $ldap_method, $user_dn['dn'], $login_name); } } } } // Reset to secure it $this->user->fields['name'] = $login_name; $this->user->fields["last_login"] = $_SESSION["glpi_currenttime"]; } else { $this->addToError($LANG['login'][8]); } } // If not already auth if (!$this->auth_succeded) { if (empty($login_name) || empty($login_password)) { $this->addToError($LANG['login'][8]); } else { // exists=0 -> no exist // exists=1 -> exist with password // exists=2 -> exist without password $exists = $this->userExists(array('name' => addslashes($login_name))); // Pas en premier car sinon on ne fait pas le blankpassword // First try to connect via le DATABASE if ($exists == 1) { // Without UTF8 decoding if (!$this->auth_succeded) { $this->auth_succeded = $this->connection_db(addslashes($login_name), $login_password); if ($this->auth_succeded) { $this->extauth = 0; $this->user_present = $this->user->getFromDBbyName(addslashes($login_name)); $this->user->fields["authtype"] = self::DB_GLPI; $this->user->fields["password"] = $login_password; } } } else { if ($exists == 2) { //The user is not authenticated on the GLPI DB, but we need to get informations about him //to find out his authentication method $this->user->getFromDBbyName(addslashes($login_name)); //If the user has already been logged, the method_auth and auths_id are already set //so we test this connection first switch ($this->user->fields["authtype"]) { case self::CAS: case self::EXTERNAL: case self::LDAP: if (canUseLdap()) { AuthLdap::tryLdapAuth($this, $login_name, $login_password, $this->user->fields["auths_id"], $this->user->fields["user_dn"]); if (!$this->auth_succeded && $this->user_deleted_ldap) { $user_deleted_ldap = true; } } break; case self::MAIL: if (canUseImapPop()) { AuthMail::tryMailAuth($this, $login_name, $login_password, $this->user->fields["auths_id"]); } break; case self::NOT_YET_AUTHENTIFIED: break; } } else { if (!$exists) { //test all ldap servers only is user is not present in glpi's DB if (!$this->auth_succeded && canUseLdap()) { AuthLdap::tryLdapAuth($this, $login_name, $login_password, 0, false, false); } //test all imap/pop servers if (!$this->auth_succeded && canUseImapPop()) { AuthMail::tryMailAuth($this, $login_name, $login_password, 0, false); } } } } // Fin des tests de connexion } } if ($user_deleted_ldap) { User::manageDeletedUserInLdap($this->user->fields["id"]); } // Ok, we have gathered sufficient data, if the first return false the user // is not present on the DB, so we add him. // if not, we update him. if ($this->auth_succeded) { // Prepare data $this->user->fields["last_login"] = $_SESSION["glpi_currenttime"]; if ($this->extauth) { $this->user->fields["_extauth"] = 1; } if ($DB->isSlave()) { if (!$this->user_present) { // Can't add in slave mode $this->addToError($LANG['login'][11]); $this->auth_succeded = false; } } else { if ($this->user_present) { // update user and Blank PWD to clean old database for the external auth $this->user->update($this->user->fields); if ($this->extauth) { $this->user->blankPassword(); } } else { if ($CFG_GLPI["is_users_auto_add"]) { // Auto add user $input = $this->user->fields; unset($this->user->fields); $this->user->add($input); } else { // Auto add not enable so auth failed $this->addToError($LANG['login'][11]); $this->auth_succeded = false; } } } } // Log Event (if possible) if (!$DB->isSlave()) { // GET THE IP OF THE CLIENT $ip = getenv("HTTP_X_FORWARDED_FOR") ? getenv("HTTP_X_FORWARDED_FOR") : getenv("REMOTE_ADDR"); if ($this->auth_succeded) { $logged = GLPI_DEMO_MODE ? "logged in" : $LANG['log'][40]; Event::log(-1, "system", 3, "login", $login_name . " {$logged}: " . $ip); } else { $logged = GLPI_DEMO_MODE ? "connection failed" : $LANG['log'][41]; Event::log(-1, "system", 1, "login", $logged . ": " . $login_name . " ({$ip})"); } } $this->initSession(); if ($noauto) { $_SESSION["noAUTO"] = 1; } return $this->auth_succeded; }
function canList() { return $this->canView() && canUseImapPop() && MailCollector::getNumberOfMailCollectors(); }