New: Work on new menu management.
This commit is contained in:
parent
d752a41f05
commit
e352e4a56f
@ -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<br>';
|
||||
@ -533,17 +534,21 @@ class Menubase
|
||||
$perms = true;
|
||||
if ($menu['perms'])
|
||||
{
|
||||
$perms = verifCond($menu['perms']);
|
||||
//print "verifCond rowid=".$menu['rowid']." ".$menu['perms'].":".$perms."<br>\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."<br>\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."<br>\n";
|
||||
//print "verifCond rowid=".$menu['rowid']." ".$tmpcond.":".$enabled."<br>\n";
|
||||
}
|
||||
|
||||
// Define $title
|
||||
|
||||
@ -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');
|
||||
|
||||
|
||||
@ -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 '<ul data-role="listview" data-inset="true">';
|
||||
@ -184,13 +188,15 @@ class MenuManager
|
||||
if ($val['enabled'] == 1)
|
||||
{
|
||||
$relurl=dol_buildpath($val['url'],1);
|
||||
|
||||
|
||||
print '<a href="#">'.$val['titre'].'</a>'."\n";
|
||||
// Search submenu fot this entry
|
||||
$tmpmainmenu=$val['mainmenu'];
|
||||
$tmpleftmenu='all';
|
||||
$submenu=new Menu();
|
||||
//var_dump($tmpmainmenu.' - '.$tmpleftmenu);
|
||||
$res=print_left_auguria_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$submenu,1,$tmpmainmenu,$tmpleftmenu);
|
||||
//var_dump($submenu->liste);
|
||||
$nexturl=dol_buildpath($submenu->liste[0]['url'],1);
|
||||
$canonrelurl=preg_replace('/\?.*$/','',$relurl);
|
||||
$canonnexturl=preg_replace('/\?.*$/','',$nexturl);
|
||||
@ -205,8 +211,14 @@ class MenuManager
|
||||
foreach($submenu->liste as $key2 => $val2) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'
|
||||
{
|
||||
$relurl2=dol_buildpath($val2['url'],1);
|
||||
//var_dump($val2);
|
||||
print '<li'.($val2['level']==0?' data-role="list-divider"':'').'><a href="'.$relurl2.'">'.$val2['titre'].'</a></li>'."\n";
|
||||
$canonurl2=preg_replace('/\?.*$/','',$val2['url']);
|
||||
//var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']);
|
||||
if (in_array($canonurl2,array('/admin/index.php','/admin/tools/index.php'))) $relurl2='';
|
||||
print '<li'.($val2['level']==0?' data-role="list-divider"':'').'>';
|
||||
if ($relurl2) print '<a href="'.$relurl2.'">';
|
||||
print $val2['titre'];
|
||||
if ($relurl2) print '</a>';
|
||||
print '</li>'."\n";
|
||||
}
|
||||
//var_dump($submenu);
|
||||
print '</ul>';
|
||||
@ -219,9 +231,9 @@ class MenuManager
|
||||
print '</ul>'."\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
unset($this->menu);
|
||||
|
||||
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
|
||||
@ -49,14 +49,16 @@ class MenuManager
|
||||
$this->type_user=$type_user;
|
||||
$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='')
|
||||
{
|
||||
// On sauve en session le menu principal choisi
|
||||
if (isset($_GET["mainmenu"])) $_SESSION["mainmenu"]=$_GET["mainmenu"];
|
||||
@ -75,6 +77,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"]))
|
||||
{
|
||||
@ -95,6 +98,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();
|
||||
@ -123,13 +127,13 @@ class MenuManager
|
||||
}
|
||||
|
||||
$res='ErrorBadParameterForMode';
|
||||
|
||||
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/class/menu.class.php';
|
||||
$this->menu=new Menu();
|
||||
|
||||
|
||||
if ($mode == 'top') $res=print_eldy_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu);
|
||||
if ($mode == 'left') $res=print_left_eldy_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$this->menu);
|
||||
if ($mode == 'jmobile')
|
||||
if ($mode == 'jmobile')
|
||||
{
|
||||
$res=print_eldy_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu,1);
|
||||
|
||||
@ -166,18 +170,18 @@ class MenuManager
|
||||
}
|
||||
//var_dump($submenu);
|
||||
print '</ul>';
|
||||
}
|
||||
}
|
||||
if ($val['enabled'] == 2)
|
||||
{
|
||||
print '<font class="vsmenudisabled">'.$val['titre'].'</font>';
|
||||
}
|
||||
}
|
||||
print '</li>';
|
||||
print '</ul>'."\n";
|
||||
}
|
||||
}
|
||||
|
||||
unset($this->menu);
|
||||
|
||||
|
||||
//print 'xx'.$mode;
|
||||
return $res;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user