diff --git a/htdocs/core/class/menubase.class.php b/htdocs/core/class/menubase.class.php
index 7ae947ee518..5ebccdeb1bd 100644
--- a/htdocs/core/class/menubase.class.php
+++ b/htdocs/core/class/menubase.class.php
@@ -512,6 +512,7 @@ class Menubase
if ($type_user == 0) $sql.= " AND m.usertype IN (0,2)";
if ($type_user == 1) $sql.= " AND m.usertype IN (1,2)";
$sql.= " ORDER BY m.position, m.rowid";
+ //print $sql;
//$tmp1=dol_microtime_float();
//print '>>> 1 0
';
@@ -533,17 +534,21 @@ class Menubase
$perms = true;
if ($menu['perms'])
{
- $perms = verifCond($menu['perms']);
- //print "verifCond rowid=".$menu['rowid']." ".$menu['perms'].":".$perms."
\n";
+ $tmpcond=$menu['perms'];
+ if ($leftmenu == 'all') $tmpcond=preg_replace('/\$leftmenu\s*==\s*["\'a-zA-Z]+/','1==1',$tmpcond); // Force part of condition to true
+ $perms = verifCond($tmpcond);
+ //print "verifCond rowid=".$menu['rowid']." ".$tmpcond.":".$perms."
\n";
}
// Define $enabled
$enabled = true;
if ($menu['enabled'])
{
- $enabled = verifCond($menu['enabled']);
+ $tmpcond=$menu['enabled'];
+ if ($leftmenu == 'all') $tmpcond=preg_replace('/\$leftmenu\s*==\s*["\'a-zA-Z]+/','1==1',$tmpcond); // Force part of condition to true
+ $enabled = verifCond($tmpcond);
if ($conf->use_javascript_ajax && ! empty($conf->global->MAIN_MENU_USE_JQUERY_ACCORDION) && preg_match('/^\$leftmenu/',$menu['enabled'])) $enabled=1;
- //print "verifCond rowid=".$menu['rowid']." ".$menu['enabled'].":".$enabled."
\n";
+ //print "verifCond rowid=".$menu['rowid']." ".$tmpcond.":".$enabled."
\n";
}
// Define $title
diff --git a/htdocs/core/getmenu_jmobile.php b/htdocs/core/getmenu_jmobile.php
index 4075bbc77b6..78c46c60fbb 100644
--- a/htdocs/core/getmenu_jmobile.php
+++ b/htdocs/core/getmenu_jmobile.php
@@ -88,7 +88,7 @@ if (! class_exists('MenuManager'))
}
}
$menumanager = new MenuManager($db, empty($user->societe_id)?0:1);
-$menumanager->loadMenu();
+$menumanager->loadMenu('all','all');
$menumanager->showmenu('jmobile');
diff --git a/htdocs/core/menus/standard/auguria_menu.php b/htdocs/core/menus/standard/auguria_menu.php
index e33d08403ac..343edaf5201 100644
--- a/htdocs/core/menus/standard/auguria_menu.php
+++ b/htdocs/core/menus/standard/auguria_menu.php
@@ -51,13 +51,15 @@ class MenuManager
$this->db=$db;
}
-
+
/**
* Load this->tabMenu
*
+ * @param string $forcemainmenu To force mainmenu to load
+ * @param string $forceleftmenu To force leftmenu to load
* @return void
*/
- function loadMenu()
+ function loadMenu($forcemainmenu='',$forceleftmenu='')
{
global $conf, $user, $langs;
@@ -78,6 +80,7 @@ class MenuManager
// On va le chercher en session si non defini par le lien
$mainmenu=isset($_SESSION["mainmenu"])?$_SESSION["mainmenu"]:'';
}
+ if (! empty($forcemainmenu)) $mainmenu=$forcemainmenu;
if (isset($_GET["leftmenu"]))
{
@@ -98,6 +101,7 @@ class MenuManager
// On va le chercher en session si non defini par le lien
$leftmenu=isset($_SESSION["leftmenu"])?$_SESSION["leftmenu"]:'';
}
+ if (! empty($forceleftmenu)) $leftmenu=$forceleftmenu;
require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php';
$tabMenu=array();
@@ -167,16 +171,16 @@ class MenuManager
}
$res='ErrorBadParameterForMode';
-
+
require_once DOL_DOCUMENT_ROOT.'/core/class/menu.class.php';
$this->menu=new Menu();
-
+
if ($mode == 'top') $res=print_auguria_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu);
if ($mode == 'left') $res=print_left_auguria_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$this->menu);
if ($mode == 'jmobile')
{
$res=print_auguria_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu,1);
-
+
foreach($this->menu->liste as $key => $val) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'
{
print '