* Copyright (C) 2007-2008 Laurent Destailleur * * 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. */ /** \file htdocs/includes/menus/barre_left/auguria_frontoffice.php \brief Gestionnaire du menu du gauche Auguria \version $Id$ \remarks La construction d'un gestionnaire pour le menu de gauche est simple: \remarks A l'aide d'un objet $newmenu=new Menu() et des méthode add et add_submenu, \remarks définir la liste des entrées menu à faire apparaitre. \remarks En fin de code, mettre la ligne $menu=$newmenu->liste. \remarks Ce qui est défini dans un tel gestionnaire sera alors prioritaire sur \remarks les définitions de menu des fichiers pre.inc.php */ /** \class MenuLeft \brief Classe permettant la gestion du menu du gauche Auguria */ class MenuLeft { var $require_top=array("auguria_frontoffice"); // Si doit etre en phase avec un gestionnaire de menu du haut particulier var $newmenu; var $menuArbo; var $overwritemenufor = array(); var $leftmenu; /** * \brief Constructeur * \param db Handler d'acc�s base de donn�e * \param menu_array Tableau des entr�e de menu d�fini dans les fichier pre.inc.php */ function MenuLeft($db,&$menu_array) { $this->db=$db; $this->menu_array=$menu_array; $this->newmenu = new Menu(); } /** * \brief Affiche le menu */ function showmenu() { global $user,$conf,$langs,$dolibarr_main_db_name; if (! session_id()) { session_name("DOLSESSID_".$dolibarr_main_db_name); session_start(); // En mode authentification PEAR, la session a d�j� �t� ouverte } // On r�cup�re mainmenu et leftmenu qui d�finissent le menu � afficher if (isset($_GET["mainmenu"])) { // On sauve en session le menu principal choisi $mainmenu=$_GET["mainmenu"]; $_SESSION["mainmenu"]=$mainmenu; $_SESSION["leftmenuopened"]=""; } else { // On va le chercher en session si non d�fini par le lien $mainmenu=$_SESSION["mainmenu"]; } if (isset($_GET["leftmenu"])) { // On sauve en session le menu principal choisi $this->leftmenu=$_GET["leftmenu"]; $_SESSION["leftmenu"]=$this->leftmenu; if ($_SESSION["leftmenuopened"]==$this->leftmenu) { //$leftmenu=""; $_SESSION["leftmenuopened"]=""; } else { $_SESSION["leftmenuopened"]=$this->leftmenu; } } else { // On va le chercher en session si non d�fini par le lien $this->leftmenu=isset($_SESSION["leftmenu"])?$_SESSION["leftmenu"]:''; } /** * On definit newmenu en fonction de mainmenu et leftmenu * ------------------------------------------------------ */ if ($mainmenu) { require_once(DOL_DOCUMENT_ROOT."/core/menubase.class.php"); $menuArbo = new Menubase($this->db,'auguria','left'); $this->overwritemenufor = $menuArbo->listeMainmenu(); $this->newmenu = $menuArbo->menuLeftCharger($this->newmenu,$mainmenu,$this->leftmenu,1,'auguria'); /* * Menu AUTRES (Pour les menus du haut qui ne serait pas g�r�s) */ if ($mainmenu && ! in_array($mainmenu,$this->overwritemenufor)) { $mainmenu=""; } } /** * Si on est sur un cas g�r� de surcharge du menu, on ecrase celui par defaut */ if ($mainmenu) { $this->menu_array=$this->newmenu->liste; } // Affichage du menu $alt=0; if (! sizeof($this->menu_array)) { print '
'."\n"; print $langs->trans("NoMenu"); print '
'; } else { $contenu = 0; for ($i = 0 ; $i < sizeof($this->menu_array) ; $i++) { $alt++; if ($this->menu_array[$i]['level']==0) { if (($alt%2==0)) { print '
'."\n"; } else { print '
'."\n"; } } // Place tabulation $tabstring=''; $tabul=($this->menu_array[$i]['level'] - 1); if ($tabul > 0) { for ($j=0; $j < $tabul; $j++) { $tabstring.='    '; } } // Menu niveau 0 if ($this->menu_array[$i]['level']==0) { if ($contenu == 1) print ''; if ($this->menu_array[$i]['enabled']) { print ''; } else { print ''; } $contenu = 0; } // Menu niveau > 0 if ($this->menu_array[$i]['level'] > 0) { if ($this->menu_array[$i]['level']==1) $contenu = 1; if ($this->menu_array[$i]['enabled']) { print ''; } else { print ''; } } if ($i == (sizeof($this->menu_array)-1) || $this->menu_array[$i+1]['level']==0) { print "
\n"; } } if ($contenu == 1) print ''; } } } ?>