diff --git a/htdocs/admin/menus/edit.php b/htdocs/admin/menus/edit.php
index 9209542a9c0..b299a1f18fe 100644
--- a/htdocs/admin/menus/edit.php
+++ b/htdocs/admin/menus/edit.php
@@ -62,6 +62,23 @@ if ($action == 'update')
{
if (! $_POST['cancel'])
{
+ $leftmenu=''; $mainmenu='';
+ if (! empty($_POST['menuIdParent']) && ! is_numeric($_POST['menuIdParent']))
+ {
+ $tmp=explode('&',$_POST['menuIdParent']);
+ foreach($tmp as $s)
+ {
+ if (preg_match('/fk_mainmenu=/',$s))
+ {
+ $mainmenu=preg_replace('/fk_mainmenu=/','',$s);
+ }
+ if (preg_match('/fk_leftmenu=/',$s))
+ {
+ $leftmenu=preg_replace('/fk_leftmenu=/','',$s);
+ }
+ }
+ }
+
$menu = new Menubase($db);
$result=$menu->fetch($_POST['menuId']);
if ($result > 0)
@@ -75,7 +92,18 @@ if ($action == 'update')
$menu->perms=$_POST['perms'];
$menu->target=$_POST['target'];
$menu->user=$_POST['user'];
- $menu->fk_menu=$_POST['fk_menu'];
+ if (is_numeric($_POST['menuIdParent']))
+ {
+ $menu->fk_menu=$_POST['menuIdParent'];
+ }
+ else
+ {
+ if ($_POST['type'] == 'top') $menu->fk_menu=0;
+ else $menu->fk_menu=-1;
+ $menu->fk_mainmenu=$mainmenu;
+ $menu->fk_leftmenu=$leftmenu;
+ }
+
$result=$menu->update($user);
if ($result > 0)
{
@@ -342,7 +370,7 @@ if ($action == 'create')
}
else
{
- print '
| ';
+ print ' | ';
}
print ''.$langs->trans('DetailMenuIdParent');
print ', '.$langs->trans("Example").': fk_mainmenu=abc&fk_leftmenu=def';
@@ -425,12 +453,15 @@ elseif ($action == 'edit')
print ' | | '.$langs->trans('Type').' | '.$langs->trans(ucfirst($menu->type)).' | '.$langs->trans('DetailType').' |
';
// MenuId Parent
- print '| '.$langs->trans('MenuIdParent').' | ';
+ print '
| '.$langs->trans('MenuIdParent');
+ print ' | ';
$valtouse=$menu->fk_menu;
if ($menu->fk_mainmenu) $valtouse='fk_mainmenu='.$menu->fk_mainmenu;
if ($menu->fk_leftmenu) $valtouse.='&fk_leftmenu='.$menu->fk_leftmenu;
- print ' | ';
- print ''.$langs->trans('DetailMenuIdParent').' |
';
+ print ' | ';
+ print ''.$langs->trans('DetailMenuIdParent');
+ print ', '.$langs->trans("Example").': fk_mainmenu=abc&fk_leftmenu=def';
+ print ' | ';
// Niveau
//print '| '.$langs->trans('Level').' | '.$menu->level.' | '.$langs->trans('DetailLevel').' |
';
diff --git a/htdocs/core/menus/standard/auguria.lib.php b/htdocs/core/menus/standard/auguria.lib.php
index 05b3bbf054d..2df0bf6fdef 100644
--- a/htdocs/core/menus/standard/auguria.lib.php
+++ b/htdocs/core/menus/standard/auguria.lib.php
@@ -78,7 +78,7 @@ function print_auguria_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0,$m
if (! preg_match("/^(http:\/\/|https:\/\/)/i",$newTabMenu[$i]['url']))
{
- $tmp=explode('?',$newTabMenu[$i]['url'],2);
+ $tmp=explode('?',$newTabMenu[$i]['url'],2);
$url = $shorturl = $tmp[0];
$param = (isset($tmp[1])?$tmp[1]:'');
diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php
index e812d9919fd..9c9880c8ed1 100644
--- a/htdocs/core/menus/standard/eldy.lib.php
+++ b/htdocs/core/menus/standard/eldy.lib.php
@@ -1453,15 +1453,25 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
}
}
- // For external modules
- $tmp=explode('?',$menu_array[$i]['url'],2);
- $url = $tmp[0];
- $param = (isset($tmp[1])?$tmp[1]:'');
- $url = dol_buildpath($url,1).($param?'?'.$param:'');
-
+ $url = $shorturl = $menu_array[$i]['url'];
+
+ if (! preg_match("/^(http:\/\/|https:\/\/)/i",$menu_array[$i]['url']))
+ {
+ $tmp=explode('?',$menu_array[$i]['url'],2);
+ $url = $shorturl = $tmp[0];
+ $param = (isset($tmp[1])?$tmp[1]:'');
+
+ if (! preg_match('/mainmenu/i',$param) || ! preg_match('/leftmenu/i',$param)) $param.=($param?'&':'').'mainmenu='.$newTabMenu[$i]['mainmenu'].'&leftmenu=';
+ //$url.="idmenu=".$menu_array[$i]['rowid']; // Already done by menuLoad
+ $url = dol_buildpath($url,1).($param?'?'.$param:'');
+ $shorturl = $shorturl.($param?'?'.$param:'');
+ }
+
$url=preg_replace('/__LOGIN__/',$user->login,$url);
+ $shorturl=preg_replace('/__LOGIN__/',$user->login,$shorturl);
$url=preg_replace('/__USERID__/',$user->id,$url);
-
+ $shorturl=preg_replace('/__USERID__/',$user->id,$shorturl);
+
print ''."\n";
// Menu niveau 0