Example #1
0
/**
 *  Show an HTML header + a BODY + The top menu bar
 *  @param      head    		Lines in the HEAD
 *  @param      title   		Title of web page
 *  @param      target  		Target to use in menu links
 *	@param		disablejs		Do not output links to js (Ex: qd fonction utilisee par sous formulaire Ajax)
 *	@param		disablehead		Do not output head section
 *	@param		arrayofjs		Array of js files to add in header
 *	@param		arrayofcss		Array of css files to add in header
 *  @param		morequerystring	Query string to add to the link "print" to get same parameters (use only if autodetect fails)
 */
function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '')
{
    global $user, $conf, $langs, $db, $dolibarr_main_authentication;
    $html = new Form($db);
    if (!$conf->top_menu) {
        $conf->top_menu = 'eldy_backoffice.php';
    }
    // For backward compatibility with old modules
    if (empty($conf->headerdone)) {
        top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss);
    }
    print '<body id="mainbody">';
    if ($conf->use_javascript_ajax) {
        if ($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT) {
            print '<script type="text/javascript">
				jQuery(document).ready(function () {
					jQuery("body").layout( layoutSettings );
				});
				var layoutSettings = {
					name: "mainlayout",
					defaults: {
						useStateCookie: true,
						size: "auto",
						resizable: false,
						//paneClass: "none",
						//resizerClass: "resizer",
						//togglerClass: "toggler",
						//buttonClass: "button",
						//contentSelector: ".content",
						//contentIgnoreSelector: "span",
						togglerTip_open: "Close This Pane",
						togglerTip_closed: "Open This Pane",
						resizerTip:	"Resize This Pane"
					},
					west: {
						paneClass: "leftContent",
						spacing_closed:	14,
						togglerLength_closed: 14,
						togglerAlign_closed: "top",
						//togglerLength_open: 0,
						//	effect defaults - overridden on some panes
						//slideTrigger_open:	"mouseover",
						//initClosed:	true,
						fxName:	"drop",
						fxSpeed: "normal",
						fxSettings: { easing: "" }
					},
					north: {
						paneClass: "none",
						resizerClass: "none",
						togglerClass: "none",
						spacing_open: 0,
						togglerLength_open:	0,
						togglerLength_closed: -1,
						slidable: false,
						fxName:	"none"
					},
					center: {
						paneSelector: "#mainContent"
					}
				}
    		</script>';
        }
        if (!empty($conf->global->MAIN_MENU_USE_JQUERY_ACCORDION)) {
            print "\n" . '<script type="text/javascript">
					jQuery(document).ready(function () {
						jQuery( ".vmenu" ).accordion({
							autoHeight: false,
							event: "mouseover",
							//collapsible: true,
							//active: 2,
							header: "> .blockvmenupair > .menu_titre"
						});
					});
					</script>';
        }
        // Wrapper to show tooltips
        print "\n" . '<script type="text/javascript">
                    jQuery(document).ready(function () {
                    	jQuery(function() {
                        	$(".classfortooltip").tipTip({maxWidth: "600px", edgeOffset: 10, delay: 50, fadeIn: 50, fadeOut: 50});
                        });
                    });
                </script>';
    }
    /*
     * Top menu
     */
    $top_menu = isset($conf->browser->phone) ? $conf->smart_menu : $conf->top_menu;
    if (GETPOST('menu')) {
        $top_menu = GETPOST('menu');
    }
    // menu=eldy_backoffice.php
    // Load the top menu manager
    $result = dol_include_once("/includes/menus/standard/" . $top_menu);
    if (!$result) {
        $top_menu = 'eldy_backoffice.php';
        include_once DOL_DOCUMENT_ROOT . "/includes/menus/standard/" . $top_menu;
    }
    print "\n" . '<!-- Start top horizontal menu ' . $top_menu . ' -->' . "\n";
    if ($conf->use_javascript_ajax && $conf->global->MAIN_MENU_USE_JQUERY_LAYOUT) {
        print '<div class="ui-layout-north"> <!-- Begin top layout -->' . "\n";
    }
    print '<div id="tmenu_tooltip" class="tmenu">' . "\n";
    // Show menu
    $menutop = new MenuTop($db);
    $menutop->atarget = $target;
    $menutop->showmenu();
    // This contains a \n
    print "</div>\n";
    // Link to login card
    $loginhtmltext = '';
    $logintext = '';
    if ($user->societe_id) {
        $thirdpartystatic = new Societe($db);
        $thirdpartystatic->fetch($user->societe_id);
        $companylink = ' (' . $thirdpartystatic->getNomUrl('', '') . ')';
        $company = ' (' . $langs->trans("Company") . ': ' . $thirdpartystatic->name . ')';
    }
    $logintext = '<div class="login"><a href="' . DOL_URL_ROOT . '/user/fiche.php?id=' . $user->id . '"';
    $logintext .= $menutop->atarget ? ' target="' . $menutop->atarget . '"' : '';
    $logintext .= '>' . $user->login . '</a>';
    if ($user->societe_id) {
        $logintext .= $companylink;
    }
    $logintext .= '</div>';
    $loginhtmltext .= '<u>' . $langs->trans("User") . '</u>';
    $loginhtmltext .= '<br><b>' . $langs->trans("Name") . '</b>: ' . $user->getFullName($langs);
    $loginhtmltext .= '<br><b>' . $langs->trans("Login") . '</b>: ' . $user->login;
    $loginhtmltext .= '<br><b>' . $langs->trans("Administrator") . '</b>: ' . yn($user->admin);
    $type = $user->societe_id ? $langs->trans("External") . $company : $langs->trans("Internal");
    $loginhtmltext .= '<br><b>' . $langs->trans("Type") . '</b>: ' . $type;
    $loginhtmltext .= '<br><b>' . $langs->trans("IPAddress") . '</b>: ' . $_SERVER["REMOTE_ADDR"];
    $loginhtmltext .= '<br>';
    $loginhtmltext .= '<br><u>' . $langs->trans("Connection") . '</u>';
    if ($conf->global->MAIN_MODULE_MULTICOMPANY) {
        $loginhtmltext .= '<br><b>' . $langs->trans("ConnectedOnMultiCompany") . '</b>: ' . $conf->entity . ' (user entity ' . $user->entity . ')';
    }
    $loginhtmltext .= '<br><b>' . $langs->trans("ConnectedSince") . '</b>: ' . dol_print_date($user->datelastlogin, "dayhour");
    $loginhtmltext .= '<br><b>' . $langs->trans("PreviousConnexion") . '</b>: ' . dol_print_date($user->datepreviouslogin, "dayhour");
    $loginhtmltext .= '<br><b>' . $langs->trans("AuthenticationMode") . '</b>: ' . $_SESSION["dol_authmode"];
    $loginhtmltext .= '<br><b>' . $langs->trans("CurrentTheme") . '</b>: ' . $conf->theme;
    $s = picto_from_langcode($langs->getDefaultLang());
    $loginhtmltext .= '<br><b>' . $langs->trans("CurrentUserLanguage") . '</b>: ' . ($s ? $s . ' ' : '') . $langs->getDefaultLang();
    $loginhtmltext .= '<br><b>' . $langs->trans("Browser") . '</b>: ' . $conf->browser->name . ' (' . $_SERVER['HTTP_USER_AGENT'] . ')';
    if (!empty($conf->browser->phone)) {
        $loginhtmltext .= '<br><b>' . $langs->trans("Phone") . '</b>: ' . $conf->browser->phone;
    }
    if (!empty($_SESSION["disablemodules"])) {
        $loginhtmltext .= '<br><b>' . $langs->trans("DisabledModules") . '</b>: <br>' . join(', ', explode(',', $_SESSION["disablemodules"]));
    }
    // Link info
    $logouthtmltext = '';
    $logouttext = '';
    $logouthtmltext = $langs->trans("Logout") . '<br>';
    //$logouthtmltext.="<br>";
    if ($_SESSION["dol_authmode"] != 'forceuser' && $_SESSION["dol_authmode"] != 'http') {
        $logouttext .= '<a href="' . DOL_URL_ROOT . '/user/logout.php"';
        $logouttext .= $menutop->atarget ? ' target="' . $menutop->atarget . '"' : '';
        $logouttext .= '>';
        $logouttext .= '<img class="login" border="0" width="14" height="14" src="' . DOL_URL_ROOT . '/theme/' . $conf->theme . '/img/logout.png"';
        $logouttext .= ' alt="' . dol_escape_htmltag($langs->trans("Logout")) . '" title=""';
        $logouttext .= '>';
        $logouttext .= '</a>';
    } else {
        $logouttext .= '<img class="login" border="0" width="14" height="14" src="' . DOL_URL_ROOT . '/theme/' . $conf->theme . '/img/logout.png"';
        $logouttext .= ' alt="' . dol_escape_htmltag($langs->trans("Logout")) . '" title=""';
        $logouttext .= '>';
    }
    print '<div class="login_block">' . "\n";
    print '<table class="nobordernopadding" summary=""><tr>';
    print $html->textwithtooltip('', $loginhtmltext, 2, 1, $logintext, '', 1);
    // Select entity
    if (!empty($conf->global->MAIN_MODULE_MULTICOMPANY)) {
        if ($user->admin && !$user->entity) {
            $res = @dol_include_once('/multicompany/class/actions_multicompany.class.php');
            if ($res) {
                $mc = new ActionsMulticompany($db);
                $mc->showInfo($conf->entity);
            }
        }
    }
    print $html->textwithtooltip('', $logouthtmltext, 2, 1, $logouttext, '', 1);
    // Link to print main content area
    if (empty($conf->global->MAIN_PRINT_DISABLELINK) && empty($conf->browser->phone)) {
        $qs = $_SERVER["QUERY_STRING"] . ($_SERVER["QUERY_STRING"] ? '&' : '') . $morequerystring;
        $text = '<a href="' . $_SERVER["PHP_SELF"] . '?' . $qs . ($qs ? '&' : '') . 'optioncss=print" target="_blank">';
        $text .= '<img class="printer" border="0" width="14" height="14" src="' . DOL_URL_ROOT . '/theme/' . $conf->theme . '/img/printer.png"';
        $text .= ' title="" alt="">';
        $text .= '</a>';
        print $html->textwithtooltip('', $langs->trans("PrintContentArea"), 2, 1, $text, '', 1);
    }
    print '</tr></table>' . "\n";
    print "</div>\n";
    if ($conf->use_javascript_ajax && $conf->global->MAIN_MENU_USE_JQUERY_LAYOUT) {
        print "</div><!-- End top layout -->\n";
    }
    print "<!-- End top horizontal menu -->\n";
    if (!$conf->use_javascript_ajax || !$conf->global->MAIN_MENU_USE_JQUERY_LAYOUT) {
        print '<table width="100%" class="notopnoleftnoright" summary="leftmenutable" id="undertopmenu"><tr>';
    }
}