diff --git a/htdocs/admin/system/dolibarr.php b/htdocs/admin/system/dolibarr.php index a0bc8d818a7..024489c6bc8 100644 --- a/htdocs/admin/system/dolibarr.php +++ b/htdocs/admin/system/dolibarr.php @@ -89,7 +89,7 @@ print ''.$langs->trans("CurrentTheme").'< $var=!$var; print ''.$langs->trans("CurrentMenuHandler").''; if (preg_match('/^smartphone/',$conf->smart_menu) && ! empty($conf->browser->phone)) print $conf->smart_menu; -else print $conf->top_menu; +else print $conf->standard_menu; print ''."\n"; print ''; print '
'; diff --git a/htdocs/core/class/conf.class.php b/htdocs/core/class/conf.class.php index e4be7fa308a..4c117c8d526 100644 --- a/htdocs/core/class/conf.class.php +++ b/htdocs/core/class/conf.class.php @@ -48,7 +48,7 @@ class Conf public $theme; // Contains current theme ("eldy", "auguria", ...) public $css; // Contains full path of css page ("/theme/eldy/style.css.php", ...) //! Used to store current menu handlers - public $top_menu; + public $standard_menu; public $smart_menu; public $modules = array(); // List of activated modules diff --git a/htdocs/core/class/translate.class.php b/htdocs/core/class/translate.class.php index b5df9ceb337..d4258e3bae1 100644 --- a/htdocs/core/class/translate.class.php +++ b/htdocs/core/class/translate.class.php @@ -169,7 +169,7 @@ class Translate } if ($this->defaultlang == 'none_NONE') return 0; // Special language code to not translate keys - dol_syslog("Translate::Load Start domain=".$domain." alt=".$alt." forcelangdir=".$forcelangdir." this->defaultlang=".$this->defaultlang); + //dol_syslog("Translate::Load Start domain=".$domain." alt=".$alt." forcelangdir=".$forcelangdir." this->defaultlang=".$this->defaultlang); $newdomain = $domain; $modulename = ''; diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index d8a0a92084c..4e76905b9c4 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -2105,7 +2105,7 @@ function dol_print_error($db='',$error='') $out.="
\n"; $out.="".$langs->trans("RequestedUrl").": ".$_SERVER["REQUEST_URI"]."
\n";; $out.="".$langs->trans("Referer").": ".(isset($_SERVER["HTTP_REFERER"])?$_SERVER["HTTP_REFERER"]:'')."
\n";; - $out.="".$langs->trans("MenuManager").": ".$conf->top_menu."
\n"; + $out.="".$langs->trans("MenuManager").": ".$conf->standard_menu."
\n"; $out.="
\n"; $syslog.="url=".$_SERVER["REQUEST_URI"]; $syslog.=", query_string=".$_SERVER["QUERY_STRING"]; diff --git a/htdocs/core/menus/standard/auguria_backoffice.php b/htdocs/core/menus/standard/auguria_backoffice.php index f4a9eaa4b3f..3c05a0f6170 100644 --- a/htdocs/core/menus/standard/auguria_backoffice.php +++ b/htdocs/core/menus/standard/auguria_backoffice.php @@ -46,14 +46,10 @@ class MenuManager * Constructor * * @param DoliDB $db Database handler - * @param array &$menu_array Table of menu entries to show before entries of menu handler - * @param array &$menu_array_after Table of menu entries to show after entries of menu handler */ - function __construct($db, &$menu_array, &$menu_array_after) + function __construct($db) { $this->db=$db; - $this->menu_array=$menu_array; - $this->menu_array_after=$menu_array_after; } diff --git a/htdocs/core/menus/standard/auguria_frontoffice.php b/htdocs/core/menus/standard/auguria_frontoffice.php index 6f6c96a7b85..151abfbe9cc 100644 --- a/htdocs/core/menus/standard/auguria_frontoffice.php +++ b/htdocs/core/menus/standard/auguria_frontoffice.php @@ -38,7 +38,6 @@ class MenuManager var $type_user=1; // Put 0 for internal users, 1 for external users var $atarget=""; // Valeur du target a utiliser dans les liens - var $menu_array; var $menu_array_after; @@ -47,14 +46,10 @@ class MenuManager * Constructor * * @param DoliDB $db Database handler - * @param array &$menu_array Table of menu entries to show before entries of menu handler - * @param array &$menu_array_after Table of menu entries to show after entries of menu handler */ - function __construct($db, &$menu_array, &$menu_array_after) + function __construct($db) { $this->db=$db; - $this->menu_array=$menu_array; - $this->menu_array_after=$menu_array_after; } diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 196fce01289..13df2dd6dd0 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -1474,7 +1474,6 @@ function dol_eldy_showmenu($type_user, &$menuentry, &$listofmodulesforexternal) { //print 'type_user='.$type_user.' module='.$menuentry['module'].' enabled='.$menuentry['enabled'].' perms='.$menuentry['perms']; //print 'ok='.in_array($menuentry['module'], $listofmodulesforexternal); - if (empty($menuentry['enabled'])) return 0; // Entry disabled by condition if ($type_user && $menuentry['module']) { diff --git a/htdocs/core/menus/standard/eldy_backoffice.php b/htdocs/core/menus/standard/eldy_backoffice.php index 398cf381f32..ab00caccb3a 100644 --- a/htdocs/core/menus/standard/eldy_backoffice.php +++ b/htdocs/core/menus/standard/eldy_backoffice.php @@ -45,14 +45,10 @@ class MenuManager * Constructor * * @param DoliDB $db Database handler - * @param array &$menu_array Table of menu entries to show before entries of menu handler - * @param array &$menu_array_after Table of menu entries to show after entries of menu handler */ - function __construct($db, &$menu_array, &$menu_array_after) + function __construct($db) { $this->db=$db; - $this->menu_array=$menu_array; - $this->menu_array_after=$menu_array_after; } diff --git a/htdocs/core/menus/standard/eldy_frontoffice.php b/htdocs/core/menus/standard/eldy_frontoffice.php index 9d23affd041..5ec673afe68 100644 --- a/htdocs/core/menus/standard/eldy_frontoffice.php +++ b/htdocs/core/menus/standard/eldy_frontoffice.php @@ -45,14 +45,10 @@ class MenuManager * Constructor * * @param DoliDB $db Database handler - * @param array &$menu_array Table of menu entries to show before entries of menu handler - * @param array &$menu_array_after Table of menu entries to show after entries of menu handler */ - function __construct($db,&$menu_array,&$menu_array_after) + function __construct($db) { $this->db=$db; - $this->menu_array=$menu_array; - $this->menu_array_after=$menu_array_after; } @@ -60,7 +56,7 @@ class MenuManager * Show menu * * @param string $mode 'top' or 'left' - * @return int Number of menu entries shown + * @return int Number of menu entries shown */ function showmenu($mode) { diff --git a/htdocs/core/menus/standard/empty.php b/htdocs/core/menus/standard/empty.php index 48496aee1fc..da3eab44025 100644 --- a/htdocs/core/menus/standard/empty.php +++ b/htdocs/core/menus/standard/empty.php @@ -38,14 +38,10 @@ class MenuManager * Constructor * * @param DoliDB $db Database handler - * @param array &$menu_array Table of menu entries to show before entries of menu handler - * @param array &$menu_array_after Table of menu entries to show after entries of menu handler */ - function __construct($db, &$menu_array, &$menu_array_after) + function __construct($db) { $this->db=$db; - $this->menu_array=$menu_array; - $this->menu_array_after=$menu_array_after; } diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 65ac13bd2a6..8a5b638818c 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -773,6 +773,45 @@ if (! empty($conf->multicompany->enabled) && GETPOST('action') == 'switchentity' } } +//print 'eee'.$conf->standard_menu; + +// Init menu manager +if (empty($user->societe_id)) // If internal user or not defined +{ + $conf->standard_menu=(empty($conf->global->MAIN_MENU_STANDARD_FORCED)?$conf->global->MAIN_MENU_STANDARD:$conf->global->MAIN_MENU_STANDARD_FORCED); + $conf->smart_menu=(empty($conf->global->MAIN_MENU_SMARTPHONE_FORCED)?$conf->global->MAIN_MENU_SMARTPHONE:$conf->global->MAIN_MENU_SMARTPHONE_FORCED); +} +else // If external user +{ + $conf->standard_menu=(empty($conf->global->MAIN_MENUFRONT_STANDARD_FORCED)?$conf->global->MAIN_MENUFRONT_STANDARD:$conf->global->MAIN_MENUFRONT_STANDARD_FORCED); + $conf->smart_menu=(empty($conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED)?$conf->global->MAIN_MENUFRONT_SMARTPHONE:$conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED); +} +// For backward compatibility +if (empty($conf->standard_menu)) $conf->standard_menu ='eldy_backoffice.php'; +elseif ($conf->standard_menu == 'eldy.php') $conf->standard_menu='eldy_backoffice.php'; + +// Load the menu manager (only if not already done) +$file_menu=empty($conf->browser->phone)?$conf->standard_menu:$conf->smart_menu; +if (GETPOST('menu')) $file_menu=GETPOST('menu'); // menu=eldy_backoffice.php +if (! class_exists('MenuManager')) +{ + $menufound=0; + $dirmenus=array_merge(array("/core/menus/"),(array) $conf->modules_parts['menus']); + foreach($dirmenus as $dirmenu) + { + $menufound=dol_include_once($dirmenu."standard/".$file_menu); + if ($menufound) break; + } + if (! $menufound) // If failed to include, we try with standard + { + $file_menu='eldy_backoffice.php'; + include_once DOL_DOCUMENT_ROOT."/core/menus/standard/".$file_menu; + } +} +$menumanager = new MenuManager($db); + + + // Functions @@ -797,8 +836,11 @@ if (! function_exists("llxHeader")) function llxHeader($head = '', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='') { global $conf; + + // html header + top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); - top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); // Show html headers + // top menu and left menu area if (empty($conf->global->MAIN_HIDE_TOP_MENU)) { top_menu($head, $title, $target, $disablejs, $disablehead, $arrayofjs, $arrayofcss, $morequerystring); @@ -807,6 +849,8 @@ if (! function_exists("llxHeader")) { left_menu('', $help_url, '', '', 1, $title); } + + // main area main_area($title); } } @@ -1150,7 +1194,7 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a { global $user, $conf, $langs, $db; global $dolibarr_main_authentication; - global $hookmanager; + global $hookmanager,$menumanager; // Instantiate hooks of thirdparty module only if not already define if (! is_object($hookmanager)) @@ -1162,22 +1206,6 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a $toprightmenu=''; - // Define menu manager in setup - if (empty($user->societe_id)) // If internal user or not defined - { - $conf->top_menu=(empty($conf->global->MAIN_MENU_STANDARD_FORCED)?$conf->global->MAIN_MENU_STANDARD:$conf->global->MAIN_MENU_STANDARD_FORCED); - $conf->smart_menu=(empty($conf->global->MAIN_MENU_SMARTPHONE_FORCED)?$conf->global->MAIN_MENU_SMARTPHONE:$conf->global->MAIN_MENU_SMARTPHONE_FORCED); - } - else // If external user - { - $conf->top_menu=(empty($conf->global->MAIN_MENUFRONT_STANDARD_FORCED)?$conf->global->MAIN_MENUFRONT_STANDARD:$conf->global->MAIN_MENUFRONT_STANDARD_FORCED); - $conf->smart_menu=(empty($conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED)?$conf->global->MAIN_MENUFRONT_SMARTPHONE:$conf->global->MAIN_MENUFRONT_SMARTPHONE_FORCED); - } - // For backward compatibility - if ($conf->top_menu == 'eldy.php') $conf->top_menu='eldy_backoffice.php'; - elseif ($conf->top_menu == 'rodolphe.php') $conf->top_menu='eldy_backoffice.php'; - 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); @@ -1267,27 +1295,7 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a /* * Top menu */ - $top_menu=empty($conf->browser->phone)?$conf->top_menu:$conf->smart_menu; - if (GETPOST('menu')) $top_menu=GETPOST('menu'); // menu=eldy_backoffice.php - - // Load the top menu manager (only if not already done) - if (! class_exists('MenuManager')) - { - $menufound=0; - $dirmenus=array_merge(array("/core/menus/"),(array) $conf->modules_parts['menus']); - foreach($dirmenus as $dirmenu) - { - $menufound=dol_include_once($dirmenu."standard/".$top_menu); - if ($menufound) break; - } - if (! $menufound) // If failed to include, we try with standard - { - $top_menu='eldy_backoffice.php'; - include_once DOL_DOCUMENT_ROOT."/core/menus/standard/".$top_menu; - } - } - - print "\n".''."\n"; + print "\n".''."\n"; if (! empty($conf->use_javascript_ajax) && ! empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) print '
'."\n"; @@ -1296,10 +1304,8 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a print '
'."\n"; // Show menu - $dummy1=array();$dummy2=array(); - $menutop = new MenuManager($db,$dummy1,$dummy2); - $menutop->atarget=$target; - $menutop->showmenu('top'); // This contains a \n + $menumanager->atarget=$target; + $menumanager->showmenu('top'); // This contains a \n print "
\n"; @@ -1313,7 +1319,7 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a $company=' ('.$langs->trans("Company").': '.$thirdpartystatic->name.')'; } $logintext='
atarget?(' target="'.$menutop->atarget.'"'):''; + $logintext.=$target?(' target="'.$target.'"'):''; $logintext.='>'.$user->login.''; if ($user->societe_id) $logintext.=$companylink; $logintext.='
'; @@ -1349,7 +1355,7 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a && $_SESSION["dol_authmode"] != 'http') { $logouttext .='atarget?(' target="'.$menutop->atarget.'"'):''; + $logouttext .=$atarget?(' target="'.$atarget.'"'):''; $logouttext .='>'; $logouttext .= img_picto($langs->trans('Logout'), 'logout.png', 'class="login"'); $logouttext .=''; @@ -1415,7 +1421,7 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a function left_menu($menu_array_before, $helppagename='', $moresearchform='', $menu_array_after='', $leftmenuwithoutmainarea=0, $title='') { global $user, $conf, $langs, $db; - global $hookmanager; + global $hookmanager, $menumanager; $searchform=''; $bookmarks=''; @@ -1481,33 +1487,14 @@ function left_menu($menu_array_before, $helppagename='', $moresearchform='', $me $bookmarks=printBookmarksList($db, $langs); } - $left_menu=empty($conf->browser->phone)?$conf->top_menu:$conf->smart_menu; - if (GETPOST('menu')) $left_menu=GETPOST('menu'); // menu=eldy_backoffice.php - - // Load the menu manager (only if not already done) - if (! class_exists('MenuManager')) - { - $menufound=0; - $dirmenus=array_merge(array("/core/menus/"),(array) $conf->modules_parts['menus']); - foreach($dirmenus as $dirmenu) - { - $menufound=dol_include_once($dirmenu."standard/".$left_menu); - if ($menufound) break; - } - if (! $menufound) // If failed to include, we try with standard - { - $top_menu='eldy_backoffice.php'; - include_once DOL_DOCUMENT_ROOT."/core/menus/standard/".$top_menu; - } - } - // Left column - print ''."\n"; + print ''."\n"; print '
'."\n"; - $menuleft=new MenuManager($db,$menu_array_before,$menu_array_after); - $menuleft->showmenu('left'); // output menu_array and menu found in database + $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