From d3adbdfbbc2507f02d4866744d94919f9bc50004 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 6 Apr 2018 14:04:52 +0200 Subject: [PATCH] FIX Restaure way to have empty entry menu --- htdocs/core/menus/standard/auguria.lib.php | 47 ++++++++++++++++------ htdocs/core/menus/standard/eldy.lib.php | 19 +++++---- htdocs/theme/eldy/style.css.php | 2 +- htdocs/theme/md/style.css.php | 2 +- 4 files changed, 48 insertions(+), 22 deletions(-) diff --git a/htdocs/core/menus/standard/auguria.lib.php b/htdocs/core/menus/standard/auguria.lib.php index 69f98710b93..687505ab00d 100644 --- a/htdocs/core/menus/standard/auguria.lib.php +++ b/htdocs/core/menus/standard/auguria.lib.php @@ -464,6 +464,7 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM if (! is_array($menu_array)) return 0; // Show menu + $invert=empty($conf->global->MAIN_MENU_INVERT)?"":"invert"; if (empty($noout)) { $altok=0; $blockvmenuopened=false; $lastlevel0=''; @@ -485,11 +486,11 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM } if ($altok % 2 == 0) { - print '
'."\n"; + print '
'."\n"; } else { - print '
'."\n"; + print '
'."\n"; } } @@ -509,24 +510,43 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM $substitarray['__USERID__'] = $user->id; // For backward compatibility $menu_array[$i]['url'] = make_substitutions($menu_array[$i]['url'], $substitarray); - // Add mainmenu in GET url. This make to go back on correct menu even when using Back on browser. - $url=dol_buildpath($menu_array[$i]['url'],1); - - if (! preg_match('/mainmenu=/i',$menu_array[$i]['url'])) + $url = $shorturl = $shorturlwithoutparam = $menu_array[$i]['url']; + if (! preg_match("/^(http:\/\/|https:\/\/)/i",$menu_array[$i]['url'])) { - if (! preg_match('/\?/',$url)) $url.='?'; - else $url.='&'; - $url.='mainmenu='.$mainmenu; + $tmp=explode('?',$menu_array[$i]['url'],2); + $url = $shorturl = $tmp[0]; + $param = (isset($tmp[1])?$tmp[1]:''); // params in url of the menu link + + // Complete param to force leftmenu to '' to close open menu when we click on a link with no leftmenu defined. + if ((! preg_match('/mainmenu/i',$param)) && (! preg_match('/leftmenu/i',$param)) && ! empty($menu_array[$i]['mainmenu'])) + { + $param.=($param?'&':'').'mainmenu='.$menu_array[$i]['mainmenu'].'&leftmenu='; + } + if ((! preg_match('/mainmenu/i',$param)) && (! preg_match('/leftmenu/i',$param)) && empty($menu_array[$i]['mainmenu'])) + { + $param.=($param?'&':'').'leftmenu='; + } + //$url.="idmenu=".$menu_array[$i]['rowid']; // Already done by menuLoad + $url = dol_buildpath($url,1).($param?'?'.$param:''); + $shorturlwithoutparam = $shorturl; + $shorturl = $shorturl.($param?'?'.$param:''); } - print ''."\n"; + + print ''."\n"; // Menu level 0 if ($menu_array[$i]['level'] == 0) { if ($menu_array[$i]['enabled']) // Enabled so visible { - print ''; + print ''."\n"; $lastlevel0='enabled'; } else if ($showmenu) // Not enabled but visible (so greyed) @@ -543,6 +563,7 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM print ''."\n"; } } + // Menu level > 0 if ($menu_array[$i]['level'] > 0) { @@ -552,10 +573,10 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM if ($menu_array[$i]['enabled'] && $lastlevel0 == 'enabled') // Enabled so visible, except if parent was not enabled. { print '