Skip to content

Commit

Permalink
FIX Link in menu when using left menu editor was wrong.
Browse files Browse the repository at this point in the history
FIX Updating an entry with menu editor did not save fk_leftmenu.
  • Loading branch information
eldy committed Jun 29, 2016
1 parent ab444af commit 5f5328c
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 13 deletions.
41 changes: 36 additions & 5 deletions htdocs/admin/menus/edit.php
Expand Up @@ -62,6 +62,23 @@
{
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)
Expand All @@ -75,7 +92,18 @@
$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)
{
Expand Down Expand Up @@ -342,7 +370,7 @@ function init_topleft()
}
else
{
print '<td><input type="text" size="20" id="menuId" name="menuId" value="'.($_POST["menuId"]?$_POST["menuId"]:'').'"></td>';
print '<td><input type="text" size="40" id="menuId" name="menuId" value="'.($_POST["menuId"]?$_POST["menuId"]:'').'"></td>';
}
print '<td>'.$langs->trans('DetailMenuIdParent');
print ', '.$langs->trans("Example").': fk_mainmenu=abc&fk_leftmenu=def';
Expand Down Expand Up @@ -425,12 +453,15 @@ function init_topleft()
print '<tr><td class="fieldrequired">'.$langs->trans('Type').'</td><td>'.$langs->trans(ucfirst($menu->type)).'</td><td>'.$langs->trans('DetailType').'</td></tr>';

// MenuId Parent
print '<tr><td class="fieldrequired">'.$langs->trans('MenuIdParent').'</td>';
print '<tr><td class="fieldrequired">'.$langs->trans('MenuIdParent');
print '</td>';
$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 '<td><input type="text" name="fk_menu" value="'.$valtouse.'" size="10"></td>';
print '<td>'.$langs->trans('DetailMenuIdParent').'</td></tr>';
print '<td><input type="text" name="menuIdParent" value="'.$valtouse.'" size="40"></td>';
print '<td>'.$langs->trans('DetailMenuIdParent');
print ', '.$langs->trans("Example").': fk_mainmenu=abc&fk_leftmenu=def';
print '</td></tr>';

// Niveau
//print '<tr><td>'.$langs->trans('Level').'</td><td>'.$menu->level.'</td><td>'.$langs->trans('DetailLevel').'</td></tr>';
Expand Down
2 changes: 1 addition & 1 deletion htdocs/core/menus/standard/auguria.lib.php
Expand Up @@ -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]:'');

Expand Down
24 changes: 17 additions & 7 deletions htdocs/core/menus/standard/eldy.lib.php
Expand Up @@ -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'].'&amp;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 '<!-- 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 niveau 0
Expand Down

0 comments on commit 5f5328c

Please sign in to comment.