コード例 #1
0
/**
 * 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&amp;add=1';
            $menu['inventory']['content']['computer']['links']['template'] = '/front/setup.templates.php?' . 'itemtype=Computer&amp;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&amp;add=1';
            $menu['inventory']['content']['monitor']['links']['template'] = '/front/setup.templates.php?' . 'itemtype=Monitor&amp;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&amp;add=1';
            $menu['inventory']['content']['software']['links']['template'] = '/front/setup.templates.php?' . 'itemtype=Software&amp;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&amp;add=1';
            $menu['inventory']['content']['networking']['links']['template'] = '/front/setup.templates.php?' . 'itemtype=NetworkEquipment&amp;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&amp;add=1';
            $menu['inventory']['content']['peripheral']['links']['template'] = '/front/setup.templates.php?' . 'itemtype=Peripheral&amp;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&amp;add=1';
            $menu['inventory']['content']['printer']['links']['template'] = '/front/setup.templates.php?' . 'itemtype=Printer&amp;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&amp;add=1';
            $menu['inventory']['content']['phone']['links']['template'] = '/front/setup.templates.php?' . 'itemtype=Phone&amp;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, '&amp;');
        }
    }
    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&amp;add=1';
            $menu['financial']['content']['budget']['links']['template'] = '/front/setup.templates.php?' . 'itemtype=Budget&amp;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>&nbsp;</li>";
        }
    } else {
        echo "<li>&nbsp;</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</li>";
        echo "<li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" . "&nbsp;&nbsp;&nbsp;&nbsp;</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 "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
    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();
}
コード例 #2
0
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();
}
コード例 #3
0
ファイル: authmail.php プロジェクト: ryukansent/Thesis-SideB
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();
コード例 #4
0
 /**
  * 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] . "&nbsp;:</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] . "&nbsp;:</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] . "&nbsp;:</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] . "&nbsp;:</td>";
         echo "<td>";
         echo "<textarea cols='40' rows='4' name='comment'>" . $this->fields["comment"] . "</textarea>";
         if ($ID > 0) {
             echo "<br>" . $LANG['common'][26] . "&nbsp;: " . convDateTime($this->fields["date_mod"]);
         }
         echo "</td></tr>";
         $this->showFormButtons($options);
         $this->addDivForTabs();
     } else {
         echo "<div class='center'>&nbsp;<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>";
     }
 }
コード例 #5
0
 /**
  * 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;
 }
コード例 #6
0
 function canList()
 {
     return $this->canView() && canUseImapPop() && MailCollector::getNumberOfMailCollectors();
 }