/** * Show an HTML header + a BODY + The top menu bar * * @param string $head Lines in the HEAD * @param string $title Title of web page * @param string $target Target to use in menu links (Example: '' or '_top') * @param int $disablejs Do not output links to js (Ex: qd fonction utilisee par sous formulaire Ajax) * @param int $disablehead Do not output head section * @param array $arrayofjs Array of js files to add in header * @param array $arrayofcss Array of css files to add in header * @param string $morequerystring Query string to add to the link "print" to get same parameters (use only if autodetect fails) * @param string $helppagename Name of wiki page for help ('' by default). * Syntax is: For a wiki page: EN:EnglishPage|FR:FrenchPage|ES:SpanishPage * For other external page: http://server/url * @return void */ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '', $helppagename = '') { global $user, $conf, $langs, $db; global $dolibarr_main_authentication, $dolibarr_main_demo; global $hookmanager, $menumanager; // Instantiate hooks of thirdparty module $hookmanager->initHooks(array('toprightmenu')); $toprightmenu = ''; // For backward compatibility with old modules if (empty($conf->headerdone)) { top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); } print '<body id="mainbody">' . "\n"; if ($conf->use_javascript_ajax) { if (empty($conf->dol_use_jmobile) && !empty($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", fxSpeed: "fast" }, west: { paneClass: "leftContent", //spacing_closed: 14, //togglerLength_closed: 14, //togglerAlign_closed: "auto", //togglerLength_open: 0, // effect defaults - overridden on some panes //slideTrigger_open: "mouseover", initClosed: ' . (empty($conf->dol_optimize_smallscreen) ? 'false' : 'true') . ', fxName: "drop", fxSpeed: "fast", fxSettings: { easing: "" } }, north: { paneClass: "none", resizerClass: "none", togglerClass: "none", spacing_open: 0, togglerLength_open: 0, togglerLength_closed: -1, slidable: false, fxName: "none", fxSpeed: "fast" }, center: { paneSelector: "#mainContent" } } </script>' . "\n"; } // Raven.js for client-side Sentry logging support if (array_key_exists('mod_syslog_sentry', $conf->loghandlers) && !empty($conf->global->SYSLOG_SENTRY_DSN)) { // Filter out secret key $dsn = parse_url($conf->global->SYSLOG_SENTRY_DSN); $public_dsn = $dsn['scheme'] . '://' . $dsn['user'] . '@' . $dsn['host'] . $dsn['path']; print '<script type="text/javascript">' . "\n"; print "Raven.config('" . $public_dsn . "').install()\n"; print "Raven.setUserContext({username: '******'})\n"; print "Raven.setTagsContext({version: '" . DOL_VERSION . "'})\n"; print "</script>\n"; } } /* * Top menu */ print "\n" . '<!-- Start top horizontal -->' . "\n"; if (empty($conf->dol_use_jmobile) && !empty($conf->use_javascript_ajax) && !empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) { print '<div class="ui-layout-north"> <!-- Begin top layout -->' . "\n"; } if (empty($conf->dol_hide_topmenu)) { print '<div class="side-nav-vert"><div id="id-top">'; // Show menu entries print '<div id="tmenu_tooltip' . (empty($conf->global->MAIN_MENU_INVERT) ? '' : 'invert') . '" class="tmenu">' . "\n"; $menumanager->atarget = $target; $menumanager->showmenu('top'); // This contains a \n print "</div>\n"; //$form=new Form($db); // Define link to login card $appli = constant('DOL_APPLICATION_TITLE'); if (!empty($conf->global->MAIN_APPLICATION_TITLE)) { $appli = $conf->global->MAIN_APPLICATION_TITLE; if (preg_match('/\\d\\.\\d/', $appli)) { if (!preg_match('/' . preg_quote(DOL_VERSION) . '/', $appli)) { $appli .= " (" . DOL_VERSION . ")"; } // If new title contains a version that is different than core } else { $appli .= " " . DOL_VERSION; } } else { $appli .= " " . DOL_VERSION; } if (!empty($conf->global->MAIN_FEATURES_LEVEL)) { $appli .= "<br>" . $langs->trans("LevelOfFeature") . ': ' . $conf->global->MAIN_FEATURES_LEVEL; } $logouttext = ''; $logouthtmltext = $appli . '<br>'; if ($_SESSION["dol_authmode"] != 'forceuser' && $_SESSION["dol_authmode"] != 'http') { $logouthtmltext .= $langs->trans("Logout") . '<br>'; $logouttext .= '<a href="' . DOL_URL_ROOT . '/user/logout.php">'; $logouttext .= img_picto($langs->trans('Logout') . ":" . $langs->trans('Logout'), 'logout_top.png', 'class="login"', 0, 0, 1); $logouttext .= '</a>'; } else { $logouthtmltext .= $langs->trans("NoLogoutProcessWithAuthMode", $_SESSION["dol_authmode"]); $logouttext .= img_picto($langs->trans('Logout') . ":" . $langs->trans('Logout'), 'logout_top.png', 'class="login"', 0, 0, 1); } print '<div class="login_block">' . "\n"; // Add login user link $toprightmenu .= '<div class="login_block_user">'; // Login name with photo and tooltip $mode = -1; $toprightmenu .= '<div class="inline-block nowrap"><div class="inline-block login_block_elem login_block_elem_name" style="padding: 0px;">'; $toprightmenu .= $user->getNomUrl($mode, '', true, 0, 11, 0, $user->firstname ? 'firstname' : -1, 'atoplogin'); $toprightmenu .= '</div></div>'; $toprightmenu .= '</div>'; $toprightmenu .= '<div class="login_block_other">'; // Execute hook printTopRightMenu (hooks should output string like '<div class="login"><a href="">mylink</a></div>') $parameters = array(); $result = $hookmanager->executeHooks('printTopRightMenu', $parameters); // Note that $action and $object may have been modified by some hooks if (is_numeric($result)) { if (empty($result)) { $toprightmenu .= $hookmanager->resPrint; } else { $toprightmenu = $hookmanager->resPrint; } // replace } else { $toprightmenu .= $result; } // For backward compatibility // Link to print main content area if (empty($conf->global->MAIN_PRINT_DISABLELINK) && empty($conf->browser->phone)) { $qs = $_SERVER["QUERY_STRING"]; $qs .= ($qs && $morequerystring ? '&' : '') . $morequerystring; $text = '<a href="' . $_SERVER["PHP_SELF"] . '?' . $qs . ($qs ? '&' : '') . 'optioncss=print" target="_blank">'; $text .= img_picto(":" . $langs->trans("PrintContentArea"), 'printer_top.png', 'class="printer"'); $text .= '</a>'; $toprightmenu .= Form::textwithtooltip('', $langs->trans("PrintContentArea"), 2, 1, $text, 'login_block_elem', 2); } // Link to Dolibarr wiki pages if (empty($conf->global->MAIN_HELP_DISABLELINK)) { $langs->load("help"); $helpbaseurl = ''; $helppage = ''; $mode = ''; if (empty($helppagename)) { $helppagename = 'EN:User_documentation|FR:Documentation_utilisateur|ES:Documentación_usuarios'; } // Get helpbaseurl, helppage and mode from helppagename and langs $arrayres = getHelpParamFor($helppagename, $langs); $helpbaseurl = $arrayres['helpbaseurl']; $helppage = $arrayres['helppage']; $mode = $arrayres['mode']; // Link to help pages if ($helpbaseurl && $helppage) { $text = ''; $title = ''; //$text.='<div id="blockvmenuhelpwiki" class="blockvmenuhelp">'; $title .= $langs->trans($mode == 'wiki' ? 'GoToWikiHelpPage' : 'GoToHelpPage'); if ($mode == 'wiki') { $title .= ' - ' . $langs->trans("PageWiki") . ' "' . dol_escape_htmltag(strtr($helppage, '_', ' ')) . '"'; } $text .= '<a class="help" target="_blank" href="'; if ($mode == 'wiki') { $text .= sprintf($helpbaseurl, urlencode(html_entity_decode($helppage))); } else { $text .= sprintf($helpbaseurl, $helppage); } $text .= '">'; $text .= img_picto('', 'helpdoc_top') . ' '; //$toprightmenu.=$langs->trans($mode == 'wiki' ? 'OnlineHelp': 'Help'); //if ($mode == 'wiki') $text.=' ('.dol_trunc(strtr($helppage,'_',' '),8).')'; $text .= '</a>'; //$toprightmenu.='</div>'."\n"; $toprightmenu .= Form::textwithtooltip('', $title, 2, 1, $text, 'login_block_elem', 2); } } // Logout link $toprightmenu .= Form::textwithtooltip('', $logouthtmltext, 2, 1, $logouttext, 'login_block_elem', 2); $toprightmenu .= '</div>'; print $toprightmenu; print "</div>\n"; print '</div></div>'; //unset($form); } if (empty($conf->dol_use_jmobile) && !empty($conf->use_javascript_ajax) && !empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) { print "</div><!-- End top layout -->\n"; } print '<div style="clear: both;"></div>'; print "<!-- End top horizontal menu -->\n\n"; if (empty($conf->dol_hide_leftmenu) && empty($conf->dol_use_jmobile) && empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) { print '<div id="id-container">'; } }
/** * Show left menu bar * * @param array $menu_array_before Table of menu entries to show before entries of menu handler * @param string $helppagename Name of wiki page for help ('' by default). * Syntax is: For a wiki page: EN:EnglishPage|FR:FrenchPage|ES:SpanishPage * For other external page: http://server/url * @param string $moresearchform Search Form Permanent Supplemental * @param array $menu_array_after Table of menu entries to show after entries of menu handler * @param int $leftmenuwithoutmainarea Must be set to 1. 0 by default for backward compatibility with old modules. * @param string $title Title of web page * @return void */ function left_menu($menu_array_before, $helppagename = '', $moresearchform = '', $menu_array_after = '', $leftmenuwithoutmainarea = 0, $title = '') { global $user, $conf, $langs, $db; global $hookmanager, $menumanager; $searchform = ''; $bookmarks = ''; if (empty($conf->dol_hide_leftmenu)) { // Instantiate hooks of thirdparty module $hookmanager->initHooks(array('searchform', 'leftblock')); if (empty($conf->dol_use_jmobile) && !empty($conf->use_javascript_ajax) && !empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) { print "\n" . '<!-- Begin left layout -->' . "\n" . '<div class="ui-layout-west">' . "\n"; } else { print "\n" . '<!-- Begin id-left -->' . "\n" . '<div class="side-nav"><div id="id-left">' . "\n"; } print "\n"; // Define $searchform if ((!empty($conf->societe->enabled) && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) || !empty($conf->fournisseur->enabled)) && !empty($conf->global->MAIN_SEARCHFORM_SOCIETE) && $user->rights->societe->lire) { $langs->load("companies"); $searchform .= printSearchForm(DOL_URL_ROOT . '/societe/list.php', DOL_URL_ROOT . '/societe/list.php', $langs->trans("ThirdParties"), 'soc', 'socname', 'T', 'searchleftt', img_object('', 'company')); } if (!empty($conf->societe->enabled) && !empty($conf->global->MAIN_SEARCHFORM_CONTACT) && $user->rights->societe->lire) { $langs->load("companies"); $searchform .= printSearchForm(DOL_URL_ROOT . '/contact/list.php', DOL_URL_ROOT . '/contact/list.php', $langs->trans("Contacts"), 'contact', 'contactname', '', 'searchleftc', img_object('', 'contact')); } if ((!empty($conf->product->enabled) && $user->rights->produit->lire || !empty($conf->service->enabled) && $user->rights->service->lire) && !empty($conf->global->MAIN_SEARCHFORM_PRODUITSERVICE)) { $langs->load("products"); $searchform .= printSearchForm(DOL_URL_ROOT . '/product/list.php', DOL_URL_ROOT . '/product/list.php', $langs->trans("Products") . "/" . $langs->trans("Services"), 'products', 'sall', 'P', 'searchleftp', img_object('', 'product')); } if ((!empty($conf->product->enabled) && $user->rights->produit->lire || !empty($conf->service->enabled) && $user->rights->service->lire) && !empty($conf->fournisseur->enabled) && !empty($conf->global->MAIN_SEARCHFORM_PRODUITSERVICE_SUPPLIER)) { $langs->load("products"); $searchform .= printSearchForm(DOL_URL_ROOT . '/fourn/product/list.php', DOL_URL_ROOT . '/fourn/product/list.php', $langs->trans("SupplierRef"), 'products', 'srefsupplier', '', 'searchlefts', img_object('', 'product')); } if (!empty($conf->adherent->enabled) && !empty($conf->global->MAIN_SEARCHFORM_ADHERENT) && $user->rights->adherent->lire) { $langs->load("members"); $searchform .= printSearchForm(DOL_URL_ROOT . '/adherents/list.php', DOL_URL_ROOT . '/adherents/list.php', $langs->trans("Members"), 'member', 'sall', 'M', 'searchleftm', img_object('', 'user')); } if (!empty($conf->projet->enabled) && !empty($conf->global->MAIN_SEARCHFORM_PROJECT) && $user->rights->projet->lire) { $langs->load("members"); $searchform .= printSearchForm(DOL_URL_ROOT . '/projet/list.php', DOL_URL_ROOT . '/projet/list.php', $langs->trans("Projects"), 'project', 'search_all', 'M', 'searchleftproj', img_object('', 'projectpub')); } // Execute hook printSearchForm $parameters = array(); $reshook = $hookmanager->executeHooks('printSearchForm', $parameters); // Note that $action and $object may have been modified by some hooks if (empty($reshook)) { $searchform .= $hookmanager->resPrint; } else { $searchform = $hookmanager->resPrint; } // Define $bookmarks if (!empty($conf->bookmark->enabled) && $user->rights->bookmark->lire) { include_once DOL_DOCUMENT_ROOT . '/bookmarks/bookmarks.lib.php'; $langs->load("bookmarks"); $bookmarks = printBookmarksList($db, $langs); } // Left column print '<!-- Begin left menu -->' . "\n"; print '<div class="vmenu">' . "\n\n"; $menumanager->menu_array = $menu_array_before; $menumanager->menu_array_after = $menu_array_after; $menumanager->showmenu('left'); // output menu_array and menu found in database // Show other forms if ($searchform) { print "\n"; print "<!-- Begin SearchForm -->\n"; print '<div id="blockvmenusearch" class="blockvmenusearch">' . "\n"; print $searchform; print '</div>' . "\n"; print "<!-- End SearchForm -->\n"; } // More search form if ($moresearchform) { print $moresearchform; } // Bookmarks if ($bookmarks) { print "\n"; print "<!-- Begin Bookmarks -->\n"; print '<div id="blockvmenubookmarks" class="blockvmenubookmarks">' . "\n"; print $bookmarks; print '</div>' . "\n"; print "<!-- End Bookmarks -->\n"; } print "\n"; print "<!-- Begin Help Block-->\n"; print '<div id="blockvmenuhelp" class="blockvmenuhelp">' . "\n"; //Dolibarr version $doliurl = 'http://www.dolibarr.org'; //local communities if (preg_match('/fr/i', $langs->defaultlang)) { $doliurl = 'http://www.dolibarr.fr'; } if (preg_match('/es/i', $langs->defaultlang)) { $doliurl = 'http://www.dolibarr.es'; } if (preg_match('/de/i', $langs->defaultlang)) { $doliurl = 'http://www.dolibarr.de'; } if (preg_match('/it/i', $langs->defaultlang)) { $doliurl = 'http://www.dolibarr.it'; } if (preg_match('/gr/i', $langs->defaultlang)) { $doliurl = 'http://www.dolibarr.gr'; } $appli = 'Dolibarr'; if (!empty($conf->global->MAIN_APPLICATION_TITLE)) { $appli = $conf->global->MAIN_APPLICATION_TITLE; $doliurl = ''; if (preg_match('/\\d\\.\\d/', $appli)) { if (!preg_match('/' . preg_quote(DOL_VERSION) . '/', $appli)) { $appli .= " (" . DOL_VERSION . ")"; } // If new title contains a version that is different than core } else { $appli .= " " . DOL_VERSION; } } else { $appli .= " " . DOL_VERSION; } print '<div id="blockvmenuhelpapp" class="blockvmenuhelp">'; if ($doliurl) { print '<a class="help" target="_blank" href="' . $doliurl . '">'; } print $appli; if ($doliurl) { print '</a>'; } print '</div>' . "\n"; // Link to Dolibarr wiki pages if ($helppagename && empty($conf->global->MAIN_HELP_DISABLELINK)) { $langs->load("help"); $helpbaseurl = ''; $helppage = ''; $mode = ''; // Get helpbaseurl, helppage and mode from helppagename and langs $arrayres = getHelpParamFor($helppagename, $langs); $helpbaseurl = $arrayres['helpbaseurl']; $helppage = $arrayres['helppage']; $mode = $arrayres['mode']; // Link to help pages if ($helpbaseurl && $helppage) { print '<div id="blockvmenuhelpwiki" class="blockvmenuhelp">'; print '<a class="help" target="_blank" title="' . $langs->trans($mode == 'wiki' ? 'GoToWikiHelpPage' : 'GoToHelpPage'); if ($mode == 'wiki') { print ' - ' . $langs->trans("PageWiki") . ' "' . dol_escape_htmltag(strtr($helppage, '_', ' ')) . '"'; } print '" href="'; if ($mode == 'wiki') { print sprintf($helpbaseurl, urlencode(html_entity_decode($helppage))); } else { print sprintf($helpbaseurl, $helppage); } print '">'; print img_picto('', 'helpdoc') . ' '; print $langs->trans($mode == 'wiki' ? 'OnlineHelp' : 'Help'); //if ($mode == 'wiki') print ' ('.dol_trunc(strtr($helppage,'_',' '),8).')'; print '</a>'; print '</div>' . "\n"; } } // Link to bugtrack if (!empty($conf->global->MAIN_BUGTRACK_ENABLELINK)) { require_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php'; $bugbaseurl = 'https://github.com/Dolibarr/dolibarr/issues/new'; $bugbaseurl .= '?title='; $bugbaseurl .= urlencode("Bug: "); $bugbaseurl .= '&body='; $bugbaseurl .= urlencode("# Environment\n"); $bugbaseurl .= urlencode("- **Version**: " . DOL_VERSION . "\n"); $bugbaseurl .= urlencode("- **OS**: " . php_uname('s') . "\n"); $bugbaseurl .= urlencode("- **Web server**: " . $_SERVER["SERVER_SOFTWARE"] . "\n"); $bugbaseurl .= urlencode("- **PHP**: " . php_sapi_name() . ' ' . phpversion() . "\n"); $bugbaseurl .= urlencode("- **Database**: " . $db::LABEL . ' ' . $db->getVersion() . "\n"); $bugbaseurl .= urlencode("- **URL**: " . $_SERVER["REQUEST_URI"] . "\n"); $bugbaseurl .= urlencode("\n"); $bugbaseurl .= urlencode("# Report\n"); print '<p id="blockvmenuhelpbugreport" class="blockvmenuhelp">'; print '<a class="help" target="_blank" href="' . $bugbaseurl . '">' . $langs->trans("FindBug") . '</a>'; print '</p>'; } print "</div>\n"; print "<!-- End Help Block-->\n"; print "\n"; print "</div>\n"; print "<!-- End left menu -->\n"; print "\n"; // Execute hook printLeftBlock $parameters = array(); $reshook = $hookmanager->executeHooks('printLeftBlock', $parameters); // Note that $action and $object may have been modified by some hooks print $hookmanager->resPrint; if (empty($conf->dol_use_jmobile) && !empty($conf->use_javascript_ajax) && !empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) { print '</div> <!-- End left layout -->' . "\n"; } else { print '</div></div> <!-- end id-left -->'; } // End div id="id-left" } print "\n"; print '<!-- Begin right area -->' . "\n"; if (empty($leftmenuwithoutmainarea)) { main_area($title); } }
/** * Show left menu bar * @param menu_array_before Table of menu entries to show before entries of menu handler * @param helppagename Name of wiki page for help ('' by default). * Syntax is: For a wiki page: EN:EnglishPage|FR:FrenchPage|ES:SpanishPage * For other external page: http://server/url * @param moresearchform Search Form Permanent Supplemental * @param menu_array_after Table of menu entries to show after entries of menu handler * @param leftmenuwithoutmainarea Must be set to 1. 0 by default for backward compatibility with old modules. * @param title Title of web page */ function left_menu($menu_array_before, $helppagename = '', $moresearchform = '', $menu_array_after = '', $leftmenuwithoutmainarea = 0, $title = '') { global $user, $conf, $langs, $db; $searchform = ''; $bookmarks = ''; if ($conf->use_javascript_ajax && $conf->global->MAIN_MENU_USE_JQUERY_LAYOUT) { print "\n" . '<div class="ui-layout-west"> <!-- Begin left layout -->' . "\n"; } else { print '<td class="vmenu" valign="top">'; } print "\n"; // Instantiate hooks of thirdparty module if (is_array($conf->hooks_modules) && !empty($conf->hooks_modules)) { require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php'; $object = new CommonObject($db); $object->callHooks(array('searchform', 'leftblock')); } // Define $searchform if ($conf->societe->enabled && $conf->global->MAIN_SEARCHFORM_SOCIETE && $user->rights->societe->lire) { $langs->load("companies"); $searchform .= printSearchForm(DOL_URL_ROOT . '/societe/societe.php', DOL_URL_ROOT . '/societe/societe.php', img_object('', 'company') . ' ' . $langs->trans("ThirdParties"), 'soc', 'socname'); } if ($conf->societe->enabled && $conf->global->MAIN_SEARCHFORM_CONTACT && $user->rights->societe->lire) { $langs->load("companies"); $searchform .= printSearchForm(DOL_URL_ROOT . '/contact/index.php', DOL_URL_ROOT . '/contact/index.php', img_object('', 'contact') . ' ' . $langs->trans("Contacts"), 'contact', 'contactname'); } if (($conf->product->enabled && $user->rights->produit->lire || $conf->service->enabled && $user->rights->service->lire) && $conf->global->MAIN_SEARCHFORM_PRODUITSERVICE) { $langs->load("products"); $searchform .= printSearchForm(DOL_URL_ROOT . '/product/liste.php', DOL_URL_ROOT . '/product/liste.php', img_object('', 'product') . ' ' . $langs->trans("Products") . "/" . $langs->trans("Services"), 'products', 'sall'); } if ($conf->adherent->enabled && $conf->global->MAIN_SEARCHFORM_ADHERENT && $user->rights->adherent->lire) { $langs->load("members"); $searchform .= printSearchForm(DOL_URL_ROOT . '/adherents/liste.php', DOL_URL_ROOT . '/adherents/liste.php', img_object('', 'user') . ' ' . $langs->trans("Members"), 'member', 'sall'); } // Search form hook for external modules if (!empty($object->hooks)) { $searchform .= '<!-- Begin search form hook area -->' . "\n"; foreach ($object->hooks as $hook) { if ($hook['type'] == 'searchform' && !empty($hook['modules'])) { foreach ($hook['modules'] as $module) { if (method_exists($module, 'printSearchForm')) { $searchform .= $module->printSearchForm(); } } } } $searchform .= "\n" . '<!-- End of search form hook area -->' . "\n"; } // Define $bookmarks if ($conf->bookmark->enabled && $user->rights->bookmark->lire) { include_once DOL_DOCUMENT_ROOT . '/bookmarks/bookmarks.lib.php'; $langs->load("bookmarks"); $bookmarks = printBookmarksList($db, $langs); } $left_menu = isset($conf->browser->phone) ? $conf->smart_menu : $conf->top_menu; if (GETPOST('menu')) { $left_menu = GETPOST('menu'); } // menu=eldy_backoffice.php // Load the left menu manager $result = dol_include_once("/includes/menus/standard/" . $left_menu); if (!$result) { $left_menu = 'eldy_backoffice.php'; include_once DOL_DOCUMENT_ROOT . "/includes/menus/standard/" . $left_menu; } // Left column print '<!-- Begin left area - menu ' . $left_menu . ' -->' . "\n"; print '<div class="vmenu">' . "\n"; $menuleft = new MenuLeft($db, $menu_array_before, $menu_array_after); $menuleft->showmenu(); // output menu_array and menu found in database // Show other forms if ($searchform) { print "\n"; print "<!-- Begin SearchForm -->\n"; print '<div id="blockvmenusearch" class="blockvmenusearch">' . "\n"; print $searchform; print '</div>' . "\n"; print "<!-- End SearchForm -->\n"; } // More search form if ($moresearchform) { print $moresearchform; } // Bookmarks if ($bookmarks) { print "\n"; print "<!-- Begin Bookmarks -->\n"; print '<div id="blockvmenubookmarks" class="blockvmenubookmarks">' . "\n"; print $bookmarks; print '</div>' . "\n"; print "<!-- End Bookmarks -->\n"; } // Link to Dolibarr wiki pages if ($helppagename && empty($conf->global->MAIN_HELP_DISABLELINK)) { $langs->load("help"); $helpbaseurl = ''; $helppage = ''; $mode = ''; // Get helpbaseurl, helppage and mode from helppagename and langs $arrayres = getHelpParamFor($helppagename, $langs); $helpbaseurl = $arrayres['helpbaseurl']; $helppage = $arrayres['helppage']; $mode = $arrayres['mode']; // Link to help pages if ($helpbaseurl && $helppage) { print '<div id="blockvmenuhelp" class="blockvmenuhelp">'; print '<a class="help" target="_blank" title="' . $langs->trans($mode == 'wiki' ? 'GoToWikiHelpPage' : 'GoToHelpPage'); if ($mode == 'wiki') { print ' - ' . $langs->trans("PageWiki") . ' "' . dol_escape_htmltag(strtr($helppage, '_', ' ')) . '"'; } print '" href="'; print sprintf($helpbaseurl, urlencode(html_entity_decode($helppage))); print '">'; print img_picto('', DOL_URL_ROOT . '/theme/common/helpdoc.png', '', 1) . ' '; print $langs->trans($mode == 'wiki' ? 'OnlineHelp' : 'Help'); //if ($mode == 'wiki') print ' ('.dol_trunc(strtr($helppage,'_',' '),8).')'; print '</a>'; print '</div>'; } } // Link to bugtrack if (!empty($conf->global->MAIN_SHOW_BUGTRACK_LINK)) { $bugbaseurl = 'http://savannah.nongnu.org/bugs/?'; $bugbaseurl .= 'func=additem&group=dolibarr&privacy=1&'; $bugbaseurl .= "&details="; $bugbaseurl .= urlencode("\n\n\n\n\n-------------\n"); $bugbaseurl .= urlencode($langs->trans("Version") . ": " . DOL_VERSION . "\n"); $bugbaseurl .= urlencode($langs->trans("Server") . ": " . $_SERVER["SERVER_SOFTWARE"] . "\n"); $bugbaseurl .= urlencode($langs->trans("Url") . ": " . $_SERVER["REQUEST_URI"] . "\n"); print '<div class="help"><a class="help" target="_blank" href="' . $bugbaseurl . '">' . $langs->trans("FindBug") . '</a></div>'; } print "\n"; print "</div>\n"; print "<!-- End left vertical menu -->\n"; print "\n"; // Left block hook for external modules if (!empty($object->hooks)) { print '<!-- Begin left block hook area -->' . "\n"; foreach ($object->hooks as $hook) { if ($hook['type'] == 'leftblock' && !empty($hook['modules'])) { foreach ($hook['modules'] as $module) { if (method_exists($module, 'printLeftBlock')) { $module->printLeftBlock(); } } } } print "\n" . '<!-- End of left block hook area -->' . "\n"; } if ($conf->use_javascript_ajax && $conf->global->MAIN_MENU_USE_JQUERY_LAYOUT) { print '</div> <!-- End left layout -->' . "\n"; } else { print '</td>'; } print "\n"; print '<!-- End of left area -->' . "\n"; print "\n"; print '<!-- Begin right area -->' . "\n"; if (empty($leftmenuwithoutmainarea)) { main_area($title); } }