Fix: Debuggage editeur de menu
This commit is contained in:
parent
4ff8d0a97c
commit
68bb7a3c14
@ -62,14 +62,31 @@ if (isset($_GET["action"]) && $_GET["action"] == 'update')
|
||||
{
|
||||
if (! $_POST['cancel'])
|
||||
{
|
||||
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."menu as m";
|
||||
$sql.=" SET m.titre = '".$_POST['titre']."', m.leftmenu = '".$_POST['leftmenu']."', m.url = '".$_POST['url']."', m.langs = '".$_POST['langs']."', m.right = '".$_POST['right']."',m.target = '".$_POST['target']."', m.user = ".$_POST['user'];
|
||||
$sql.=" WHERE m.rowid = ".$_POST['menuId'];
|
||||
$resql=$db->query($sql);
|
||||
if ($resql > 0)
|
||||
$menu = new Menubase($db);
|
||||
$result=$menu->fetch($_POST['menuId']);
|
||||
if ($result > 0)
|
||||
{
|
||||
$mesg='<div class="ok">'.$langs->trans("RecordModifiedSuccessfully").'</div>';
|
||||
$menu->titre=$_POST['titre'];
|
||||
$menu->leftmenu=$_POST['leftmenu'];
|
||||
$menu->url=$_POST['url'];
|
||||
$menu->langs=$_POST['langs'];
|
||||
$menu->position=$_POST['position'];
|
||||
$menu->perms=$_POST['perms'];
|
||||
$menu->target=$_POST['target'];
|
||||
$menu->user=$_POST['user'];
|
||||
$result=$menu->update($user);
|
||||
if ($result > 0)
|
||||
{
|
||||
$mesg='<div class="ok">'.$langs->trans("RecordModifiedSuccessfully").'</div>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$mesg='<div class="error">'.$menu->error.'</div>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$mesg='<div class="error">'.$menu->error.'</div>';
|
||||
}
|
||||
$_GET["menuId"]=$_POST['menuId'];
|
||||
$_GET["action"]="edit";
|
||||
@ -138,14 +155,14 @@ if (isset($_GET["action"]) && $_GET["action"] == 'add')
|
||||
{
|
||||
$sql = "SELECT max(m.rowid) as maxId FROM ".MAIN_DB_PREFIX."menu as m";
|
||||
$result = $db->query($sql);
|
||||
$lastMenu = $db->fetch_object($result);
|
||||
$rowid = $lastMenu->maxId + 1;
|
||||
$obj = $db->fetch_object($result);
|
||||
$rowid = $obj->maxId + 1;
|
||||
|
||||
// On prend le max de toutes celles qui auront le meme pere fk_menu
|
||||
$sql = "SELECT max(m.order) as maxOrder FROM ".MAIN_DB_PREFIX."menu as m WHERE m.fk_menu = ".$_POST['menuId'];
|
||||
$sql = "SELECT max(m.position) as maxOrder FROM ".MAIN_DB_PREFIX."menu as m WHERE m.fk_menu = ".$_POST['menuId'];
|
||||
$result = $db->query($sql);
|
||||
$lastMenu = $db->fetch_object($result);
|
||||
if ($lastMenu) $order = $lastMenu->maxOrder + 1;
|
||||
$obj = $db->fetch_object($result);
|
||||
if ($obj) $position = $obj->maxOrder + 1;
|
||||
else
|
||||
{
|
||||
dolibarr_print_error($db);
|
||||
@ -161,8 +178,8 @@ if (isset($_GET["action"]) && $_GET["action"] == 'add')
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."menu(rowid,menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, `right`, target, user, `order`)";
|
||||
$sql.=" VALUES(".$rowid.",'".$_POST['menu_handler']."','".$_POST['type']."','".$_POST['mainmenu']."','".$_POST['leftmenu']."',".$_POST['menuId'].",'".$_POST['url']."','".$_POST['titre']."','".$_POST['level']."','".$_POST['langs']."','".$_POST['right']."','".$_POST['target']."',".$_POST['user'].",0)";
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."menu(rowid,menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms`, target, user, position)";
|
||||
$sql.=" VALUES(".$rowid.",'".$_POST['menu_handler']."','".$_POST['type']."','".$_POST['mainmenu']."','".$_POST['leftmenu']."',".$_POST['menuId'].",'".$_POST['url']."','".$_POST['titre']."','".$_POST['level']."','".$_POST['langs']."','".$_POST['perms']."','".$_POST['target']."',".$_POST['user'].", ".$position.")";
|
||||
|
||||
dolibarr_syslog("edit: insert menu entry sql=".$sql);
|
||||
$result=$db->query($sql);
|
||||
@ -321,13 +338,22 @@ if (isset($_GET["action"]) && $_GET["action"] == 'create')
|
||||
print '<td><input type="text" size="10" name="menuId" value="'.$parent_rowid.'"></td>';
|
||||
print '<td>'.$langs->trans('DetailMenuIdParent').'</td></tr>';
|
||||
|
||||
//Handler
|
||||
// Handler
|
||||
print '<tr><td><b>'.$langs->trans('MenuHandler').'</b></td>';
|
||||
print '<td>';
|
||||
print $htmladmin->select_menu_families($menu_handler,'menu_handler',$dirleft);
|
||||
print '</td>';
|
||||
print '<td>'.$langs->trans('DetailMenuHandler').'</td></tr>';
|
||||
|
||||
//User
|
||||
print '<tr><td nowrap="nowrap"><b>'.$langs->trans('MenuForUsers').'</b></td>';
|
||||
print '<td><select class="flat" name="user">';
|
||||
print '<option value="2" selected>'.$langs->trans("AllMenus").'</option>';
|
||||
print '<option value="0">'.$langs->trans('Interne').'</option>';
|
||||
print '<option value="1">'.$langs->trans('Externe').'</option>';
|
||||
print '</select></td>';
|
||||
print '<td>'.$langs->trans('DetailUser').'</td></tr>';
|
||||
|
||||
// Type
|
||||
print '<tr><td><b>'.$langs->trans('Type').'</b></td><td>';
|
||||
print '<select name="type" class="flat">';
|
||||
@ -337,27 +363,26 @@ if (isset($_GET["action"]) && $_GET["action"] == 'create')
|
||||
print '</select>';
|
||||
// print '<input type="text" size="50" name="type" value="'.$type.'">';
|
||||
print '</td><td>'.$langs->trans('DetailType').'</td></tr>';
|
||||
//User
|
||||
print '<tr><td nowrap="nowrap"><b>'.$langs->trans('MenuForUsers').'</b></td>';
|
||||
print '<td><select class="flat" name="user">';
|
||||
print '<option value="2" selected>'.$langs->trans("AllMenus").'</option>';
|
||||
print '<option value="0">'.$langs->trans('Interne').'</option>';
|
||||
print '<option value="1">'.$langs->trans('Externe').'</option>';
|
||||
print '</select></td>';
|
||||
print '<td>'.$langs->trans('DetailUser').'</td></tr>';
|
||||
|
||||
//Titre
|
||||
print '<tr><td><b>'.$langs->trans('Title').'</b></td><td><input type="text" size="30" name="titre" value=""></td><td>'.$langs->trans('DetailTitre').'</td></tr>';
|
||||
|
||||
//Langs
|
||||
print '<tr><td>'.$langs->trans('LangFile').'</td><td><input type="text" size="30" name="langs" value="'.$parent_langs.'"></td><td>'.$langs->trans('DetailLangs').'</td></tr>';
|
||||
|
||||
//Position
|
||||
print '<tr><td>'.$langs->trans('Position').'</td><td><input type="text" size="5" name="position" value="'.$parent_langs.'"></td><td>'.$langs->trans('DetailPosition').'</td></tr>';
|
||||
|
||||
//URL
|
||||
print '<tr><td><b>'.$langs->trans('URL').'</b></td><td><input type="text" size="60" name="url" value=""></td><td>'.$langs->trans('DetailUrl').'</td></tr>';
|
||||
|
||||
//Target
|
||||
print '<tr><td>'.$langs->trans('Target').'</td><td><select class="flat" name="target">';
|
||||
print '<option value=""'.($menu->target==""?' selected="true"':'').'>'.$langs->trans('').'</option>';
|
||||
print '<option value="_new"'.($menu->target=="_new"?' selected="true"':'').'>'.$langs->trans('_new').'</option>';
|
||||
print '</select></td></td><td>'.$langs->trans('DetailTarget').'</td></tr>';
|
||||
//Right
|
||||
print '<tr><td>'.$langs->trans('Rights').'</td><td><input type="text" size="60" name="right" value=""></td><td>'.$langs->trans('DetailRight').'</td></tr>';
|
||||
//Perms
|
||||
print '<tr><td>'.$langs->trans('Rights').'</td><td><input type="text" size="60" name="perms" value=""></td><td>'.$langs->trans('DetailRight').'</td></tr>';
|
||||
|
||||
// Boutons
|
||||
print '<tr><td colspan="3" align="center"><input type="submit" class="button" name="save" value="'.$langs->trans("Save").'">';
|
||||
@ -395,24 +420,28 @@ elseif (isset($_GET["action"]) && $_GET["action"] == 'edit')
|
||||
// Handler
|
||||
print '<tr><td>'.$langs->trans('MenuHandler').'</td><td>'.$menu->menu_handler.'</td><td>'.$langs->trans('DetailMenuHandler').'</td></tr>';
|
||||
|
||||
// user
|
||||
// Type
|
||||
print '<tr><td>'.$langs->trans('Type').'</td><td>'.$menu->type.'</td><td>'.$langs->trans('DetailType').'</td></tr>';
|
||||
|
||||
// User
|
||||
print '<tr><td nowrap="nowrap">'.$langs->trans('MenuForUsers').'</td><td><select class="flat" name="user">';
|
||||
print '<option value="2"'.($menu->user==2?' selected="true"':'').'>'.$langs->trans("All").'</option>';
|
||||
print '<option value="0"'.($menu->user==0?' selected="true"':'').'>'.$langs->trans('Interne').'</option>';
|
||||
print '<option value="1"'.($menu->user==1?' selected="true"':'').'>'.$langs->trans('Externe').'</option>';
|
||||
print '</select></td><td>'.$langs->trans('DetailUser').'</td></tr>';
|
||||
|
||||
// Type
|
||||
print '<tr><td>'.$langs->trans('Type').'</td><td>'.$menu->type.'</td><td>'.$langs->trans('DetailType').'</td></tr>';
|
||||
|
||||
// Niveau
|
||||
//print '<tr><td>'.$langs->trans('Level').'</td><td>'.$menu->level.'</td><td>'.$langs->trans('DetailLevel').'</td></tr>';
|
||||
|
||||
// Titre
|
||||
print '<tr><td>'.$langs->trans('Title').'</td><td><input type="text" size="30" name="titre" value="'.$menu->titre.'"></td><td>'.$langs->trans('DetailTitre').'</td></tr>';
|
||||
|
||||
// Langs
|
||||
print '<tr><td>'.$langs->trans('LangFile').'</td><td><input type="text" size="30" name="langs" value="'.$menu->langs.'"></td><td>'.$langs->trans('DetailLangs').'</td></tr>';
|
||||
|
||||
// Position
|
||||
print '<tr><td>'.$langs->trans('Position').'</td><td><input type="text" size="5" name="position" value="'.$menu->position.'"></td><td>'.$langs->trans('DetailPosition').'</td></tr>';
|
||||
|
||||
// Url
|
||||
print '<tr><td>'.$langs->trans('URL').'</td><td><input type="text" size="60" name="url" value="'.$menu->url.'"></td><td>'.$langs->trans('DetailUrl').'</td></tr>';
|
||||
|
||||
@ -422,8 +451,8 @@ elseif (isset($_GET["action"]) && $_GET["action"] == 'edit')
|
||||
print '<option value="_new"'.($menu->target=="_new"?' selected="true"':'').'>'.$langs->trans('_new').'</option>';
|
||||
print '</select></td></td><td>'.$langs->trans('DetailTarget').'</td></tr>';
|
||||
|
||||
// Right
|
||||
print '<tr><td>'.$langs->trans('Rights').'</td><td><input type="text" size="60" name="right" value="'.$menu->right.'"></td><td>'.$langs->trans('DetailRight').'</td></tr>';
|
||||
// Perms
|
||||
print '<tr><td>'.$langs->trans('Rights').'</td><td><input type="text" size="60" name="perms" value="'.$menu->perms.'"></td><td>'.$langs->trans('DetailRight').'</td></tr>';
|
||||
|
||||
// Bouton
|
||||
print '<tr><td colspan="3" align="center"><input type="submit" class="button" name="save" value="'.$langs->trans("Save").'">';
|
||||
|
||||
@ -58,44 +58,44 @@ if ($_REQUEST["menu_handler"]) $menu_handler=$_REQUEST["menu_handler"];
|
||||
if (isset($_GET["action"]) && $_GET["action"] == 'up')
|
||||
{
|
||||
|
||||
$sql = "SELECT m.rowid, m.order FROM ".MAIN_DB_PREFIX."menu as m";
|
||||
$sql = "SELECT m.rowid, m.position FROM ".MAIN_DB_PREFIX."menu as m";
|
||||
$sql.= " WHERE m.rowid = ".$_GET["menuId"];
|
||||
$result = $db->query($sql);
|
||||
|
||||
$num = $db->num_rows();
|
||||
$num = $db->num_rows($result);
|
||||
$i = 0;
|
||||
|
||||
while($i < $num)
|
||||
{
|
||||
$obj = $db->fetch_object($result);
|
||||
$precedent['rowid'] = $obj->rowid;
|
||||
$precedent['order'] = $obj->order;
|
||||
$precedent['order'] = $obj->position;
|
||||
$i++;
|
||||
}
|
||||
|
||||
// Menu top
|
||||
$sql = "SELECT m.rowid, m.order FROM ".MAIN_DB_PREFIX."menu as m";
|
||||
$sql.= " WHERE m.order = ".($precedent['order'] - 1)." AND m.type = 'top'";
|
||||
$sql = "SELECT m.rowid, m.position FROM ".MAIN_DB_PREFIX."menu as m";
|
||||
$sql.= " WHERE m.position = ".($precedent['order'] - 1)." AND m.type = 'top'";
|
||||
$sql.= " AND menu_handler='".$menu_handler_top."'";
|
||||
$result = $db->query($sql);
|
||||
|
||||
$num = $db->num_rows();
|
||||
$num = $db->num_rows($result);
|
||||
$i = 0;
|
||||
|
||||
while($i < $num)
|
||||
{
|
||||
$obj = $db->fetch_object($result);
|
||||
$suivant['rowid'] = $obj->rowid;
|
||||
$suivant['order'] = $obj->order;
|
||||
$suivant['order'] = $obj->position;
|
||||
$i++;
|
||||
}
|
||||
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."menu as m";
|
||||
$sql.= " SET m.order = ".$suivant['order'];
|
||||
$sql.= " SET m.position = ".$suivant['order'];
|
||||
$sql.= " WHERE m.rowid = ".$precedent['rowid'].""; // Monte celui select
|
||||
$db->query($sql);
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."menu as m";
|
||||
$sql.= " SET m.order = ".$precedent['order'];
|
||||
$sql.= " SET m.position = ".$precedent['order'];
|
||||
$sql.= " WHERE m.rowid = ".$suivant['rowid'].""; // Descend celui du dessus
|
||||
$db->query($sql);
|
||||
}
|
||||
@ -103,39 +103,39 @@ if (isset($_GET["action"]) && $_GET["action"] == 'up')
|
||||
if (isset($_GET["action"]) && $_GET["action"] == 'down')
|
||||
{
|
||||
|
||||
$sql = "SELECT m.rowid, m.order FROM ".MAIN_DB_PREFIX."menu as m WHERE m.rowid = ".$_GET["menuId"];
|
||||
$sql = "SELECT m.rowid, m.position FROM ".MAIN_DB_PREFIX."menu as m WHERE m.rowid = ".$_GET["menuId"];
|
||||
$result = $db->query($sql);
|
||||
|
||||
$num = $db->num_rows();
|
||||
$num = $db->num_rows($result);
|
||||
$i = 0;
|
||||
|
||||
while($i < $num)
|
||||
{
|
||||
$obj = $db->fetch_object($result);
|
||||
$precedent['rowid'] = $obj->rowid;
|
||||
$precedent['order'] = $obj->order;
|
||||
$precedent['order'] = $obj->position;
|
||||
$i++;
|
||||
}
|
||||
|
||||
$sql = "SELECT m.rowid, m.order";
|
||||
$sql = "SELECT m.rowid, m.position";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."menu as m";
|
||||
$sql.= " WHERE m.order = ".($precedent['order'] + 1)." AND type='top'";
|
||||
$sql.= " WHERE m.position = ".($precedent['order'] + 1)." AND type='top'";
|
||||
$result = $db->query($sql);
|
||||
|
||||
$num = $db->num_rows();
|
||||
$num = $db->num_rows($result);
|
||||
$i = 0;
|
||||
|
||||
while($i < $num)
|
||||
{
|
||||
$obj = $db->fetch_object($result);
|
||||
$suivant['rowid'] = $obj->rowid;
|
||||
$suivant['order'] = $obj->order;
|
||||
$suivant['order'] = $obj->position;
|
||||
$i++;
|
||||
}
|
||||
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."menu as m SET m.order = ".$suivant['order']." WHERE m.rowid = ".$precedent['rowid'].""; // Monte celui select
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."menu as m SET m.position = ".$suivant['order']." WHERE m.rowid = ".$precedent['rowid'].""; // Monte celui select
|
||||
$db->query($sql);
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."menu as m SET m.order = ".$precedent['order']." WHERE m.rowid = ".$suivant['rowid'].""; // Descend celui du dessus
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."menu as m SET m.position = ".$precedent['order']." WHERE m.rowid = ".$suivant['rowid'].""; // Descend celui du dessus
|
||||
$db->query($sql);
|
||||
}
|
||||
|
||||
@ -277,7 +277,7 @@ if ($conf->use_javascript_ajax)
|
||||
$sql = "SELECT m.rowid, m.fk_menu, m.titre, m.langs";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."menu as m";
|
||||
$sql.= " WHERE menu_handler='".$menu_handler."'";
|
||||
$sql.= " ORDER BY m.order, m.rowid";
|
||||
$sql.= " ORDER BY m.position, m.rowid";
|
||||
$res = $db->query($sql);
|
||||
|
||||
if ($res)
|
||||
|
||||
@ -86,7 +86,7 @@ class MenuTop {
|
||||
|
||||
|
||||
$menuArbo = new Menubase($this->db,'auguria','top');
|
||||
$tabMenu = $menuArbo->menutopCharger(0,$_SESSION['mainmenu']);
|
||||
$tabMenu = $menuArbo->menutopCharger(0,$_SESSION['mainmenu'], 'auguria');
|
||||
|
||||
print '<ul>';
|
||||
|
||||
|
||||
@ -86,7 +86,7 @@ class MenuTop {
|
||||
|
||||
|
||||
$menuArbo = new Menubase($this->db,'auguria','top');
|
||||
$tabMenu = $menuArbo->menutopCharger(1,$_SESSION['mainmenu']);
|
||||
$tabMenu = $menuArbo->menutopCharger(1,$_SESSION['mainmenu'], 'auguria');
|
||||
|
||||
print '<ul>';
|
||||
|
||||
|
||||
@ -429,7 +429,7 @@ class MenuTop {
|
||||
require_once(DOL_DOCUMENT_ROOT."/lib/menubase.class.php");
|
||||
|
||||
$menuArbo = new Menubase($this->db,'eldy','top');
|
||||
$tabMenu = $menuArbo->menutopCharger(0,$_SESSION['mainmenu']);
|
||||
$tabMenu = $menuArbo->menutopCharger(0,$_SESSION['mainmenu'],'eldy');
|
||||
for($i=0;$i<count($tabMenu);$i++)
|
||||
{
|
||||
if ($tabMenu[$i]['right'] == true)
|
||||
|
||||
@ -375,7 +375,7 @@ class MenuTop {
|
||||
require_once(DOL_DOCUMENT_ROOT."/lib/menubase.class.php");
|
||||
|
||||
$menuArbo = new Menubase($this->db,'eldy','top');
|
||||
$tabMenu = $menuArbo->menutopCharger(0,$_SESSION['mainmenu']);
|
||||
$tabMenu = $menuArbo->menutopCharger(1,$_SESSION['mainmenu'],'eldy');
|
||||
for($i=0;$i<count($tabMenu);$i++)
|
||||
{
|
||||
if ($tabMenu[$i]['right'] == true)
|
||||
|
||||
@ -71,7 +71,7 @@ class MenuTop {
|
||||
require_once(DOL_DOCUMENT_ROOT."/lib/menubase.class.php");
|
||||
|
||||
$menuArbo = new Menubase($this->db,'eldy','top');
|
||||
$tabMenu = $menuArbo->menutopCharger(0,$_SESSION['mainmenu']);
|
||||
$tabMenu = $menuArbo->menutopCharger(0,$_SESSION['mainmenu'],'');
|
||||
for($i=0;$i<count($tabMenu);$i++)
|
||||
{
|
||||
if ($tabMenu[$i]['right'] == true)
|
||||
|
||||
@ -377,7 +377,7 @@ class MenuTop {
|
||||
require_once(DOL_DOCUMENT_ROOT."/lib/menubase.class.php");
|
||||
|
||||
$menuArbo = new Menubase($this->db,'rodolphe','top');
|
||||
$tabMenu = $menuArbo->menutopCharger(0,$_SESSION['mainmenu']);
|
||||
$tabMenu = $menuArbo->menutopCharger(1,$_SESSION['mainmenu'],'rodolphe');
|
||||
for($i=0;$i<count($tabMenu);$i++)
|
||||
{
|
||||
if ($tabMenu[$i]['right'] == true)
|
||||
|
||||
@ -46,6 +46,7 @@ MenuSetup=Menus management setup
|
||||
MenuLimits=Limits and accuracy
|
||||
MenuIdParent=Parent menu id
|
||||
DetailMenuIdParent=Id of parent menu (0 for a top menu)
|
||||
DetailPosition=Sort number to define menu position
|
||||
PersonalizedMenusNotSupported=Personalized menus not supported
|
||||
AllMenus=All
|
||||
NotConfigured=Not configured
|
||||
|
||||
@ -45,6 +45,7 @@ UserSetup=Configuration gestion des utilisateurs
|
||||
MenuSetup=Administration des menus par base de données
|
||||
MenuIdParent=Id du menu parent
|
||||
DetailMenuIdParent=Id du menu parent (0 pour un menu du haut)
|
||||
DetailPosition=Numéro d'ordre déterminant la position du menu
|
||||
MenuLimits=Limites et précision
|
||||
PersonalizedMenusNotSupported=Menus personalisés non gérés
|
||||
AllMenus=Tous
|
||||
|
||||
@ -42,14 +42,14 @@ class Menubase
|
||||
var $type;
|
||||
var $mainmenu;
|
||||
var $fk_menu;
|
||||
var $order;
|
||||
var $position;
|
||||
var $url;
|
||||
var $target;
|
||||
var $titre;
|
||||
var $langs;
|
||||
var $level;
|
||||
var $leftmenu;
|
||||
var $right;
|
||||
var $perms;
|
||||
var $user;
|
||||
var $tms;
|
||||
|
||||
@ -82,14 +82,14 @@ class Menubase
|
||||
$this->type=trim($this->type);
|
||||
$this->mainmenu=trim($this->mainmenu);
|
||||
$this->fk_menu=trim($this->fk_menu);
|
||||
$this->order=trim($this->order);
|
||||
$this->position=trim($this->position);
|
||||
$this->url=trim($this->url);
|
||||
$this->target=trim($this->target);
|
||||
$this->titre=trim($this->titre);
|
||||
$this->langs=trim($this->langs);
|
||||
$this->level=trim($this->level);
|
||||
$this->leftmenu=trim($this->leftmenu);
|
||||
$this->right=trim($this->right);
|
||||
$this->perms=trim($this->perms);
|
||||
$this->user=trim($this->user);
|
||||
|
||||
// Check parameters
|
||||
@ -101,31 +101,29 @@ class Menubase
|
||||
$sql.= "type,";
|
||||
$sql.= "mainmenu,";
|
||||
$sql.= "fk_menu,";
|
||||
$sql.= "order,";
|
||||
$sql.= "position,";
|
||||
$sql.= "url,";
|
||||
$sql.= "target,";
|
||||
$sql.= "titre,";
|
||||
$sql.= "langs,";
|
||||
$sql.= "level,";
|
||||
$sql.= "leftmenu,";
|
||||
$sql.= "right,";
|
||||
$sql.= "user,";
|
||||
$sql.= "tms";
|
||||
$sql.= "perms,";
|
||||
$sql.= "user";
|
||||
$sql.= ") VALUES (";
|
||||
$sql.= " '".$this->menu_handler."',";
|
||||
$sql.= " '".$this->type."',";
|
||||
$sql.= " '".$this->mainmenu."',";
|
||||
$sql.= " '".$this->fk_menu."',";
|
||||
$sql.= " '".$this->order."',";
|
||||
$sql.= " '".$this->position."',";
|
||||
$sql.= " '".$this->url."',";
|
||||
$sql.= " '".$this->target."',";
|
||||
$sql.= " '".$this->titre."',";
|
||||
$sql.= " '".$this->langs."',";
|
||||
$sql.= " '".$this->level."',";
|
||||
$sql.= " '".$this->leftmenu."',";
|
||||
$sql.= " '".$this->right."',";
|
||||
$sql.= " '".$this->user."',";
|
||||
$sql.= " ".$this->db->idate($this->tms)."";
|
||||
$sql.= " '".$this->perms."',";
|
||||
$sql.= " '".$this->user."'";
|
||||
$sql.= ")";
|
||||
|
||||
dolibarr_syslog("Menu::create sql=".$sql, LOG_DEBUG);
|
||||
@ -167,14 +165,14 @@ class Menubase
|
||||
$this->type=trim($this->type);
|
||||
$this->mainmenu=trim($this->mainmenu);
|
||||
$this->fk_menu=trim($this->fk_menu);
|
||||
$this->order=trim($this->order);
|
||||
$this->position=trim($this->position);
|
||||
$this->url=trim($this->url);
|
||||
$this->target=trim($this->target);
|
||||
$this->titre=trim($this->titre);
|
||||
$this->langs=trim($this->langs);
|
||||
$this->level=trim($this->level);
|
||||
$this->leftmenu=trim($this->leftmenu);
|
||||
$this->right=trim($this->right);
|
||||
$this->perms=trim($this->perms);
|
||||
$this->user=trim($this->user);
|
||||
|
||||
// Check parameters
|
||||
@ -186,16 +184,15 @@ class Menubase
|
||||
$sql.= " type='".$this->type."',";
|
||||
$sql.= " mainmenu='".addslashes($this->mainmenu)."',";
|
||||
$sql.= " fk_menu='".$this->fk_menu."',";
|
||||
$sql.= " order='".$this->order."',";
|
||||
$sql.= " position='".$this->position."',";
|
||||
$sql.= " url='".addslashes($this->url)."',";
|
||||
$sql.= " target='".addslashes($this->target)."',";
|
||||
$sql.= " titre='".addslashes($this->titre)."',";
|
||||
$sql.= " langs='".addslashes($this->langs)."',";
|
||||
$sql.= " level='".$this->level."',";
|
||||
$sql.= " leftmenu='".addslashes($this->leftmenu)."',";
|
||||
$sql.= " right='".addslashes($this->right)."',";
|
||||
$sql.= " user='".$this->user."',";
|
||||
$sql.= " tms=".$this->db->idate($this->tms)."";
|
||||
$sql.= " perms='".addslashes($this->perms)."',";
|
||||
$sql.= " user='".$this->user."'";
|
||||
$sql.= " WHERE rowid=".$this->id;
|
||||
|
||||
dolibarr_syslog("Menu::update sql=".$sql, LOG_DEBUG);
|
||||
@ -237,14 +234,14 @@ class Menubase
|
||||
$sql.= " t.type,";
|
||||
$sql.= " t.mainmenu,";
|
||||
$sql.= " t.fk_menu,";
|
||||
$sql.= " t.order,";
|
||||
$sql.= " t.position,";
|
||||
$sql.= " t.url,";
|
||||
$sql.= " t.target,";
|
||||
$sql.= " t.titre,";
|
||||
$sql.= " t.langs,";
|
||||
$sql.= " t.level,";
|
||||
$sql.= " t.leftmenu,";
|
||||
$sql.= " t.right,";
|
||||
$sql.= " t.perms,";
|
||||
$sql.= " t.user,";
|
||||
$sql.= " ".$this->db->pdate('t.tms')."";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."menu as t";
|
||||
@ -264,14 +261,14 @@ class Menubase
|
||||
$this->type = $obj->type;
|
||||
$this->mainmenu = $obj->mainmenu;
|
||||
$this->fk_menu = $obj->fk_menu;
|
||||
$this->order = $obj->order;
|
||||
$this->position = $obj->position;
|
||||
$this->url = $obj->url;
|
||||
$this->target = $obj->target;
|
||||
$this->titre = $obj->titre;
|
||||
$this->langs = $obj->langs;
|
||||
$this->level = $obj->level;
|
||||
$this->leftmenu = $obj->leftmenu;
|
||||
$this->right = $obj->right;
|
||||
$this->perms = $obj->perms;
|
||||
$this->user = $obj->user;
|
||||
$this->tms = $obj->tms;
|
||||
}
|
||||
@ -332,14 +329,14 @@ class Menubase
|
||||
$this->type='';
|
||||
$this->mainmenu='';
|
||||
$this->fk_menu='';
|
||||
$this->order='';
|
||||
$this->position='';
|
||||
$this->url='';
|
||||
$this->target='';
|
||||
$this->titre='';
|
||||
$this->langs='';
|
||||
$this->level='';
|
||||
$this->leftmenu='';
|
||||
$this->right='';
|
||||
$this->perms='';
|
||||
$this->user='';
|
||||
$this->tms='';
|
||||
}
|
||||
@ -363,12 +360,12 @@ class Menubase
|
||||
|
||||
$data[] = array ($menutop->rowid,-1,$this->mainmenu);
|
||||
|
||||
$sql = "SELECT m.rowid, m.fk_menu, m.url, m.titre, m.langs, m.right, m.target, m.mainmenu, m.leftmenu";
|
||||
$sql = "SELECT m.rowid, m.fk_menu, m.url, m.titre, m.langs, m.perms, m.target, m.mainmenu, m.leftmenu";
|
||||
$sql.= " FROM " . MAIN_DB_PREFIX . "menu as m";
|
||||
$sql.= " WHERE m.menu_handler= '".$this->menu_handler."'";
|
||||
if($type_user == 0) $sql.= " AND m.user <> 1";
|
||||
else $sql.= " AND m.user > 0";
|
||||
$sql.= " ORDER BY m.order, m.rowid";
|
||||
$sql.= " ORDER BY m.position, m.rowid";
|
||||
|
||||
$res = $this->db->query($sql);
|
||||
if ($res)
|
||||
@ -513,29 +510,29 @@ class Menubase
|
||||
}
|
||||
|
||||
|
||||
function menutopCharger($type_user,$mainmenu)
|
||||
function menutopCharger($type_user, $mainmenu, $menu_handler)
|
||||
{
|
||||
global $langs, $user, $conf;
|
||||
|
||||
$sql = "SELECT m.rowid, m.mainmenu, m.titre, m.url, m.langs, m.right";
|
||||
$sql = "SELECT m.rowid, m.mainmenu, m.titre, m.url, m.langs, m.perms";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."menu as m";
|
||||
$sql.= " WHERE m.type = 'top'";
|
||||
$sql.= " AND m.menu_handler= '".$this->menu_handler."'";
|
||||
$sql.= " AND m.menu_handler in('".$menu_handler."','all')";
|
||||
if($type_user == 0) $sql.= " AND m.user <> 1";
|
||||
else $sql.= " AND m.user > 0";
|
||||
$sql.= " ORDER BY m.order";
|
||||
$sql.= " ORDER BY m.menu_handler DESC, m.position";
|
||||
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$numa = $this->db->num_rows();
|
||||
$numa = $this->db->num_rows($resql);
|
||||
|
||||
$a = 0;
|
||||
$b = 0;
|
||||
while ($a < $numa)
|
||||
{
|
||||
// Affichage entete menu
|
||||
$objm = $this->db->fetch_object($result);
|
||||
$objm = $this->db->fetch_object($resql);
|
||||
|
||||
if ($this->verifConstraint($objm->rowid))
|
||||
{
|
||||
@ -550,9 +547,9 @@ class Menubase
|
||||
|
||||
$right = true;
|
||||
|
||||
if ($objm->right)
|
||||
if ($objm->perms)
|
||||
{
|
||||
$str = "if(!(".$objm->right.")) \$right = false;";
|
||||
$str = "if(!(".$objm->perms.")) \$right = false;";
|
||||
eval($str);
|
||||
}
|
||||
|
||||
|
||||
@ -32,4 +32,6 @@ alter table llx_menu modify rowid integer AUTO_INCREMENT NOT NULL PRIMARY KEY;
|
||||
ALTER TABLE llx_menu_const ADD CONSTRAINT fk_menu_const_fk_menu FOREIGN KEY (fk_menu) REFERENCES llx_menu (rowid);
|
||||
|
||||
alter table llx_menu modify user integer NOT NULL default '0';
|
||||
alter table llx_menu change `order` position integer NOT NULL;
|
||||
alter table llx_menu change `right` perms varchar(255);
|
||||
alter table llx_menu add column tms timestamp;
|
||||
|
||||
@ -28,7 +28,7 @@ CREATE TABLE `llx_menu` (
|
||||
|
||||
mainmenu varchar(100) NOT NULL, -- Name family/module (home, companies, ...)
|
||||
fk_menu int(11) NOT NULL, -- 0 or Id of mother menu line
|
||||
order tinyint(4) NOT NULL, -- Order of entry
|
||||
position integer NOT NULL, -- Sort order of entry
|
||||
|
||||
url varchar(255) NOT NULL, -- Relative (or absolute) url to go
|
||||
target varchar(100) NULL, -- Target of Url link
|
||||
@ -39,7 +39,7 @@ CREATE TABLE `llx_menu` (
|
||||
level tinyint(1), -- Used by auguria menu only. Do not use.
|
||||
|
||||
leftmenu varchar(100) NULL, -- Condition to show or hide
|
||||
right varchar(255), -- Condition to show enabled or disabled
|
||||
perms varchar(255), -- Condition to show enabled or disabled
|
||||
user integer NOT NULL default '0', -- 0 if menu for all users, 1 for external only, 2 for internal only
|
||||
tms timestamp
|
||||
) type=innodb;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user