Skip to content
Snippets Groups Projects
Commit e352e4a5 authored by Laurent Destailleur's avatar Laurent Destailleur
Browse files

New: Work on new menu management.

parent d752a41f
No related branches found
No related tags found
No related merge requests found
...@@ -512,6 +512,7 @@ class Menubase ...@@ -512,6 +512,7 @@ class Menubase
if ($type_user == 0) $sql.= " AND m.usertype IN (0,2)"; if ($type_user == 0) $sql.= " AND m.usertype IN (0,2)";
if ($type_user == 1) $sql.= " AND m.usertype IN (1,2)"; if ($type_user == 1) $sql.= " AND m.usertype IN (1,2)";
$sql.= " ORDER BY m.position, m.rowid"; $sql.= " ORDER BY m.position, m.rowid";
//print $sql;
//$tmp1=dol_microtime_float(); //$tmp1=dol_microtime_float();
//print '>>> 1 0<br>'; //print '>>> 1 0<br>';
...@@ -533,17 +534,21 @@ class Menubase ...@@ -533,17 +534,21 @@ class Menubase
$perms = true; $perms = true;
if ($menu['perms']) if ($menu['perms'])
{ {
$perms = verifCond($menu['perms']); $tmpcond=$menu['perms'];
//print "verifCond rowid=".$menu['rowid']." ".$menu['perms'].":".$perms."<br>\n"; 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 // Define $enabled
$enabled = true; $enabled = true;
if ($menu['enabled']) 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; 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 // Define $title
......
...@@ -88,7 +88,7 @@ if (! class_exists('MenuManager')) ...@@ -88,7 +88,7 @@ if (! class_exists('MenuManager'))
} }
} }
$menumanager = new MenuManager($db, empty($user->societe_id)?0:1); $menumanager = new MenuManager($db, empty($user->societe_id)?0:1);
$menumanager->loadMenu(); $menumanager->loadMenu('all','all');
$menumanager->showmenu('jmobile'); $menumanager->showmenu('jmobile');
......
...@@ -55,9 +55,11 @@ class MenuManager ...@@ -55,9 +55,11 @@ class MenuManager
/** /**
* Load this->tabMenu * Load this->tabMenu
* *
* @param string $forcemainmenu To force mainmenu to load
* @param string $forceleftmenu To force leftmenu to load
* @return void * @return void
*/ */
function loadMenu() function loadMenu($forcemainmenu='',$forceleftmenu='')
{ {
global $conf, $user, $langs; global $conf, $user, $langs;
...@@ -78,6 +80,7 @@ class MenuManager ...@@ -78,6 +80,7 @@ class MenuManager
// On va le chercher en session si non defini par le lien // On va le chercher en session si non defini par le lien
$mainmenu=isset($_SESSION["mainmenu"])?$_SESSION["mainmenu"]:''; $mainmenu=isset($_SESSION["mainmenu"])?$_SESSION["mainmenu"]:'';
} }
if (! empty($forcemainmenu)) $mainmenu=$forcemainmenu;
if (isset($_GET["leftmenu"])) if (isset($_GET["leftmenu"]))
{ {
...@@ -98,6 +101,7 @@ class MenuManager ...@@ -98,6 +101,7 @@ class MenuManager
// On va le chercher en session si non defini par le lien // On va le chercher en session si non defini par le lien
$leftmenu=isset($_SESSION["leftmenu"])?$_SESSION["leftmenu"]:''; $leftmenu=isset($_SESSION["leftmenu"])?$_SESSION["leftmenu"]:'';
} }
if (! empty($forceleftmenu)) $leftmenu=$forceleftmenu;
require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php';
$tabMenu=array(); $tabMenu=array();
...@@ -190,7 +194,9 @@ class MenuManager ...@@ -190,7 +194,9 @@ class MenuManager
$tmpmainmenu=$val['mainmenu']; $tmpmainmenu=$val['mainmenu'];
$tmpleftmenu='all'; $tmpleftmenu='all';
$submenu=new Menu(); $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); $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); $nexturl=dol_buildpath($submenu->liste[0]['url'],1);
$canonrelurl=preg_replace('/\?.*$/','',$relurl); $canonrelurl=preg_replace('/\?.*$/','',$relurl);
$canonnexturl=preg_replace('/\?.*$/','',$nexturl); $canonnexturl=preg_replace('/\?.*$/','',$nexturl);
...@@ -205,8 +211,14 @@ class MenuManager ...@@ -205,8 +211,14 @@ class MenuManager
foreach($submenu->liste as $key2 => $val2) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' foreach($submenu->liste as $key2 => $val2) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu'
{ {
$relurl2=dol_buildpath($val2['url'],1); $relurl2=dol_buildpath($val2['url'],1);
//var_dump($val2); $canonurl2=preg_replace('/\?.*$/','',$val2['url']);
print '<li'.($val2['level']==0?' data-role="list-divider"':'').'><a href="'.$relurl2.'">'.$val2['titre'].'</a></li>'."\n"; //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); //var_dump($submenu);
print '</ul>'; print '</ul>';
......
...@@ -54,9 +54,11 @@ class MenuManager ...@@ -54,9 +54,11 @@ class MenuManager
/** /**
* Load this->tabMenu * Load this->tabMenu
* *
* @param string $forcemainmenu To force mainmenu to load
* @param string $forceleftmenu To force leftmenu to load
* @return void * @return void
*/ */
function loadMenu() function loadMenu($forcemainmenu='',$forceleftmenu='')
{ {
// On sauve en session le menu principal choisi // On sauve en session le menu principal choisi
if (isset($_GET["mainmenu"])) $_SESSION["mainmenu"]=$_GET["mainmenu"]; if (isset($_GET["mainmenu"])) $_SESSION["mainmenu"]=$_GET["mainmenu"];
...@@ -75,6 +77,7 @@ class MenuManager ...@@ -75,6 +77,7 @@ class MenuManager
// On va le chercher en session si non defini par le lien // On va le chercher en session si non defini par le lien
$mainmenu=isset($_SESSION["mainmenu"])?$_SESSION["mainmenu"]:''; $mainmenu=isset($_SESSION["mainmenu"])?$_SESSION["mainmenu"]:'';
} }
if (! empty($forcemainmenu)) $mainmenu=$forcemainmenu;
if (isset($_GET["leftmenu"])) if (isset($_GET["leftmenu"]))
{ {
...@@ -95,6 +98,7 @@ class MenuManager ...@@ -95,6 +98,7 @@ class MenuManager
// On va le chercher en session si non defini par le lien // On va le chercher en session si non defini par le lien
$leftmenu=isset($_SESSION["leftmenu"])?$_SESSION["leftmenu"]:''; $leftmenu=isset($_SESSION["leftmenu"])?$_SESSION["leftmenu"]:'';
} }
if (! empty($forceleftmenu)) $leftmenu=$forceleftmenu;
require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php';
$tabMenu=array(); $tabMenu=array();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment