Extension des tables llx_menu pour permettre generalisation de son utilisation tout module.
This commit is contained in:
parent
99185539a9
commit
1d8fe9b885
@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
/* Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -23,18 +22,30 @@
|
||||
|
||||
/**
|
||||
\file htdocs/includes/modules/menudb/modules_menudb.php
|
||||
\ingroup menudb
|
||||
\brief Fichier contenant la classe mère d'affichage des menus'
|
||||
\ingroup core
|
||||
\brief Fichier contenant la classe mère d'affichage des menus DB
|
||||
\version $Revision$
|
||||
*/
|
||||
|
||||
class menuDb {
|
||||
/**
|
||||
\class MenuDb
|
||||
\brief Classe de gestion du menu DB
|
||||
*/
|
||||
class MenuDb
|
||||
{
|
||||
var $db;
|
||||
var $menu_handler;
|
||||
var $type;
|
||||
|
||||
var $newmenu;
|
||||
var $mainmenu;
|
||||
var $leftmenu;
|
||||
|
||||
function menuDb($db) {
|
||||
function MenuDb($db,$menu_handler,$type)
|
||||
{
|
||||
$this->db = $db;
|
||||
$this->menu_handler = $menu_handler;
|
||||
$this->type = $type;
|
||||
}
|
||||
|
||||
function menuCharger($mainmenu, $newmenu,$type_user, $leftmenu)
|
||||
@ -46,19 +57,25 @@ class menuDb {
|
||||
$this->newmenu = $newmenu;
|
||||
$this->leftmenu = $leftmenu;
|
||||
|
||||
$sql = "SELECT m.rowid, m.titre, m.level FROM " . MAIN_DB_PREFIX . "menu as m WHERE m.mainmenu = '" . $this->mainmenu . "'";
|
||||
$sql = "SELECT m.rowid, m.titre, m.type";
|
||||
$sql.= " FROM " . MAIN_DB_PREFIX . "menu as m";
|
||||
$sql.= " WHERE m.mainmenu = '".$this->mainmenu."'";
|
||||
$sql.= " AND m.menu_handler= '".$this->menu_handler."'";
|
||||
$result = $this->db->query($sql);
|
||||
$menuTop = $this->db->fetch_object($result);
|
||||
|
||||
$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 FROM " . MAIN_DB_PREFIX . "menu as m ";
|
||||
if($type_user == 0)$sql.= "WHERE m.user <> 1 ";
|
||||
else $sql.= "WHERE m.user > 0 ";
|
||||
$sql.= "ORDER BY m.order, m.rowid";
|
||||
$res = $this->db->query($sql);
|
||||
$sql = "SELECT m.rowid, m.fk_menu, m.url, m.titre, m.langs, m.right, 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";
|
||||
|
||||
if ($res) {
|
||||
$res = $this->db->query($sql);
|
||||
if ($res)
|
||||
{
|
||||
$num = $this->db->num_rows();
|
||||
|
||||
$i = 1;
|
||||
@ -80,6 +97,10 @@ class menuDb {
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
dolibarr_print_error($this->db);
|
||||
}
|
||||
|
||||
$this->recur($data, $menuTop->rowid, 1);
|
||||
|
||||
@ -125,9 +146,11 @@ class menuDb {
|
||||
|
||||
$constraint = true;
|
||||
|
||||
$sql = "SELECT c.rowid, c.action, mc.user FROM " . MAIN_DB_PREFIX . "menu_constraint as c, " . MAIN_DB_PREFIX . "menu_const as mc WHERE mc.fk_constraint = c.rowid AND (mc.user = 0 OR mc.user = 2 ) AND mc.fk_menu = '" . $rowid . "'";
|
||||
$result = $this->db->query($sql);
|
||||
$sql = "SELECT c.rowid, c.action, mc.user";
|
||||
$sql.= " FROM " . MAIN_DB_PREFIX . "menu_constraint as c, " . MAIN_DB_PREFIX . "menu_const as mc";
|
||||
$sql.= " WHERE mc.fk_constraint = c.rowid AND (mc.user = 0 OR mc.user = 2) AND mc.fk_menu = '" . $rowid . "'";
|
||||
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
//echo $sql;
|
||||
@ -142,6 +165,10 @@ class menuDb {
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
dolibarr_print_error($this->db);
|
||||
}
|
||||
|
||||
return $constraint;
|
||||
}
|
||||
@ -166,10 +193,13 @@ class menuDb {
|
||||
return $rights;
|
||||
}
|
||||
|
||||
function listeMainmenu() {
|
||||
$sql = "SELECT DISTINCT m.mainmenu FROM " . MAIN_DB_PREFIX . "menu as m";
|
||||
$res = $this->db->query($sql);
|
||||
function listeMainmenu()
|
||||
{
|
||||
$sql = "SELECT DISTINCT m.mainmenu";
|
||||
$sql.= " FROM " . MAIN_DB_PREFIX . "menu as m";
|
||||
$sql.= " WHERE m.menu_handler= '".$this->menu_handler."'";
|
||||
|
||||
$res = $this->db->query($sql);
|
||||
if ($res) {
|
||||
$i = 0;
|
||||
while ($menu = $this->db->fetch_array($res)) {
|
||||
@ -177,6 +207,10 @@ class menuDb {
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
dolibarr_print_error($this->db);
|
||||
}
|
||||
|
||||
return $overwritemenufor;
|
||||
}
|
||||
@ -184,18 +218,19 @@ class menuDb {
|
||||
|
||||
function menutopCharger($type_user,$mainmenu)
|
||||
{
|
||||
|
||||
global $langs, $user, $conf;
|
||||
|
||||
$sql = "SELECT m.rowid, m.mainmenu, m.titre, m.url, m.langs, m.right FROM ".MAIN_DB_PREFIX."menu as m WHERE m.level = -1 ";
|
||||
if($type_user == 0)$sql.= "AND m.user <> 1 ";
|
||||
else $sql.= "AND m.user > 0 ";
|
||||
$sql.= "ORDER BY m.order";
|
||||
$result = $this->db->query($sql);
|
||||
$sql = "SELECT m.rowid, m.mainmenu, m.titre, m.url, m.langs, m.right";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."menu as m";
|
||||
$sql.= " WHERE m.type = 'top'";
|
||||
$sql.= " AND 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";
|
||||
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
|
||||
$numa = $this->db->num_rows();
|
||||
|
||||
$a = 0;
|
||||
@ -247,6 +282,10 @@ class menuDb {
|
||||
$a++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
dolibarr_print_error($this->db);
|
||||
}
|
||||
|
||||
return $tabMenu;
|
||||
|
||||
|
||||
@ -62,7 +62,7 @@ class MenuLeft {
|
||||
$this->menu_array=$menu_array;
|
||||
$this->newmenu = new Menu();
|
||||
|
||||
$this->menuArbo = new menudb($this->db);
|
||||
$this->menuArbo = new menudb($this->db,'auguria','left');
|
||||
$this->overwritemenufor = $this->menuArbo->listeMainmenu();
|
||||
|
||||
}
|
||||
|
||||
@ -61,7 +61,7 @@ class MenuLeft {
|
||||
|
||||
$this->newmenu = new Menu();
|
||||
|
||||
$this->menuArbo = new menudb($this->db);
|
||||
$this->menuArbo = new menudb($this->db,'auguria','left');
|
||||
$this->overwritemenufor = $this->menuArbo->listeMainmenu();
|
||||
}
|
||||
|
||||
|
||||
@ -86,7 +86,7 @@ class MenuTop {
|
||||
}
|
||||
|
||||
|
||||
$menuArbo = new menudb($this->db);
|
||||
$menuArbo = new menudb($this->db,'auguria','top');
|
||||
$tabMenu = $menuArbo->menutopCharger(0,$_SESSION['mainmenu']);
|
||||
|
||||
print '<ul>';
|
||||
|
||||
@ -86,7 +86,7 @@ class MenuTop {
|
||||
}
|
||||
|
||||
|
||||
$menuArbo = new menudb($this->db);
|
||||
$menuArbo = new menudb($this->db,'auguria','top');
|
||||
$tabMenu = $menuArbo->menutopCharger(1,$_SESSION['mainmenu']);
|
||||
|
||||
print '<ul>';
|
||||
|
||||
@ -1348,6 +1348,7 @@ insert into `llx_menu` (`rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titr
|
||||
insert into `llx_menu` (`rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, `right`, `target`, `user`, `order`) values (4901, 'suppliers', '$leftmenu=="cat"', 4900, '/categories/fiche.php?action=create&type=1', 'NewCat', 1, 'categories', '$user->rights->categorie>creer', '', 2, 0);
|
||||
insert into `llx_menu` (`rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, `right`, `target`, `user`, `order`) values (5000, 'commercial', '', 5, '/categories/index.php?leftmenu=cat&type=2', 'Categories', 0, 'commercial', '$user->rights->categorie>lire', '', 2, 9);
|
||||
insert into `llx_menu` (`rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, `right`, `target`, `user`, `order`) values (5001, 'commercial', '$leftmenu=="cat"', 5000, '/categories/fiche.php?action=create&type=2', 'NewCat', 1, 'commercial', '$user->rights->categorie>creer', '', 2, 0);
|
||||
update llx_menu set type='top' where level=-1;
|
||||
|
||||
--
|
||||
-- Contenu de la table `llx_menu_constraint`
|
||||
|
||||
@ -356,6 +356,7 @@ insert into `llx_menu` (`rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titr
|
||||
insert into `llx_menu` (`rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, `right`, `target`, `user`, `order`) values (4901, 'suppliers', '$leftmenu=="cat"', 4900, '/categories/fiche.php?action=create&type=1', 'NewCat', 1, 'categories', '$user->rights->categorie>creer', '', 2, 0);
|
||||
insert into `llx_menu` (`rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, `right`, `target`, `user`, `order`) values (5000, 'commercial', '', 5, '/categories/index.php?leftmenu=cat&type=2', 'Categories', 0, 'commercial', '$user->rights->categorie>lire', '', 2, 9);
|
||||
insert into `llx_menu` (`rowid`, `mainmenu`, `leftmenu`, `fk_menu`, `url`, `titre`, `level`, `langs`, `right`, `target`, `user`, `order`) values (5001, 'commercial', '$leftmenu=="cat"', 5000, '/categories/fiche.php?action=create&type=2', 'NewCat', 1, 'commercial', '$user->rights->categorie>creer', '', 2, 0);
|
||||
update llx_menu set type='top' where level=-1;
|
||||
|
||||
--
|
||||
-- Contenu de la table `llx_menu_constraint`
|
||||
|
||||
Loading…
Reference in New Issue
Block a user