diff --git a/html/do.php b/html/do.php index 51671d18b..ad1eb3b5a 100644 --- a/html/do.php +++ b/html/do.php @@ -187,7 +187,17 @@ if (isset($_REQUEST['ac'])) array($AC,$user_profile)); try { if ( count($amenu_id) != 1 ) { - throw new Exception(_('Erreur menu'),10); + // if AC is a simple code and this menu can be accessed + // we should find the first menu which used it and change the + // request AC to it + $pm_id=$cn->get_array('select pm_id from profile_menu ' + . ' where lower(me_code)=lower($1) and p_id=$2', + array($AC,$user_profile)); + if ( count($pm_id) > 0 ) { + show_menu($pm_id[0]['pm_id']); + } else { + throw new Exception(_('Erreur menu'),10); + } } $module_id=$cn->get_value('select case when pm_id_v3 = 0 then (case when pm_id_v2 = 0 then pm_id_v1 else pm_id_v2 end) else pm_id_v3 end @@ -222,7 +232,7 @@ else $_REQUEST['ac']=$default; show_module($menu_id); $all[0] = $default; - show_menu($menu_id, 0); + show_menu($menu_id); }