* Copyright (C) 2009 Regis Houssin * Copyright (C) 2008-2013 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 3 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, see . */ /** * \file htdocs/core/menus/standard/auguria_menu.php * \brief Menu auguria manager */ /** * Class to manage menu Auguria */ class MenuManager { var $db; var $type_user; // Put 0 for internal users, 1 for external users var $atarget=""; // To store default target to use onto links var $name="auguria"; var $menu_array; var $menu_array_after; var $tabMenu; /** * Constructor * * @param DoliDB $db Database handler * @param int $type_user Type of user */ function __construct($db, $type_user) { $this->type_user=$type_user; $this->db=$db; } /** * Load this->tabMenu * * @param string $forcemainmenu To force mainmenu to load * @param string $forceleftmenu To force leftmenu to load * @return void */ function loadMenu($forcemainmenu='',$forceleftmenu='') { global $conf, $user, $langs; // On sauve en session le menu principal choisi if (isset($_GET["mainmenu"])) $_SESSION["mainmenu"]=$_GET["mainmenu"]; if (isset($_GET["idmenu"])) $_SESSION["idmenu"]=$_GET["idmenu"]; // Read mainmenu and leftmenu that define which menu to show 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 defini par le lien $mainmenu=isset($_SESSION["mainmenu"])?$_SESSION["mainmenu"]:''; } if (! empty($forcemainmenu)) $mainmenu=$forcemainmenu; if (isset($_GET["leftmenu"])) { // On sauve en session le menu principal choisi $leftmenu=$_GET["leftmenu"]; $_SESSION["leftmenu"]=$leftmenu; if ($_SESSION["leftmenuopened"]==$leftmenu) // To collapse { //$leftmenu=""; $_SESSION["leftmenuopened"]=""; } else { $_SESSION["leftmenuopened"]=$leftmenu; } } else { // On va le chercher en session si non defini par le lien $leftmenu=isset($_SESSION["leftmenu"])?$_SESSION["leftmenu"]:''; } if (! empty($forceleftmenu)) $leftmenu=$forceleftmenu; require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php'; $tabMenu=array(); $menuArbo = new Menubase($this->db,'auguria'); $menuArbo->menuLoad($mainmenu, $leftmenu, $this->type_user, 'auguria', $tabMenu); $this->tabMenu=$tabMenu; } /** * Show menu * * @param string $mode 'top', 'left', 'jmobile' (used to get full xml ul/li menu) * @param array $moredata An array with more data to output * @return int 0 or nb of top menu entries if $mode = 'topnb' */ function showmenu($mode, $moredata=null) { global $conf, $langs, $user; require_once DOL_DOCUMENT_ROOT.'/core/menus/standard/auguria.lib.php'; if ($this->type_user == 1) { $conf->global->MAIN_SEARCHFORM_SOCIETE_DISABLED=1; $conf->global->MAIN_SEARCHFORM_CONTACT_DISABLED=1; } require_once DOL_DOCUMENT_ROOT.'/core/class/menu.class.php'; $this->menu=new Menu(); if ($mode == 'top') print_auguria_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu,0,$mode); if ($mode == 'left') print_left_auguria_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$this->menu,0,'','',$moredata); if ($mode == 'topnb') { print_auguria_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu,1,$mode); return $this->menu->getNbOfVisibleMenuEntries(); } if ($mode == 'jmobile') // Used to get menu in xml ul/li { print_auguria_menu($this->db,$this->atarget,$this->type_user,$this->tabMenu,$this->menu,1,$mode); // $this->menu->liste is top menu //var_dump($this->menu->liste);exit; $lastlevel = array(); print ''."\n"; foreach($this->menu->liste as $key => $val) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' { print ''."\n"; } } unset($this->menu); } }