New: Ajout classe objet pour gerer enregistrement de la table llx_menu (premier essai de l'utilisation du generateur de code). Ca marche nickel.

This commit is contained in:
Laurent Destailleur 2008-01-12 14:25:15 +00:00
parent da489269af
commit 1966ed019a
11 changed files with 478 additions and 150 deletions

View File

@ -175,7 +175,7 @@ class Skeleton_class // extends CommonObject
$sql.= " t.field2";
//...
$sql.= " FROM ".MAIN_DB_PREFIX."mytable as t";
$sql.= " WHERE c.rowid = ".$id;
$sql.= " WHERE t.rowid = ".$id;
dolibarr_syslog("Skeleton_class::fetch sql=".$sql, LOG_DEBUG);
$resql=$this->db->query($sql);

View File

@ -27,6 +27,8 @@
require("./pre.inc.php");
require_once(DOL_DOCUMENT_ROOT."/html.formadmin.class.php");
require_once(DOL_DOCUMENT_ROOT."/lib/menubase.class.php");
$langs->load("admin");
@ -47,7 +49,8 @@ $menu_handler_left=eregi_replace('_frontoffice\.php','',$menu_handler_left);
$menu_handler=$menu_handler_left;
if ($_REQUEST["menu_handler"]) $menu_handler=$_REQUEST["menu_handler"];
if ($_REQUEST["handler_origine"]) $menu_handler=$_REQUEST["handler_origine"];
if ($_REQUEST["menu_handler"]) $menu_handler=$_REQUEST["menu_handler"];
@ -57,54 +60,53 @@ if ($_REQUEST["menu_handler"]) $menu_handler=$_REQUEST["menu_handler"];
if (isset($_GET["action"]) && $_GET["action"] == 'update')
{
if(!$_POST['cancel'])
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'];
$db->query($sql);
$resql=$db->query($sql);
if ($resql > 0)
{
$mesg='<div class="ok">'.$langs->trans("RecordModifiedSuccessfully").'</div>';
}
$_GET["menuId"]=$_POST['menuId'];
$_GET["action"]="edit";
}
else
{
header("location: index.php?menu_handler=".$menu_handler);
header("Location: ".DOL_URL_ROOT."/admin/menus/index.php?menu_handler=".$menu_handler);
exit;
}
if($_GET['return'])
if ($_GET['return'])
{
header("location: index.php");
header("Location: ".DOL_URL_ROOT."/admin/menus/index.php?menu_handler=".$menu_handler);
exit;
}
else
{
header("location: edit.php?action=edit&menuId=".$_POST['menuId']);
exit;
}
}
if (isset($_GET["action"]) && $_GET["action"] == 'add')
{
if ($_POST['cancel'])
{
header("Location: ".DOL_URL_ROOT."/admin/menus/index.php");
header("Location: ".DOL_URL_ROOT."/admin/menus/index.php?menu_handler=".$menu_handler);
exit;
}
$langs->load("errors");
$error=0;
if (! $error && ! $_POST['handler'])
if (! $error && ! $_POST['menu_handler'])
{
$mesg='<div class="error">'.$langs->trans("ErrorFieldRequired",'handler').'</div>';
$mesg='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiest("MenuHandler")).'</div>';
$_GET["action"] = 'create';
$error++;
}
if (! $error && ! $_POST['type'])
{
$mesg='<div class="error">'.$langs->trans("ErrorFieldRequired",'type').'</div>';
$mesg='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiest("Type")).'</div>';
$_GET["action"] = 'create';
$error++;
}
@ -154,7 +156,7 @@ 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['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.=" 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)";
dolibarr_syslog("edit: insert menu entry sql=".$sql);
$result=$db->query($sql);
@ -286,7 +288,7 @@ if (isset($_GET["action"]) && $_GET["action"] == 'create')
else print '<br>';
print '<form action="./edit.php?action=add&menuId='.$_GET['menuId'].'" method="post" name="formmenucreate">';
print '<table class="border" width="100%">';
// Id
@ -317,7 +319,6 @@ if (isset($_GET["action"]) && $_GET["action"] == 'create')
print '<tr><td><b>'.$langs->trans('MenuHandler').'</b></td>';
print '<td>';
print $htmladmin->select_menu_families($menu_handler,'menu_handler',$dirleft);
//print '<input type="text" size="30" name="handler" value="'.$menu_handler.'">';
print '</td>';
print '<td>'.$langs->trans('DetailMenuHandler').'</td></tr>';
@ -331,33 +332,26 @@ if (isset($_GET["action"]) && $_GET["action"] == 'create')
// print '<input type="text" size="50" name="type" value="'.$type.'">';
print '</td><td>'.$langs->trans('DetailType').'</td></tr>';
//User
print '<tr><td><b>'.$langs->trans('MenuForUsers').'</b></td>';
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("All").'</option>';
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>';
//Level
print '<input type="hidden" size="50" name="level" value="'.($parent_level + 1).'">';
//Titre
print '<tr><td><b>'.$langs->trans('Title').'</b></td><td><input type="text" size="50" name="titre" value=""></td><td>'.$langs->trans('DetailTitre').'</td></tr>';
//URL
print '<tr><td><b>'.$langs->trans('URL').'</b></td><td><input type="text" size="50" name="url" value=""></td><td>'.$langs->trans('DetailUrl').'</td></tr>';
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="50" name="langs" value="'.$parent_langs.'"></td><td>'.$langs->trans('DetailLangs').'</td></tr>';
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>';
//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="50" name="right" value=""></td><td>'.$langs->trans('DetailRight').'</td></tr>';
//Mainmenu = group
//print '<tr><td>'.$langs->trans('Group').'</td><td><input type="text" size="50" name="mainmenu" value="'.$mainmenu.'"></td><td>'.$langs->trans('DetailMainmenu').'</td></tr>';
//Leftmenu
//print '<tr><td>'.$langs->trans('Leftmenu').'</td><td><input type="text" size="50" name="leftmenu" value=""></td><td>'.$langs->trans('DetailLeftmenu').'</td></tr>';
print '<tr><td>'.$langs->trans('Rights').'</td><td><input type="text" size="60" name="right" 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").'">';
@ -372,88 +366,71 @@ if (isset($_GET["action"]) && $_GET["action"] == 'create')
elseif (isset($_GET["action"]) && $_GET["action"] == 'edit')
{
print_titre($langs->trans("ModifMenu"),'','setup');
print '<br>';
print '<form action="./edit.php?action=update" method="post" name="formmenuedit">';
print '<table class="border" width="100%">';
$sql = "SELECT m.rowid, m.menu_handler, m.type, m.titre, m.mainmenu, m.leftmenu, m.fk_menu, m.url, m.langs, m.level, m.right, m.target, m.user, m.order";
$sql.=" FROM ".MAIN_DB_PREFIX."menu as m WHERE m.rowid = ".$_GET['menuId'];
$result = $db->query($sql);
if ($result)
{
$num = $db->num_rows();
$i = 0;
$menu = new Menubase($db);
$result=$menu->fetch($_GET['menuId']);
while($i < $num)
{
$menu = $db->fetch_object($result);
// MenuId Parent
print '<tr><td>'.$langs->trans('MenuIdParent').'</td>';
//$menu_handler
//print '<td><input type="text" size="50" name="handler" value="all"></td>';
print '<td>'.$menu->fk_menu.'</td>';
print '<td>'.$langs->trans('DetailMenuIdParent').'</td></tr>';
print '<input type="hidden" name="menuId" value="'.$_GET['menuId'].'">';
// MenuId Parent
print '<tr><td>'.$langs->trans('MenuIdParent').'</td>';
//$menu_handler
//print '<td><input type="text" size="50" name="handler" value="all"></td>';
print '<td>'.$menu->fk_menu.'</td>';
print '<td>'.$langs->trans('DetailMenuIdParent').'</td></tr>';
print '<input type="hidden" name="menuId" value="'.$_GET['menuId'].'">';
// Id
print '<tr><td>'.$langs->trans('Id').'</td><td>'.$menu->rowid.'</td><td>'.$langs->trans('DetailId').'</td></tr>';
// Id
print '<tr><td>'.$langs->trans('Id').'</td><td>'.$menu->id.'</td><td>'.$langs->trans('DetailId').'</td></tr>';
// Handler
print '<tr><td>'.$langs->trans('MenuHandler').'</td><td>'.$menu->menu_handler.'</td><td>'.$langs->trans('DetailMenuHandler').'</td></tr>';
// Handler
print '<tr><td>'.$langs->trans('MenuHandler').'</td><td>'.$menu->menu_handler.'</td><td>'.$langs->trans('DetailMenuHandler').'</td></tr>';
// user
print '<tr><td>'.$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>';
// 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>';
// 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>';
// 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="70" 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="70" name="langs" value="'.$menu->langs.'"></td><td>'.$langs->trans('DetailLangs').'</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>';
// Url
print '<tr><td>'.$langs->trans('URL').'</td><td><input type="text" size="70" name="url" value="'.$menu->url.'"></td><td>'.$langs->trans('DetailUrl').'</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>';
// 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="70" name="right" value="'.$menu->right.'"></td><td>'.$langs->trans('DetailRight').'</td></tr>';
// Leftmenu
//print '<tr><td>'.$langs->trans('Leftmenu').'</td><td><input type="text" size="70" name="leftmenu" value="'.htmlentities($menu->leftmenu).'"></td><td>'.$langs->trans('DetailLeftmenu').'</td></tr>';
// Mainmenu = group
//print '<tr><td>'.$langs->trans('Group').'</td><td><input type="text" size="70" name="mainmenu" value="'.$menu->mainmenu.'"></td><td>'.$langs->trans('DetailMainmenu').'</td></tr>';
// Bouton
print '<tr><td colspan="3" align="center"><input type="submit" class="button" name="save" value="'.$langs->trans("Save").'">';
print ' &nbsp; &nbsp; ';
print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'"></td></tr>';
$i++;
}
}
// 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="'.$menu->right.'"></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").'">';
print ' &nbsp; &nbsp; ';
print '<input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'"></td></tr>';
print '</table>';
print '</form>';
print '<br>';
if ($mesg) print $mesg.'<br>';
/*
* Lignes de contraintes

View File

@ -41,10 +41,10 @@ $mesg=$_GET["mesg"];
$menu_handler_top=eregi_replace('\.php','',$conf->global->MAIN_MENU_BARRETOP);
$menu_handler_left=eregi_replace('\.php','',$conf->global->MAIN_MENU_BARRELEFT);
$menu_handler_top=eregi_replace('_backoffice\.php','',$menu_handler_top);
$menu_handler_top=eregi_replace('_frontoffice\.php','',$menu_handler_top);
$menu_handler_left=eregi_replace('_backoffice\.php','',$menu_handler_left);
$menu_handler_left=eregi_replace('_frontoffice\.php','',$menu_handler_left);
$menu_handler_top=eregi_replace('_backoffice','',$menu_handler_top);
$menu_handler_top=eregi_replace('_frontoffice','',$menu_handler_top);
$menu_handler_left=eregi_replace('_backoffice','',$menu_handler_left);
$menu_handler_left=eregi_replace('_frontoffice','',$menu_handler_left);
$menu_handler=$menu_handler_left;

View File

@ -34,43 +34,35 @@ $langs->load("admin");
function llxHeader($head = "", $title="", $help_url='')
{
global $user, $langs;
global $conf, $user, $langs;
top_menu($head);
$menu = new Menu();
$langs->load("admin");
$langs->load("users");
$menu->add(DOL_URL_ROOT."/admin/company.php", $langs->trans("MenuCompanySetup"));
$menu->add(DOL_URL_ROOT."/admin/modules.php", $langs->trans("Modules"));
$menu->add(DOL_URL_ROOT."/admin/menus.php", $langs->trans("Menus"));
$menu->add(DOL_URL_ROOT."/admin/ihm.php", $langs->trans("GUISetup"));
$menu->add(DOL_URL_ROOT."/admin/boxes.php", $langs->trans("Boxes"));
$menu->add(DOL_URL_ROOT."/admin/delais.php",$langs->trans("Alerts"));
$menu->add(DOL_URL_ROOT."/admin/perms.php", $langs->trans("Security"));
$menu->add(DOL_URL_ROOT."/admin/mails.php", $langs->trans("EMails"));
$menuarray=array();
$menu->add(DOL_URL_ROOT."/admin/limits.php", $langs->trans("Limits"));
$menu->add(DOL_URL_ROOT."/user/home.php", $langs->trans("MenuUsersAndGroups"));
$menu->add(DOL_URL_ROOT."/admin/dict.php", $langs->trans("DictionnarySetup"));
$menu->add(DOL_URL_ROOT."/admin/const.php", $langs->trans("OtherSetup"));
$menu->add(DOL_URL_ROOT."/admin/system/", $langs->trans("System"));
if ($conf->left_menu == 'rodolphe')
{
$langs->load("admin");
$langs->load("users");
$menu = new Menu();
$menu->add(DOL_URL_ROOT."/admin/company.php", $langs->trans("MenuCompanySetup"));
$menu->add(DOL_URL_ROOT."/admin/modules.php", $langs->trans("Modules"));
$menu->add(DOL_URL_ROOT."/admin/menus.php", $langs->trans("Menus"));
$menu->add(DOL_URL_ROOT."/admin/ihm.php", $langs->trans("GUISetup"));
$menu->add(DOL_URL_ROOT."/admin/boxes.php", $langs->trans("Boxes"));
$menu->add(DOL_URL_ROOT."/admin/delais.php",$langs->trans("Alerts"));
$menu->add(DOL_URL_ROOT."/admin/perms.php", $langs->trans("Security"));
$menu->add(DOL_URL_ROOT."/admin/mails.php", $langs->trans("EMails"));
$menu->add(DOL_URL_ROOT."/admin/limits.php", $langs->trans("Limits"));
$menu->add(DOL_URL_ROOT."/user/home.php", $langs->trans("MenuUsersAndGroups"));
$menu->add(DOL_URL_ROOT."/admin/dict.php", $langs->trans("DictionnarySetup"));
$menu->add(DOL_URL_ROOT."/admin/const.php", $langs->trans("OtherSetup"));
$menu->add(DOL_URL_ROOT."/admin/system/", $langs->trans("System"));
$menu->add(DOL_URL_ROOT."/admin/tools/", $langs->trans("Tools"));
$varmenuarray=$menu->liste;
}
$menu->add(DOL_URL_ROOT."/admin/tools/", $langs->trans("Tools"));
left_menu($menu->liste, $help_url);
left_menu($varmenuarray, $help_url);
}
?>

View File

@ -159,7 +159,8 @@ class MenuLeft {
for ($i = 0 ; $i < sizeof($this->menu_array) ; $i++)
{
$alt++;
if ($this->menu_array[$i]['level']==0) {
if ($this->menu_array[$i]['level']==0)
{
if (($alt%2==0))
{
print '<div class="menu">'."\n";

View File

@ -394,6 +394,7 @@ BackToList=Back to list
GoBack=Go back
CanBeModifiedIfOk=Can be modified if valid
CanBeModifiedIfKo=Can be modified if not valid
RecordModifiedSuccessfully=Record modified successfully
AutomaticCode=Automatic code
NotManaged=Not managed
FeatureDisabled=Feature disabled

View File

@ -396,6 +396,7 @@ BackToList=Retour liste
GoBack=Retour arrière
CanBeModifiedIfOk=Peut être modifié si valide
CanBeModifiedIfKo=Peut être modifié si invalide
RecordModifiedSuccessfully=Enregistrement modifié avec succès
AutomaticCode=Création automatique du code
NotManaged=Non géré
FeatureDisabled=Fonction désactivée

View File

@ -0,0 +1,348 @@
<?php
/* Copyright (C) 2007-2008 Laurent Destailleur <eldy@users.sourceforge.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Id$
*/
/**
\file htdocs/lib/menubase.class.php
\ingroup core
\brief File of class to manage menu entries
\remarks Initialy built by build_class_from_table on 2008-01-12 14:19
*/
/**
\class Menubase
\brief Class to manage menu entries
*/
class Menubase
{
var $db; // To store db handler
var $error; // To return error code (or message)
var $errors=array(); // To return several error codes (or messages)
var $id;
var $menu_handler;
var $type;
var $mainmenu;
var $fk_menu;
var $order;
var $url;
var $target;
var $titre;
var $langs;
var $level;
var $leftmenu;
var $right;
var $user;
var $tms;
/**
* \brief Constructor
* \param DB Database handler
*/
function Menubase($DB)
{
$this->db = $DB;
return 1;
}
/**
* \brief Create in database
* \param user User that create
* \return int <0 si ko, >0 si ok
*/
function create($user)
{
global $conf, $langs;
// Clean parameters
$this->rowid=trim($this->rowid);
$this->menu_handler=trim($this->menu_handler);
$this->type=trim($this->type);
$this->mainmenu=trim($this->mainmenu);
$this->fk_menu=trim($this->fk_menu);
$this->order=trim($this->order);
$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->user=trim($this->user);
// Check parameters
// Put here code to add control on parameters values
// Insert request
$sql = "INSERT INTO ".MAIN_DB_PREFIX."menu(";
$sql.= "menu_handler,";
$sql.= "type,";
$sql.= "mainmenu,";
$sql.= "fk_menu,";
$sql.= "order,";
$sql.= "url,";
$sql.= "target,";
$sql.= "titre,";
$sql.= "langs,";
$sql.= "level,";
$sql.= "leftmenu,";
$sql.= "right,";
$sql.= "user,";
$sql.= "tms";
$sql.= ") VALUES (";
$sql.= " '".$this->menu_handler."',";
$sql.= " '".$this->type."',";
$sql.= " '".$this->mainmenu."',";
$sql.= " '".$this->fk_menu."',";
$sql.= " '".$this->order."',";
$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.= ")";
dolibarr_syslog("Menu::create sql=".$sql, LOG_DEBUG);
$resql=$this->db->query($sql);
if ($resql)
{
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."menu");
// Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('MYOBJECT_CREATE',$this,$user,$langs,$conf);
if ($result < 0) $this->errors=$interface->errors;
// Fin appel triggers
return $this->id;
}
else
{
$this->error="Error ".$this->db->lasterror();
dolibarr_syslog("Menu::create ".$this->error, LOG_ERR);
return -1;
}
}
/*
* \brief Update database
* \param user User that modify
* \param notrigger 0=no, 1=yes (no update trigger)
* \return int <0 if KO, >0 if OK
*/
function update($user=0, $notrigger=0)
{
global $conf, $langs;
// Clean parameters
$this->rowid=trim($this->rowid);
$this->menu_handler=trim($this->menu_handler);
$this->type=trim($this->type);
$this->mainmenu=trim($this->mainmenu);
$this->fk_menu=trim($this->fk_menu);
$this->order=trim($this->order);
$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->user=trim($this->user);
// Check parameters
// Put here code to add control on parameters values
// Update request
$sql = "UPDATE ".MAIN_DB_PREFIX."menu SET";
$sql.= " menu_handler='".addslashes($this->menu_handler)."',";
$sql.= " type='".$this->type."',";
$sql.= " mainmenu='".addslashes($this->mainmenu)."',";
$sql.= " fk_menu='".$this->fk_menu."',";
$sql.= " order='".$this->order."',";
$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.= " WHERE rowid=".$this->id;
dolibarr_syslog("Menu::update sql=".$sql, LOG_DEBUG);
$resql = $this->db->query($sql);
if (! $resql)
{
$this->error="Error ".$this->db->lasterror();
dolibarr_syslog("Menu::update ".$this->error, LOG_ERR);
return -1;
}
if (! $notrigger)
{
// Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf);
if ($result < 0) $this->errors=$interface->errors;
// Fin appel triggers
}
return 1;
}
/*
* \brief Load object in memory from database
* \param id id object
* \param user User that load
* \return int <0 if KO, >0 if OK
*/
function fetch($id, $user=0)
{
global $langs;
$sql = "SELECT";
$sql.= " t.rowid,";
$sql.= " t.menu_handler,";
$sql.= " t.type,";
$sql.= " t.mainmenu,";
$sql.= " t.fk_menu,";
$sql.= " t.order,";
$sql.= " t.url,";
$sql.= " t.target,";
$sql.= " t.titre,";
$sql.= " t.langs,";
$sql.= " t.level,";
$sql.= " t.leftmenu,";
$sql.= " t.right,";
$sql.= " t.user,";
$sql.= " ".$this->db->pdate('t.tms')."";
$sql.= " FROM ".MAIN_DB_PREFIX."menu as t";
$sql.= " WHERE t.rowid = ".$id;
dolibarr_syslog("Menu::fetch sql=".$sql, LOG_DEBUG);
$resql=$this->db->query($sql);
if ($resql)
{
if ($this->db->num_rows($resql))
{
$obj = $this->db->fetch_object($resql);
$this->id = $obj->rowid;
$this->menu_handler = $obj->menu_handler;
$this->type = $obj->type;
$this->mainmenu = $obj->mainmenu;
$this->fk_menu = $obj->fk_menu;
$this->order = $obj->order;
$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->user = $obj->user;
$this->tms = $obj->tms;
}
$this->db->free($resql);
return 1;
}
else
{
$this->error="Error ".$this->db->lasterror();
dolibarr_syslog("Menu::fetch ".$this->error, LOG_ERR);
return -1;
}
}
/*
* \brief Delete object in database
* \param user User that delete
* \return int <0 if KO, >0 if OK
*/
function delete($user)
{
global $conf, $langs;
$sql = "DELETE FROM ".MAIN_DB_PREFIX."menu";
$sql.= " WHERE rowid=".$this->id;
dolibarr_syslog("Menu::delete sql=".$sql);
$resql = $this->db->query($sql);
if (! $resql)
{
$this->error="Error ".$this->db->lasterror();
dolibarr_syslog("Menu::delete ".$this->error, LOG_ERR);
return -1;
}
// Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf);
if ($result < 0) $this->errors=$interface->errors;
// Fin appel triggers
return 1;
}
/**
* \brief Initialise object with example values
* \remarks id must be 0 if object instance is a specimen.
*/
function initAsSpecimen()
{
$this->id=0;
$this->menu_handler='';
$this->type='';
$this->mainmenu='';
$this->fk_menu='';
$this->order='';
$this->url='';
$this->target='';
$this->titre='';
$this->langs='';
$this->level='';
$this->leftmenu='';
$this->right='';
$this->user='';
$this->tms='';
}
}
?>

View File

@ -832,8 +832,8 @@ function left_menu($menu_array, $helppagename='', $form_search='')
$conf->left_menu='eldy_backoffice.php';
}
require_once(DOL_DOCUMENT_ROOT ."/includes/menus/barre_left/".$conf->left_menu);
$menu=new MenuLeft($db,$menu_array);
$menu->showmenu();
$menuleft=new MenuLeft($db,$menu_array);
$menuleft->showmenu();
// Affichage des zones de recherche permanantes
$addzonerecherche=0;

View File

@ -25,3 +25,11 @@ DELETE FROM llx_rights_def WHERE module = 'menudb';
ALTER table llx_boxes_def drop column name;
ALTER table llx_boxes_def add column tms timestamp;
-- Rename primary key of llx_menu
ALTER TABLE llx_menu_const drop foreign key fk_menu_const_fk_menu;
alter table llx_menu drop primary key;
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 add column tms timestamp;

View File

@ -21,25 +21,25 @@
CREATE TABLE `llx_menu` (
`rowid` int(11) NOT NULL,
rowid integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
`menu_handler` varchar(16) NOT NULL default 'auguria', -- Menu handler name
`type` enum('top','left') NOT NULL default 'left', -- Menu top or left
menu_handler varchar(16) NOT NULL, -- Menu handler name
type enum('top','left') NOT NULL, -- Menu top or left
`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
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
`url` varchar(255) NOT NULL, -- Relative (or absolute) url to go
`target` varchar(100) NULL, -- Target of Url link
url varchar(255) NOT NULL, -- Relative (or absolute) url to go
target varchar(100) NULL, -- Target of Url link
`titre` varchar(255) NOT NULL, -- Key for menu translation
`langs` varchar(100), -- Lang file to load for translation
titre varchar(255) NOT NULL, -- Key for menu translation
langs varchar(100), -- Lang file to load for translation
`level` tinyint(1), -- ???
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
`user` tinyint(4) NOT NULL default '0', -- 0 if menu for all users, 1 for external only, 2 for internal only
PRIMARY KEY (`rowid`)
leftmenu varchar(100) NULL, -- Condition to show or hide
right 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;