FIX Restaure way to have empty entry menu

This commit is contained in:
Laurent Destailleur 2018-04-06 14:04:52 +02:00
parent 956fc2376d
commit d3adbdfbbc
4 changed files with 48 additions and 22 deletions

View File

@ -464,6 +464,7 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM
if (! is_array($menu_array)) return 0; if (! is_array($menu_array)) return 0;
// Show menu // Show menu
$invert=empty($conf->global->MAIN_MENU_INVERT)?"":"invert";
if (empty($noout)) if (empty($noout))
{ {
$altok=0; $blockvmenuopened=false; $lastlevel0=''; $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) if ($altok % 2 == 0)
{ {
print '<div class="blockvmenuimpair'.($lastopened?' blockvmenulast':'').($altok == 1 ? ' blockvmenufirst':'').'">'."\n"; print '<div class="blockvmenu blockvmenuimpair'.$invert.($lastopened?' blockvmenulast':'').($altok == 1 ? ' blockvmenufirst':'').'">'."\n";
} }
else else
{ {
print '<div class="blockvmenupair'.($lastopened?' blockvmenulast':'').($altok == 1 ? ' blockvmenufirst':'').'">'."\n"; print '<div class="blockvmenu blockvmenupair'.$invert.($lastopened?' blockvmenulast':'').($altok == 1 ? ' blockvmenufirst':'').'">'."\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 $substitarray['__USERID__'] = $user->id; // For backward compatibility
$menu_array[$i]['url'] = make_substitutions($menu_array[$i]['url'], $substitarray); $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 = $shorturl = $shorturlwithoutparam = $menu_array[$i]['url'];
$url=dol_buildpath($menu_array[$i]['url'],1); if (! preg_match("/^(http:\/\/|https:\/\/)/i",$menu_array[$i]['url']))
if (! preg_match('/mainmenu=/i',$menu_array[$i]['url']))
{ {
if (! preg_match('/\?/',$url)) $url.='?'; $tmp=explode('?',$menu_array[$i]['url'],2);
else $url.='&'; $url = $shorturl = $tmp[0];
$url.='mainmenu='.$mainmenu; $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 '<!-- Process menu entry with mainmenu='.$menu_array[$i]['mainmenu'].', leftmenu='.$menu_array[$i]['leftmenu'].', level='.$menu_array[$i]['level'].' enabled='.$menu_array[$i]['enabled'].' -->'."\n";
print '<!-- Process menu entry with mainmenu='.$menu_array[$i]['mainmenu'].', leftmenu='.$menu_array[$i]['leftmenu'].', level='.$menu_array[$i]['level'].' enabled='.$menu_array[$i]['enabled'].', position='.$menu_array[$i]['position'].' -->'."\n";
// Menu level 0 // Menu level 0
if ($menu_array[$i]['level'] == 0) if ($menu_array[$i]['level'] == 0)
{ {
if ($menu_array[$i]['enabled']) // Enabled so visible if ($menu_array[$i]['enabled']) // Enabled so visible
{ {
print '<div class="menu_titre">'.$tabstring.'<a class="vmenu" href="'.$url.'"'.($menu_array[$i]['target']?' target="'.$menu_array[$i]['target'].'"':'').'>'.$menu_array[$i]['titre'].'</a></div>'; print '<div class="menu_titre">'.$tabstring;
if ($shorturlwithoutparam) print '<a class="vmenu" href="'.$url.'"'.($menu_array[$i]['target']?' target="'.$menu_array[$i]['target'].'"':'').'>';
else print '<span class="vmenu">';
print ($menu_array[$i]['prefix']?$menu_array[$i]['prefix']:'').$menu_array[$i]['titre'];
if ($shorturlwithoutparam) print '</a>';
else print '</span>';
print '</div>'."\n";
$lastlevel0='enabled'; $lastlevel0='enabled';
} }
else if ($showmenu) // Not enabled but visible (so greyed) 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 '<div class="menu_top"></div>'."\n"; print '<div class="menu_top"></div>'."\n";
} }
} }
// Menu level > 0 // Menu level > 0
if ($menu_array[$i]['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. if ($menu_array[$i]['enabled'] && $lastlevel0 == 'enabled') // Enabled so visible, except if parent was not enabled.
{ {
print '<div class="menu_contenu'.$cssmenu.'">'.$tabstring; print '<div class="menu_contenu'.$cssmenu.'">'.$tabstring;
if ($menu_array[$i]['url']) print '<a class="vsmenu" href="'.$url.'"'.($menu_array[$i]['target']?' target="'.$menu_array[$i]['target'].'"':'').'>'; if ($shorturlwithoutparam) print '<a class="vsmenu" href="'.$url.'"'.($menu_array[$i]['target']?' target="'.$menu_array[$i]['target'].'"':'').'>';
else print '<span class="vsmenu">'; else print '<span class="vsmenu">';
print $menu_array[$i]['titre']; print $menu_array[$i]['titre'];
if ($menu_array[$i]['url']) print '</a>'; if ($shorturlwithoutparam) print '</a>';
else print '</span>'; else print '</span>';
// If title is not pure text and contains a table, no carriage return added // If title is not pure text and contains a table, no carriage return added
if (! strstr($menu_array[$i]['titre'],'<table')) print '<br>'; if (! strstr($menu_array[$i]['titre'],'<table')) print '<br>';

View File

@ -1630,8 +1630,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
$substitarray['__USERID__'] = $user->id; // For backward compatibility $substitarray['__USERID__'] = $user->id; // For backward compatibility
$menu_array[$i]['url'] = make_substitutions($menu_array[$i]['url'], $substitarray); $menu_array[$i]['url'] = make_substitutions($menu_array[$i]['url'], $substitarray);
$url = $shorturl = $menu_array[$i]['url']; $url = $shorturl = $shorturlwithoutparam = $menu_array[$i]['url'];
if (! preg_match("/^(http:\/\/|https:\/\/)/i",$menu_array[$i]['url'])) if (! preg_match("/^(http:\/\/|https:\/\/)/i",$menu_array[$i]['url']))
{ {
$tmp=explode('?',$menu_array[$i]['url'],2); $tmp=explode('?',$menu_array[$i]['url'],2);
@ -1649,9 +1648,9 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
} }
//$url.="idmenu=".$menu_array[$i]['rowid']; // Already done by menuLoad //$url.="idmenu=".$menu_array[$i]['rowid']; // Already done by menuLoad
$url = dol_buildpath($url,1).($param?'?'.$param:''); $url = dol_buildpath($url,1).($param?'?'.$param:'');
$shorturlwithoutparam = $shorturl;
$shorturl = $shorturl.($param?'?'.$param:''); $shorturl = $shorturl.($param?'?'.$param:'');
} }
//var_dump($url);
print '<!-- Process menu entry with mainmenu='.$menu_array[$i]['mainmenu'].', leftmenu='.$menu_array[$i]['leftmenu'].', level='.$menu_array[$i]['level'].' enabled='.$menu_array[$i]['enabled'].', position='.$menu_array[$i]['position'].' -->'."\n"; print '<!-- Process menu entry with mainmenu='.$menu_array[$i]['mainmenu'].', leftmenu='.$menu_array[$i]['leftmenu'].', level='.$menu_array[$i]['level'].' enabled='.$menu_array[$i]['enabled'].', position='.$menu_array[$i]['position'].' -->'."\n";
@ -1661,7 +1660,13 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
{ {
if ($menu_array[$i]['enabled']) // Enabled so visible if ($menu_array[$i]['enabled']) // Enabled so visible
{ {
print '<div class="menu_titre">'.$tabstring.'<a class="vmenu" href="'.$url.'"'.($menu_array[$i]['target']?' target="'.$menu_array[$i]['target'].'"':'').'>'.($menu_array[$i]['prefix']?$menu_array[$i]['prefix']:'').$menu_array[$i]['titre'].'</a></div>'."\n"; print '<div class="menu_titre">'.$tabstring;
if ($shorturlwithoutparam) print '<a class="vmenu" href="'.$url.'"'.($menu_array[$i]['target']?' target="'.$menu_array[$i]['target'].'"':'').'>';
else print '<span class="vmenu">';
print ($menu_array[$i]['prefix']?$menu_array[$i]['prefix']:'').$menu_array[$i]['titre'];
if ($shorturlwithoutparam) print '</a>';
else print '</span>';
print '</div>'."\n";
$lastlevel0='enabled'; $lastlevel0='enabled';
} }
else if ($showmenu) // Not enabled but visible (so greyed) else if ($showmenu) // Not enabled but visible (so greyed)
@ -1688,10 +1693,10 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
if ($menu_array[$i]['enabled'] && $lastlevel0 == 'enabled') // Enabled so visible, except if parent was not enabled. if ($menu_array[$i]['enabled'] && $lastlevel0 == 'enabled') // Enabled so visible, except if parent was not enabled.
{ {
print '<div class="menu_contenu'.$cssmenu.'">'.$tabstring; print '<div class="menu_contenu'.$cssmenu.'">'.$tabstring;
if ($menu_array[$i]['url']) print '<a class="vsmenu" href="'.$url.'"'.($menu_array[$i]['target']?' target="'.$menu_array[$i]['target'].'"':'').'>'; if ($shorturlwithoutparam) print '<a class="vsmenu" href="'.$url.'"'.($menu_array[$i]['target']?' target="'.$menu_array[$i]['target'].'"':'').'>';
else print '<span class="vsmenu">'; else print '<span class="vsmenu">';
print $menu_array[$i]['titre']; print $menu_array[$i]['titre'];
if ($menu_array[$i]['url']) print '</a>'; if ($shorturlwithoutparam) print '</a>';
else print '</span>'; else print '</span>';
// If title is not pure text and contains a table, no carriage return added // If title is not pure text and contains a table, no carriage return added
if (! strstr($menu_array[$i]['titre'],'<table')) print '<br>'; if (! strstr($menu_array[$i]['titre'],'<table')) print '<br>';

View File

@ -2040,7 +2040,7 @@ input.vmenusearchselectcombo[type=text] {
.companylogo { } .companylogo { }
.searchform { padding-top: 10px; } .searchform { padding-top: 10px; }
a.vmenu:link, a.vmenu:visited, a.vmenu:hover, a.vmenu:active { white-space: nowrap; font-size:<?php print $fontsize ?>px; font-family: <?php print $fontlist ?>; text-align: <?php print $left; ?>; font-weight: bold; } a.vmenu:link, a.vmenu:visited, a.vmenu:hover, a.vmenu:active, span.vmenu { white-space: nowrap; font-size:<?php print $fontsize ?>px; font-family: <?php print $fontlist ?>; text-align: <?php print $left; ?>; font-weight: bold; }
font.vmenudisabled { font-size:<?php print $fontsize ?>px; font-family: <?php print $fontlist ?>; text-align: <?php print $left; ?>; font-weight: bold; color: #aaa; margin-left: 4px; } font.vmenudisabled { font-size:<?php print $fontsize ?>px; font-family: <?php print $fontlist ?>; text-align: <?php print $left; ?>; font-weight: bold; color: #aaa; margin-left: 4px; }
a.vmenu:link, a.vmenu:visited { color: #<?php echo $colortextbackvmenu; ?>; } a.vmenu:link, a.vmenu:visited { color: #<?php echo $colortextbackvmenu; ?>; }

View File

@ -2037,7 +2037,7 @@ div.vmenu, td.vmenu {
.companylogo { padding-top: 4px; } .companylogo { padding-top: 4px; }
.searchform { padding-top: 10px; } .searchform { padding-top: 10px; }
a.vmenu:link, a.vmenu:visited, a.vmenu:hover, a.vmenu:active { white-space: nowrap; font-size:<?php print $fontsize ?>px; font-family: <?php print $fontlist ?>; text-align: <?php print $left; ?>; font-weight: bold; } a.vmenu:link, a.vmenu:visited, a.vmenu:hover, a.vmenu:active, span.vmenu { white-space: nowrap; font-size:<?php print $fontsize ?>px; font-family: <?php print $fontlist ?>; text-align: <?php print $left; ?>; font-weight: bold; }
font.vmenudisabled { font-size:<?php print $fontsize ?>px; font-family: <?php print $fontlist ?>; text-align: <?php print $left; ?>; font-weight: bold; color: #aaa; margin-left: 4px; } font.vmenudisabled { font-size:<?php print $fontsize ?>px; font-family: <?php print $fontlist ?>; text-align: <?php print $left; ?>; font-weight: bold; color: #aaa; margin-left: 4px; }
a.vmenu:link, a.vmenu:visited { color: #<?php echo $colortextbackvmenu; ?>; } a.vmenu:link, a.vmenu:visited { color: #<?php echo $colortextbackvmenu; ?>; }