--- /tmp/dsg/dolibarr/htdocs/core/menus/standard/github_auguria.lib.php +++ /tmp/dsg/dolibarr/htdocs/core/menus/standard/client_auguria.lib.php @@ -59,14 +59,14 @@ global $usemenuhider; $usemenuhider = 1; - // Show/Hide vertical menu. The hamburger icon for .menuhider action. - if ($mode != 'jmobile' && $mode != 'topnb' && $usemenuhider && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) - { - $showmode = 1; - $classname = 'class="tmenu menuhider"'; - $idsel = 'menu'; - - $menu->add('#', (!empty($conf->global->THEME_TOPMENU_DISABLE_IMAGE) ? '<span class="fa fa-bars"></span>' : ''), 0, $showmode, $atarget, "xxx", '', 0, $id, $idsel, $classname); + // Show/Hide vertical menu. The hamburger icon for .menuhider action. + if ($mode != 'jmobile' && $mode != 'topnb' && $usemenuhider && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) + { + $showmode = 1; + $classname = 'class="tmenu menuhider"'; + $idsel = 'menu'; + + $menu->add('#', (!empty($conf->global->THEME_TOPMENU_DISABLE_IMAGE) ? '<span class="fa fa-bars"></span>' : ''), 0, $showmode, $atarget, "xxx", '', 0, $id, $idsel, $classname); } $num = count($newTabMenu); @@ -74,29 +74,28 @@ { $idsel = (empty($newTabMenu[$i]['mainmenu']) ? 'none' : $newTabMenu[$i]['mainmenu']); - $shorturl = ''; - $showmode = dol_auguria_showmenu($type_user, $newTabMenu[$i], $listofmodulesforexternal); - if ($showmode == 1) { + if ($showmode == 1) + { $newTabMenu[$i]['url'] = make_substitutions($newTabMenu[$i]['url'], $substitarray); $url = $shorturl = $newTabMenu[$i]['url']; if (!preg_match("/^(http:\/\/|https:\/\/)/i", $newTabMenu[$i]['url'])) { - $tmp = explode('?', $newTabMenu[$i]['url'], 2); + $tmp = explode('?', $newTabMenu[$i]['url'], 2); $url = $shorturl = $tmp[0]; $param = (isset($tmp[1]) ? $tmp[1] : ''); // Complete param to force leftmenu to '' to close open menu when we click on a link with no leftmenu defined. - if ((!preg_match('/mainmenu/i', $param)) && (!preg_match('/leftmenu/i', $param)) && !empty($newTabMenu[$i]['url'])) - { - $param .= ($param ? '&' : '').'mainmenu='.$newTabMenu[$i]['mainmenu'].'&leftmenu='; - } - if ((!preg_match('/mainmenu/i', $param)) && (!preg_match('/leftmenu/i', $param)) && empty($newTabMenu[$i]['url'])) - { - $param .= ($param ? '&' : '').'leftmenu='; - } + if ((!preg_match('/mainmenu/i', $param)) && (!preg_match('/leftmenu/i', $param)) && !empty($newTabMenu[$i]['url'])) + { + $param .= ($param ? '&' : '').'mainmenu='.$newTabMenu[$i]['mainmenu'].'&leftmenu='; + } + if ((!preg_match('/mainmenu/i', $param)) && (!preg_match('/leftmenu/i', $param)) && empty($newTabMenu[$i]['url'])) + { + $param .= ($param ? '&' : '').'leftmenu='; + } //$url.="idmenu=".$newTabMenu[$i]['rowid']; // Already done by menuLoad $url = dol_buildpath($url, 1).($param ? '?'.$param : ''); //$shorturl = $shorturl.($param?'?'.$param:''); @@ -108,20 +107,17 @@ // TODO Find a generic solution if (preg_match('/search_project_user=__search_project_user__/', $shorturl)) { - $search_project_user = GETPOST('search_project_user', 'int'); - if ($search_project_user) $shorturl = preg_replace('/search_project_user=__search_project_user__/', 'search_project_user='.$search_project_user, $shorturl); - else $shorturl = preg_replace('/search_project_user=__search_project_user__/', '', $shorturl); + $search_project_user = GETPOST('search_project_user', 'int'); + if ($search_project_user) $shorturl = preg_replace('/search_project_user=__search_project_user__/', 'search_project_user='.$search_project_user, $shorturl); + else $shorturl = preg_replace('/search_project_user=__search_project_user__/', '', $shorturl); } // Define the class (top menu selected or not) if (!empty($_SESSION['idmenu']) && $newTabMenu[$i]['rowid'] == $_SESSION['idmenu']) $classname = 'class="tmenusel"'; elseif (!empty($_SESSION["mainmenu"]) && $newTabMenu[$i]['mainmenu'] == $_SESSION["mainmenu"]) $classname = 'class="tmenusel"'; else $classname = 'class="tmenu"'; - } elseif ($showmode == 2) { - $classname = 'class="tmenu"'; - } else { - $classname = ''; - } + } + elseif ($showmode == 2) $classname = 'class="tmenu"'; $menu->add($shorturl, $newTabMenu[$i]['titre'], 0, $showmode, ($newTabMenu[$i]['target'] ? $newTabMenu[$i]['target'] : $atarget), ($newTabMenu[$i]['mainmenu'] ? $newTabMenu[$i]['mainmenu'] : $newTabMenu[$i]['rowid']), ($newTabMenu[$i]['leftmenu'] ? $newTabMenu[$i]['leftmenu'] : ''), $newTabMenu[$i]['position'], $id, $idsel, $classname); } @@ -149,7 +145,8 @@ { $urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_mini); }*/ - else { + else + { $urllogo = DOL_URL_ROOT.'/theme/dolibarr_512x512_white.png'; $logoContainerAdditionalClass = ''; } @@ -167,8 +164,8 @@ if (empty($noout)) { foreach ($menu->liste as $menuval) { print_start_menu_entry_auguria($menuval['idsel'], $menuval['classname'], $menuval['enabled']); - print_text_menu_entry_auguria($menuval['titre'], $menuval['enabled'], ($menuval['url'] != '#' ?DOL_URL_ROOT:'').$menuval['url'], $menuval['id'], $menuval['idsel'], $menuval['classname'], ($menuval['target'] ? $menuval['target'] : $atarget)); - print_end_menu_entry_auguria($menuval['enabled']); + print_text_menu_entry_auguria($menuval['titre'], $menuval['enabled'], ($menuval['url'] != '#' ?DOL_URL_ROOT:'').$menuval['url'], $menuval['id'], $menuval['idsel'], $menuval['classname'], ($menuval['target'] ? $menuval['target'] : $atarget)); + print_end_menu_entry_auguria($menuval['enabled']); } } @@ -190,7 +187,7 @@ */ function print_start_menu_array_auguria() { - global $conf; + global $conf; print '<div class="tmenudiv">'; print '<ul role="navigation" class="tmenu"'.(empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) ? '' : ' title="Top menu"').'>'; @@ -307,22 +304,22 @@ if (is_array($moredata) && !empty($moredata['searchform'])) // searchform can contains select2 code or link to show old search form or link to switch on search page { - print "\n"; - print "<!-- Begin SearchForm -->\n"; - print '<div id="blockvmenusearch" class="blockvmenusearch">'."\n"; - print $moredata['searchform']; - print '</div>'."\n"; - print "<!-- End SearchForm -->\n"; + print "\n"; + print "<!-- Begin SearchForm -->\n"; + print '<div id="blockvmenusearch" class="blockvmenusearch">'."\n"; + print $moredata['searchform']; + print '</div>'."\n"; + print "<!-- End SearchForm -->\n"; } if (is_array($moredata) && !empty($moredata['bookmarks'])) { - print "\n"; - print "<!-- Begin Bookmarks -->\n"; - print '<div id="blockvmenubookmarks" class="blockvmenubookmarks">'."\n"; - print $moredata['bookmarks']; - print '</div>'."\n"; - print "<!-- End Bookmarks -->\n"; + print "\n"; + print "<!-- Begin Bookmarks -->\n"; + print '<div id="blockvmenubookmarks" class="blockvmenubookmarks">'."\n"; + print $moredata['bookmarks']; + print '</div>'."\n"; + print "<!-- End Bookmarks -->\n"; } $substitarray = getCommonSubstitutionArray($langs, 0, null, null); @@ -334,7 +331,7 @@ // We update newmenu for special dynamic menus if ($conf->banque->enabled && $user->rights->banque->lire && $mainmenu == 'bank') // Entry for each bank account { - include_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // Required for to get Account::TYPE_CASH for example + include_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // Required for to get Account::TYPE_CASH for example $sql = "SELECT rowid, label, courant, rappro, courant"; $sql .= " FROM ".MAIN_DB_PREFIX."bank_account"; @@ -360,7 +357,8 @@ } $i++; } - } else dol_print_error($db); + } + else dol_print_error($db); $db->free($resql); } @@ -390,16 +388,13 @@ $nature = ''; // Must match array $sourceList defined into journals_list.php - if ($objp->nature == 2 && !empty($conf->facture->enabled) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_SALES)) $nature = "sells"; - if ($objp->nature == 3 - && (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_invoice->enabled)) - && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES)) - $nature = "purchases"; - if ($objp->nature == 4 && !empty($conf->banque->enabled)) $nature = "bank"; - if ($objp->nature == 5 && !empty($conf->expensereport->enabled) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS)) $nature = "expensereports"; - if ($objp->nature == 1) $nature = "various"; - if ($objp->nature == 8) $nature = "inventory"; - if ($objp->nature == 9) $nature = "hasnew"; + if ($objp->nature == 2 && ! empty($conf->facture->enabled)) $nature="sells"; + if ($objp->nature == 3 && (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_invoice->enabled))) $nature="purchases"; + if ($objp->nature == 4 && ! empty($conf->banque->enabled)) $nature="bank"; + if ($objp->nature == 5 && ! empty($conf->expensereport->enabled)) $nature="expensereports"; + if ($objp->nature == 1) $nature="various"; + if ($objp->nature == 8) $nature="inventory"; + if ($objp->nature == 9) $nature="hasnew"; // To enable when page exists if (empty($conf->global->ACCOUNTANCY_SHOW_DEVELOP_JOURNAL)) @@ -409,17 +404,20 @@ if ($nature) { - $langs->load('accountancy'); - $journallabel = $langs->transnoentities($objp->label); // Labels in this table are set by loading llx_accounting_abc.sql. Label can be 'ACCOUNTING_SELL_JOURNAL', 'InventoryJournal', ... - $newmenu->add('/accountancy/journal/'.$nature.'journal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal='.$objp->rowid, $journallabel, 2, $user->rights->accounting->comptarapport->lire); + $langs->load('accountancy'); + $journallabel = $langs->transnoentities($objp->label); // Labels in this table are set by loading llx_accounting_abc.sql. Label can be 'ACCOUNTING_SELL_JOURNAL', 'InventoryJournal', ... + $newmenu->add('/accountancy/journal/'.$nature.'journal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal='.$objp->rowid, $journallabel, 2, $user->rights->accounting->comptarapport->lire); } $i++; } - } else { + } + else + { // Should not happend. Entries are added $newmenu->add('', $langs->trans("NoJournalDefined"), 2, $user->rights->accounting->comptarapport->lire); } - } else dol_print_error($db); + } + else dol_print_error($db); $db->free($resql); } @@ -470,12 +468,14 @@ $lastopened = true; for ($j = ($i + 1); $j < $num; $j++) { - if (empty($menu_array[$j]['level'])) $lastopened = false; + if (empty($menu_array[$j]['level'])) $lastopened = false; } if ($altok % 2 == 0) { print '<div class="blockvmenu blockvmenuimpair'.$invert.($lastopened ? ' blockvmenulast' : '').($altok == 1 ? ' blockvmenufirst' : '').'">'."\n"; - } else { + } + else + { print '<div class="blockvmenu blockvmenupair'.$invert.($lastopened ? ' blockvmenulast' : '').($altok == 1 ? ' blockvmenufirst' : '').'">'."\n"; } } @@ -533,12 +533,15 @@ else print '</span>'; print '</div>'."\n"; $lastlevel0 = 'enabled'; - } elseif ($showmenu) // Not enabled but visible (so greyed) + } + elseif ($showmenu) // Not enabled but visible (so greyed) { print '<div class="menu_titre">'.$tabstring.'<font class="vmenudisabled">'.$menu_array[$i]['titre'].'</font></div>'."\n"; $lastlevel0 = 'greyed'; - } else { - $lastlevel0 = 'hidden'; + } + else + { + $lastlevel0 = 'hidden'; } if ($showmenu) { @@ -556,14 +559,15 @@ { print '<div class="menu_contenu'.$cssmenu.'">'.$tabstring; if ($shorturlwithoutparam) print '<a class="vsmenu" title="'.dol_escape_htmltag($menu_array[$i]['titre']).'" href="'.$url.'"'.($menu_array[$i]['target'] ? ' target="'.$menu_array[$i]['target'].'"' : '').'>'; - else print '<span class="vsmenu" title="'.dol_escape_htmltag($menu_array[$i]['titre']).'">'; + else print '<span class="vsmenu">'; print $menu_array[$i]['titre']; if ($shorturlwithoutparam) print '</a>'; else print '</span>'; // If title is not pure text and contains a table, no carriage return added if (!strstr($menu_array[$i]['titre'], '<table')) print '<br>'; print '</div>'."\n"; - } elseif ($showmenu && $lastlevel0 == 'enabled') // Not enabled but visible (so greyed), except if parent was not enabled. + } + elseif ($showmenu && $lastlevel0 == 'enabled') // Not enabled but visible (so greyed), except if parent was not enabled. { print '<div class="menu_contenu'.$cssmenu.'">'.$tabstring.'<font class="vsmenudisabled vsmenudisabledmargin">'.$menu_array[$i]['titre'].'</font><br></div>'."\n"; } --- /tmp/dsg/dolibarr/htdocs/core/menus/standard/github_auguria_menu.php +++ /tmp/dsg/dolibarr/htdocs/core/menus/standard/client_auguria_menu.php @@ -29,31 +29,31 @@ class MenuManager { /** - * @var DoliDB Database handler. - */ - public $db; - - public $type_user; // Put 0 for internal users, 1 for external users - public $atarget = ""; // To store default target to use onto links - public $name = "auguria"; - - public $menu_array; - public $menu_array_after; - - public $tabMenu; - - - /** - * Constructor - * + * @var DoliDB Database handler. + */ + public $db; + + public $type_user; // Put 0 for internal users, 1 for external users + public $atarget = ""; // To store default target to use onto links + public $name = "auguria"; + + public $menu_array; + public $menu_array_after; + + public $tabMenu; + + + /** + * Constructor + * * @param DoliDB $db Database handler - * @param int $type_user Type of user - */ - public function __construct($db, $type_user) - { - $this->type_user = $type_user; - $this->db = $db; - } + * @param int $type_user Type of user + */ + public function __construct($db, $type_user) + { + $this->type_user = $type_user; + $this->db = $db; + } /** @@ -65,252 +65,270 @@ */ public function loadMenu($forcemainmenu = '', $forceleftmenu = '') { - global $conf, $user, $langs; + global $conf, $user, $langs; // On sauve en session le menu principal choisi - if (GETPOSTISSET("mainmenu")) $_SESSION["mainmenu"] = GETPOST("mainmenu", 'aZ09'); - if (GETPOSTISSET("idmenu")) $_SESSION["idmenu"] = GETPOST("idmenu", 'int'); - - // Read mainmenu and leftmenu that define which menu to show - if (GETPOSTISSET("mainmenu")) - { - // On sauve en session le menu principal choisi - $mainmenu = GETPOST("mainmenu", 'aZ09'); - $_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 (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 (GETPOSTISSET("leftmenu")) - { - // On sauve en session le menu principal choisi - $leftmenu = GETPOST("leftmenu", 'aZ09'); - $_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; - //var_dump($tabMenu); - - //if ($forcemainmenu == 'all') { var_dump($this->tabMenu); exit; } + 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; + //var_dump($tabMenu); + + //if ($forcemainmenu == 'all') { var_dump($this->tabMenu); exit; } } - /** - * Show menu. - * Menu defined in sql tables were stored into $this->tabMenu BEFORE this is called. - * - * @param string $mode 'top', 'topnb', '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' + /** + * Show menu. + * Menu defined in sql tables were stored into $this->tabMenu BEFORE this is called. + * + * @param string $mode 'top', 'topnb', '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' */ public 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; - } + 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 (empty($conf->global->MAIN_MENU_INVERT)) - { - 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); - } else { - $conf->global->MAIN_SHOW_LOGO = 0; - if ($mode == 'top') print_left_auguria_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $this->menu, 0); - if ($mode == 'left') print_auguria_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 0, $mode); - } + $this->menu = new Menu(); + + if (empty($conf->global->MAIN_MENU_INVERT)) + { + 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); + } + else + { + $conf->global->MAIN_SHOW_LOGO = 0; + if ($mode == 'top') print_left_auguria_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $this->menu, 0); + if ($mode == 'left') print_auguria_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 0, $mode); + } if ($mode == 'topnb') { - print_auguria_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 1, $mode); - return $this->menu->getNbOfVisibleMenuEntries(); + 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 '<!-- Generate menu list from menu handler '.$this->name.' -->'."\n"; - foreach ($this->menu->liste as $key => $val) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' - { - print '<ul class="ulmenu" data-inset="true">'; - print '<li class="lilevel0">'; - if ($val['enabled'] == 1) - { - $substitarray = array('__LOGIN__' => $user->login, '__USER_ID__' => $user->id, '__USER_SUPERVISOR_ID__' => $user->fk_user); - $substitarray['__USERID__'] = $user->id; // For backward compatibility - $val['url'] = make_substitutions($val['url'], $substitarray); - - $relurl = dol_buildpath($val['url'], 1); - $canonurl = preg_replace('/\?.*$/', '', $val['url']); - - print '<a class="alilevel0" href="#">'; + 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 '<!-- Generate menu list from menu handler '.$this->name.' -->'."\n"; + foreach ($this->menu->liste as $key => $val) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' + { + print '<ul class="ulmenu" data-inset="true">'; + print '<li class="lilevel0">'; + if ($val['enabled'] == 1) + { + $substitarray = array('__LOGIN__' => $user->login, '__USER_ID__' => $user->id, '__USER_SUPERVISOR_ID__' => $user->fk_user); + $substitarray['__USERID__'] = $user->id; // For backward compatibility + $val['url'] = make_substitutions($val['url'], $substitarray); + + $relurl = dol_buildpath($val['url'], 1); + $canonurl = preg_replace('/\?.*$/', '', $val['url']); + + print '<a class="alilevel0" href="#">'; // Add font-awesome if ($val['level'] == 0 && $val['mainmenu'] == 'home') print '<span class="fa fa-home fa-fw paddingright" aria-hidden="true"></span>'; print $val['titre']; - print '</a>'."\n"; - - // Search submenu fot this mainmenu entry - $tmpmainmenu = $val['mainmenu']; - $tmpleftmenu = 'all'; - $submenu = new Menu(); - print_left_auguria_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $submenu, 1, $tmpmainmenu, $tmpleftmenu); - $nexturl = dol_buildpath($submenu->liste[0]['url'], 1); - - $canonrelurl = preg_replace('/\?.*$/', '', $relurl); - $canonnexturl = preg_replace('/\?.*$/', '', $nexturl); - //var_dump($canonrelurl); - //var_dump($canonnexturl); - print '<ul>'."\n"; - if (($canonrelurl != $canonnexturl && !in_array($val['mainmenu'], array('tools'))) - || (strpos($canonrelurl, '/product/index.php') !== false || strpos($canonrelurl, '/compta/bank/list.php') !== false)) + print '</a>'."\n"; + + // Search submenu fot this mainmenu entry + $tmpmainmenu = $val['mainmenu']; + $tmpleftmenu = 'all'; + $submenu = new Menu(); + print_left_auguria_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $submenu, 1, $tmpmainmenu, $tmpleftmenu); + $nexturl = dol_buildpath($submenu->liste[0]['url'], 1); + + $canonrelurl = preg_replace('/\?.*$/', '', $relurl); + $canonnexturl = preg_replace('/\?.*$/', '', $nexturl); + //var_dump($canonrelurl); + //var_dump($canonnexturl); + print '<ul>'."\n"; + if (($canonrelurl != $canonnexturl && !in_array($val['mainmenu'], array('tools'))) + || (strpos($canonrelurl, '/product/index.php') !== false || strpos($canonrelurl, '/compta/bank/list.php') !== false)) { // We add sub entry print str_pad('', 1).'<li class="lilevel1 ui-btn-icon-right ui-btn">'; // ui-btn to highlight on clic print '<a href="'.$relurl.'">'; - if ($langs->trans(ucfirst($val['mainmenu'])."Dashboard") == ucfirst($val['mainmenu'])."Dashboard") // No translation - { - if (in_array($val['mainmenu'], array('cashdesk', 'externalsite', 'website', 'collab'))) print $langs->trans("Access"); - else print $langs->trans("Dashboard"); - } else print $langs->trans(ucfirst($val['mainmenu'])."Dashboard"); + if ($langs->trans(ucfirst($val['mainmenu'])."Dashboard") == ucfirst($val['mainmenu'])."Dashboard") // No translation + { + if (in_array($val['mainmenu'], array('cashdesk', 'externalsite', 'website', 'collab'))) print $langs->trans("Access"); + else print $langs->trans("Dashboard"); + } + else print $langs->trans(ucfirst($val['mainmenu'])."Dashboard"); print '</a>'; print '</li>'."\n"; - } - - if ($val['level'] == 0) + } + + if ($val['level'] == 0) { - if ($val['enabled']) - { - $lastlevel[0] = 'enabled'; - } elseif ($showmenu) // Not enabled but visible (so greyed) - { - $lastlevel[0] = 'greyed'; - } else { - $lastlevel[0] = 'hidden'; - } + if ($val['enabled']) + { + $lastlevel[0] = 'enabled'; + } + elseif ($showmenu) // Not enabled but visible (so greyed) + { + $lastlevel[0] = 'greyed'; + } + else + { + $lastlevel[0] = 'hidden'; + } } $lastlevel2 = array(); foreach ($submenu->liste as $key2 => $val2) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' - { + { $showmenu = true; if (!empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($val2['enabled'])) $showmenu = false; - // If at least one parent is not enabled, we do not show any menu of all children + // If at least one parent is not enabled, we do not show any menu of all children if ($val2['level'] > 0) { - $levelcursor = $val2['level'] - 1; - while ($levelcursor >= 0) - { - if ($lastlevel2[$levelcursor] != 'enabled') $showmenu = false; - $levelcursor--; - } + $levelcursor = $val2['level'] - 1; + while ($levelcursor >= 0) + { + if ($lastlevel2[$levelcursor] != 'enabled') $showmenu = false; + $levelcursor--; + } } if ($showmenu) // Visible (option to hide when not allowed is off or allowed) - { - $substitarray = array('__LOGIN__' => $user->login, '__USER_ID__' => $user->id, '__USER_SUPERVISOR_ID__' => $user->fk_user); - $substitarray['__USERID__'] = $user->id; // For backward compatibility - $val2['url'] = make_substitutions($val2['url'], $substitarray); // Make also substitution of __(XXX)__ and __[XXX]__ - - if (!preg_match("/^(http:\/\/|https:\/\/)/i", $val2['url'])) - { - $relurl2 = dol_buildpath($val2['url'], 1); - } else { - $relurl2 = $val2['url']; - } - $canonurl2 = preg_replace('/\?.*$/', '', $val2['url']); - //var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']); - if (in_array($canonurl2, array('/admin/index.php', '/admin/tools/index.php', '/core/tools.php'))) $relurl2 = ''; - - $disabled = ''; - if (!$val2['enabled']) - { - $disabled = " vsmenudisabled"; - } - - print str_pad('', $val2['level'] + 1); - print '<li class="lilevel'.($val2['level'] + 1); - if ($val2['level'] == 0) print ' ui-btn-icon-right ui-btn'; // ui-btn to highlight on clic - print $disabled.'">'; // ui-btn to highlight on clic - if ($relurl2) - { - if ($val2['enabled']) // Allowed - { - print '<a href="'.$relurl2.'"'; - //print ' data-ajax="false"'; - print '>'; - $lastlevel2[$val2['level']] = 'enabled'; - } else // Not allowed but visible (greyed) - { - print '<a href="#" class="vsmenudisabled">'; - $lastlevel2[$val2['level']] = 'greyed'; - } - } else { - if ($val2['enabled']) // Allowed - { - $lastlevel2[$val2['level']] = 'enabled'; - } else { - $lastlevel2[$val2['level']] = 'greyed'; - } - } - print $val2['titre']; - if ($relurl2) - { - if ($val2['enabled']) // Allowed - print '</a>'; - else print '</a>'; - } - print '</li>'."\n"; - } - } - //var_dump($submenu); - print '</ul>'; - } - if ($val['enabled'] == 2) - { - print '<font class="vsmenudisabled">'.$val['titre'].'</font>'; - } - print '</li>'; - print '</ul>'."\n"; - } - } - - unset($this->menu); - - //print 'xx'.$mode; - return 0; - } + { + $substitarray = array('__LOGIN__' => $user->login, '__USER_ID__' => $user->id, '__USER_SUPERVISOR_ID__' => $user->fk_user); + $substitarray['__USERID__'] = $user->id; // For backward compatibility + $val2['url'] = make_substitutions($val2['url'], $substitarray); // Make also substitution of __(XXX)__ and __[XXX]__ + + if (!preg_match("/^(http:\/\/|https:\/\/)/i", $val2['url'])) + { + $relurl2 = dol_buildpath($val2['url'], 1); + } + else + { + $relurl2 = $val2['url']; + } + $canonurl2 = preg_replace('/\?.*$/', '', $val2['url']); + //var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']); + if (in_array($canonurl2, array('/admin/index.php', '/admin/tools/index.php', '/core/tools.php'))) $relurl2 = ''; + + $disabled = ''; + if (!$val2['enabled']) + { + $disabled = " vsmenudisabled"; + } + + print str_pad('', $val2['level'] + 1); + print '<li class="lilevel'.($val2['level'] + 1); + if ($val2['level'] == 0) print ' ui-btn-icon-right ui-btn'; // ui-btn to highlight on clic + print $disabled.'">'; // ui-btn to highlight on clic + if ($relurl2) + { + if ($val2['enabled']) // Allowed + { + print '<a href="'.$relurl2.'"'; + //print ' data-ajax="false"'; + print '>'; + $lastlevel2[$val2['level']] = 'enabled'; + } + else // Not allowed but visible (greyed) + { + print '<a href="#" class="vsmenudisabled">'; + $lastlevel2[$val2['level']] = 'greyed'; + } + } + else + { + if ($val2['enabled']) // Allowed + { + $lastlevel2[$val2['level']] = 'enabled'; + } + else + { + $lastlevel2[$val2['level']] = 'greyed'; + } + } + print $val2['titre']; + if ($relurl2) + { + if ($val2['enabled']) // Allowed + print '</a>'; + else + print '</a>'; + } + print '</li>'."\n"; + } + } + //var_dump($submenu); + print '</ul>'; + } + if ($val['enabled'] == 2) + { + print '<font class="vsmenudisabled">'.$val['titre'].'</font>'; + } + print '</li>'; + print '</ul>'."\n"; + } + } + + unset($this->menu); + + //print 'xx'.$mode; + return 0; + } } --- /tmp/dsg/dolibarr/htdocs/core/menus/standard/github_eldy.lib.php +++ /tmp/dsg/dolibarr/htdocs/core/menus/standard/client_eldy.lib.php @@ -54,22 +54,21 @@ $substitarray = getCommonSubstitutionArray($langs, 0, null, null); - if (empty($noout)) { - print_start_menu_array(); + if (empty($noout)) print_start_menu_array(); + + $usemenuhider = 1; + + // Show/Hide vertical menu. The hamburger icon for .menuhider action. + if ($mode != 'jmobile' && $mode != 'topnb' && $usemenuhider && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) + { + $showmode = 1; + $classname = 'class="tmenu menuhider"'; + $idsel = 'menu'; + + $menu->add('#', (!empty($conf->global->THEME_TOPMENU_DISABLE_IMAGE) ? '<span class="fa fa-bars"></span>' : ''), 0, $showmode, $atarget, "xxx", '', 0, $id, $idsel, $classname); } - $usemenuhider = 1; - - // Show/Hide vertical menu. The hamburger icon for .menuhider action. - if ($mode != 'jmobile' && $mode != 'topnb' && $usemenuhider && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { - $showmode = 1; - $classname = 'class="tmenu menuhider"'; - $idsel = 'menu'; - - $menu->add('#', (!empty($conf->global->THEME_TOPMENU_DISABLE_IMAGE) ? '<span class="fa fa-bars"></span>' : ''), 0, $showmode, $atarget, "xxx", '', 0, $id, $idsel, $classname); - } - - $menu_arr = array(); + $menu_arr = array(); // Home $menu_arr[] = array( @@ -93,9 +92,9 @@ // Members $tmpentry = array( - 'enabled' => (!empty($conf->adherent->enabled)), - 'perms' => (!empty($user->rights->adherent->lire)), - 'module' => 'adherent' + 'enabled' => (!empty($conf->adherent->enabled)), + 'perms' => (!empty($user->rights->adherent->lire)), + 'module' => 'adherent' ); $menu_arr[] = array( 'name' => 'Members', @@ -118,13 +117,13 @@ // Third parties $tmpentry = array( - 'enabled'=> ((!empty($conf->societe->enabled) && - (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) - ) - || (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) - ), - 'perms'=> (!empty($user->rights->societe->lire) || !empty($user->rights->fournisseur->lire)), - 'module'=>'societe|fournisseur' + 'enabled'=> ((!empty($conf->societe->enabled) && + (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) + ) + || (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) + ), + 'perms'=> (!empty($user->rights->societe->lire) || !empty($user->rights->fournisseur->lire)), + 'module'=>'societe|fournisseur' ); $menu_arr[] = array( 'name' => 'Companies', @@ -149,7 +148,7 @@ $tmpentry = array( 'enabled'=> (!empty($conf->product->enabled) || !empty($conf->service->enabled) || !empty($conf->expedition->enabled)), 'perms'=> (!empty($user->rights->produit->lire) || !empty($user->rights->service->lire) || !empty($user->rights->expedition->lire)), - 'module'=>'product|service' + 'module'=>'product|service' ); $menu_arr[] = array( 'name' => 'Products', @@ -158,7 +157,7 @@ ? (array("TMenuProducts", " | ", "TMenuServices")) : (!empty($conf->product->enabled) ? "TMenuProducts" : "TMenuServices"), 'level' => 0, - 'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal), + 'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal), 'target' => $atarget, 'mainmenu' => "products", 'leftmenu' => '', @@ -172,36 +171,36 @@ 'submenus' => array(), ); - // MRP - GPAO + // MRP $tmpentry = array( - 'enabled'=>(!empty($conf->bom->enabled) || !empty($conf->mrp->enabled)), - 'perms'=>(!empty($user->rights->bom->read) || !empty($user->rights->mrp->read)), - 'module'=>'bom|mrp' + 'enabled'=>(!empty($conf->bom->enabled) || !empty($conf->mrp->enabled)), + 'perms'=>(!empty($user->rights->bom->read) || !empty($user->rights->mrp->read)), + 'module'=>'bom|mrp' ); $menu_arr[] = array( - 'name' => 'TMenuMRP', - 'link' => '/mrp/index.php?mainmenu=mrp&leftmenu=', - 'title' => "TMenuMRP", - 'level' => 0, - 'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal), - 'target' => $atarget, - 'mainmenu' => "mrp", - 'leftmenu' => '', - 'position' => 31, - 'id' => $id, - 'idsel' => 'mrp', - 'classname' => $classname = ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "mrp") ? 'class="tmenusel"' : 'class="tmenu"', - 'prefix' => '', - 'session' => (($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "mrp") ? 0 : 1), - 'loadLangs' => array("mrp"), - 'submenus' => array(), + 'name' => 'TMenuMRP', + 'link' => '/mrp/index.php?mainmenu=mrp&leftmenu=', + 'title' => "TMenuMRP", + 'level' => 0, + 'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal), + 'target' => $atarget, + 'mainmenu' => "mrp", + 'leftmenu' => '', + 'position' => 30, + 'id' => $id, + 'idsel' => 'mrp', + 'classname' => $classname = ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "mrp") ? 'class="tmenusel"' : 'class="tmenu"', + 'prefix' => '', + 'session' => (($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "mrp") ? 0 : 1), + 'loadLangs' => array("mrp"), + 'submenus' => array(), ); // Projects $tmpentry = array( - 'enabled'=> (!empty($conf->projet->enabled) ? 1 : 0), - 'perms'=> (!empty($user->rights->projet->lire) ? 1 : 0), - 'module'=>'projet' + 'enabled'=> (!empty($conf->projet->enabled) ? 1 : 0), + 'perms'=> (!empty($user->rights->projet->lire) ? 1 : 0), + 'module'=>'projet' ); $menu_arr[] = array( 'name' => 'Projet', @@ -210,7 +209,7 @@ ? (($conf->global->PROJECT_USE_OPPORTUNITIES == 2) ? "Leads" : "Projects") : "Projects", 'level' => 0, - 'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal), + 'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal), 'target' => $atarget, 'mainmenu' => "project", 'leftmenu' => '', @@ -224,23 +223,25 @@ 'submenus' => array(), ); - // Commercial (propal, commande, supplier_proposal, supplier_order, contrat, ficheinter) + // Commercial $tmpentry = array( - 'enabled'=>(!empty($conf->propal->enabled) - || !empty($conf->commande->enabled) - || !empty($conf->supplier_proposal->enabled) - || !empty($conf->supplier_order->enabled) - || !empty($conf->contrat->enabled) - || !empty($conf->ficheinter->enabled) - ) ? 1 : 0, - 'perms'=>(!empty($user->rights->propal->lire) - || !empty($user->rights->commande->lire) - || !empty($user->rights->supplier_proposal->lire) - || !empty($user->rights->supplier_order->lire) - || !empty($user->rights->contrat->lire) - || !empty($user->rights->ficheinter->lire) - ), - 'module'=>'propal|commande|supplier_proposal|supplier_order|contrat|ficheinter' + 'enabled'=>(!empty($conf->propal->enabled) || + !empty($conf->commande->enabled) || + !empty($conf->fournisseur->enabled) || + !empty($conf->supplier_proposal->enabled) || + !empty($conf->supplier_order->enabled) || + !empty($conf->contrat->enabled) || + !empty($conf->ficheinter->enabled) + ) ? 1 : 0, + 'perms'=>(!empty($user->rights->propal->lire) || + !empty($user->rights->commande->lire) || + !empty($user->rights->fournisseur->lire) || + !empty($user->rights->supplier_proposal->lire) || + !empty($user->rights->supplier_order->lire) || + !empty($user->rights->contrat->lire) || + !empty($user->rights->ficheinter->lire) + ), + 'module'=>'propal|commande|supplier_proposal|supplier_order|contrat|ficheinter' ); $onlysupplierorder = !empty($user->rights->fournisseur->commande->lire) && @@ -256,7 +257,7 @@ 'link' => ($onlysupplierorder ? '/fourn/commande/index.php?mainmenu=commercial&leftmenu=' : '/comm/index.php?mainmenu=commercial&leftmenu='), 'title' => "Commercial", 'level' => 0, - 'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal), + 'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal), 'target' => $atarget, 'mainmenu' => "commercial", 'leftmenu' => '', @@ -272,25 +273,25 @@ // Billing - Financial $tmpentry = array( - 'enabled'=>(!empty($conf->facture->enabled) || - !empty($conf->don->enabled) || - !empty($conf->tax->enabled) || - !empty($conf->salaries->enabled) || - !empty($conf->supplier_invoice->enabled) || - !empty($conf->loan->enabled) || - !empty($conf->margins->enabled) - ) ? 1 : 0, - 'perms'=>(!empty($user->rights->facture->lire) || !empty($user->rights->don->contact->lire) - || !empty($user->rights->tax->charges->lire) || !empty($user->rights->salaries->read) - || !empty($user->rights->fournisseur->facture->lire) || !empty($user->rights->loan->read) || !empty($user->rights->margins->liretous)), - 'module'=>'facture|supplier_invoice|don|tax|salaries|loan' + 'enabled'=>(!empty($conf->facture->enabled) || + !empty($conf->don->enabled) || + !empty($conf->tax->enabled) || + !empty($conf->salaries->enabled) || + !empty($conf->supplier_invoice->enabled) || + !empty($conf->loan->enabled) || + !empty($conf->margins->enabled) + ) ? 1 : 0, + 'perms'=>(!empty($user->rights->facture->lire) || !empty($user->rights->don->contact->lire) + || !empty($user->rights->tax->charges->lire) || !empty($user->rights->salaries->read) + || !empty($user->rights->fournisseur->facture->lire) || !empty($user->rights->loan->read) || !empty($user->rights->margins->liretous)), + 'module'=>'facture|supplier_invoice|don|tax|salaries|loan' ); $menu_arr[] = array( 'name' => 'Compta', 'link' => '/compta/index.php?mainmenu=billing&leftmenu=', 'title' => "MenuFinancial", 'level' => 0, - 'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal), + 'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal), 'target' => $atarget, 'mainmenu' => "billing", 'leftmenu' => '', @@ -306,16 +307,16 @@ // Bank $tmpentry = array( - 'enabled'=>(!empty($conf->banque->enabled) || !empty($conf->prelevement->enabled)), + 'enabled'=>(!empty($conf->banque->enabled) || !empty($conf->prelevement->enabled)), 'perms'=>(!empty($user->rights->banque->lire) || !empty($user->rights->prelevement->lire) || !empty($user->rights->paymentbybanktransfer->read)), - 'module'=>'banque|prelevement|paymentbybanktransfer' + 'module'=>'banque|prelevement|paymentbybanktransfer' ); $menu_arr[] = array( 'name' => 'Bank', 'link' => '/compta/bank/list.php?mainmenu=bank&leftmenu=', 'title' => "MenuBankCash", 'level' => 0, - 'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal), + 'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal), 'target' => $atarget, 'mainmenu' => "bank", 'leftmenu' => '', @@ -333,16 +334,16 @@ // Accounting $tmpentry = array( - 'enabled'=>(!empty($conf->comptabilite->enabled) || !empty($conf->accounting->enabled) || !empty($conf->asset->enabled) || !empty($conf->intracommreport->enabled)), - 'perms'=>(!empty($user->rights->compta->resultat->lire) || !empty($user->rights->accounting->mouvements->lire) || !empty($user->rights->asset->read) || !empty($user->rights->intracommreport->read)), - 'module'=>'comptabilite|accounting|asset|intracommreport' + 'enabled'=>(!empty($conf->comptabilite->enabled) || !empty($conf->accounting->enabled) || !empty($conf->asset->enabled)), + 'perms'=>(!empty($user->rights->compta->resultat->lire) || !empty($user->rights->accounting->mouvements->lire) || !empty($user->rights->asset->read)), + 'module'=>'comptabilite|accounting|asset' ); $menu_arr[] = array( 'name' => 'Accounting', 'link' => '/accountancy/index.php?mainmenu=accountancy&leftmenu=', 'title' => "MenuAccountancy", 'level' => 0, - 'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal), + 'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal), 'target' => $atarget, 'mainmenu' => "accountancy", 'leftmenu' => '', @@ -354,23 +355,22 @@ 'session' => (($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "accountancy") ? 0 : 1), - 'loadLangs' => array("compta", "accountancy", "assets", "intracommreport"), + 'loadLangs' => array("compta", "accountancy", "assets"), 'submenus' => array(), ); // HRM $tmpentry = array( - 'enabled'=>(!empty($conf->hrm->enabled) || (!empty($conf->holiday->enabled)) || !empty($conf->deplacement->enabled) || !empty($conf->expensereport->enabled) || !empty($conf->recruitment->enabled)), - 'perms'=>(!empty($user->rights->hrm->employee->read) || !empty($user->rights->holiday->write) || !empty($user->rights->deplacement->lire) || !empty($user->rights->expensereport->lire) || !empty($user->rights->recruitment->recruitmentjobposition->read)), - 'module'=>'hrm|holiday|deplacement|expensereport|recruitment' - ); - + 'enabled'=>(!empty($conf->hrm->enabled) || !empty($conf->holiday->enabled) || !empty($conf->deplacement->enabled) || !empty($conf->expensereport->enabled)), + 'perms'=>(!empty($user->rights->hrm->employee->read) || !empty($user->rights->holiday->write) || !empty($user->rights->deplacement->lire) || !empty($user->rights->expensereport->lire)), + 'module'=>'hrm|holiday|deplacement|expensereport' + ); $menu_arr[] = array( 'name' => 'HRM', 'link' => '/hrm/index.php?mainmenu=hrm&leftmenu=', 'title' => "HRM", 'level' => 0, - 'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal), + 'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal), 'target' => $atarget, 'mainmenu' => "hrm", 'leftmenu' => '', @@ -388,16 +388,16 @@ // Tools $tmpentry = array( - 'enabled'=>1, - 'perms'=>1, - 'module'=>'' + 'enabled'=>1, + 'perms'=>1, + 'module'=>'' ); $menu_arr[] = array( 'name' => 'Tools', 'link' => '/core/tools.php?mainmenu=tools&leftmenu=', 'title' => "Tools", 'level' => 0, - 'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal), + 'enabled' => $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal), 'target' => $atarget, 'mainmenu' => "tools", 'leftmenu' => '', @@ -414,26 +414,34 @@ ); // Add menus - foreach ($menu_arr as $key => $smenu) { + foreach ($menu_arr as $key => $smenu) + { $smenu = (object) $smenu; - if ($smenu->enabled) { - if ($smenu->session) { + if ($smenu->enabled) + { + if ($smenu->session) + { $_SESSION['idmenu'] = ''; } // Load Langue - if (!empty($smenu->loadLangs)) { + if (!empty($smenu->loadLangs)) + { $langs->loadLangs($smenu->loadLangs); } // Trans title $mtitle = ''; - if (is_array($smenu->title)) { - foreach ($smenu->title as $item) { + if (is_array($smenu->title)) + { + foreach ($smenu->title as $item) + { $mtitle .= $langs->trans($item); } - } else { + } + else + { $mtitle = $langs->trans($smenu->title); } // Add item @@ -443,70 +451,52 @@ // Show personalized menus $menuArbo = new Menubase($db, 'eldy'); - $newTabMenu = $menuArbo->menuTopCharger('', '', $type_user, 'eldy', $tabMenu); // Return tabMenu with only top entries $num = count($newTabMenu); - for ($i = 0; $i < $num; $i++) { + for ($i = 0; $i < $num; $i++) + { //var_dump($type_user.' '.$newTabMenu[$i]['url'].' '.$showmode.' '.$newTabMenu[$i]['perms']); $idsel = (empty($newTabMenu[$i]['mainmenu']) ? 'none' : $newTabMenu[$i]['mainmenu']); - $newTabMenu[$i]['url'] = make_substitutions($newTabMenu[$i]['url'], $substitarray); - - // url = url from host, shorturl = relative path into dolibarr sources - $url = $shorturl = $newTabMenu[$i]['url']; - if (!preg_match("/^(http:\/\/|https:\/\/)/i", $newTabMenu[$i]['url'])) { // Do not change url content for external links - $tmp = explode('?', $newTabMenu[$i]['url'], 2); - $url = $shorturl = $tmp[0]; - $param = (isset($tmp[1]) ? $tmp[1] : ''); - - if (!preg_match('/mainmenu/i', $param) || !preg_match('/leftmenu/i', $param)) { - $param .= ($param ? '&' : '').'mainmenu='.$newTabMenu[$i]['mainmenu'].'&leftmenu='; - } - //$url.="idmenu=".$newTabMenu[$i]['rowid']; // Already done by menuLoad - $url = dol_buildpath($url, 1).($param ? '?'.$param : ''); - //$shorturl = $shorturl.($param?'?'.$param:''); - $shorturl = $url; - if (DOL_URL_ROOT) { - $shorturl = preg_replace('/^'.preg_quote(DOL_URL_ROOT, '/').'/', '', $shorturl); - } + $showmode = isVisibleToUserType($type_user, $newTabMenu[$i], $listofmodulesforexternal); + if ($showmode == 1) + { + $newTabMenu[$i]['url'] = make_substitutions($newTabMenu[$i]['url'], $substitarray); + + // url = url from host, shorturl = relative path into dolibarr sources + $url = $shorturl = $newTabMenu[$i]['url']; + if (!preg_match("/^(http:\/\/|https:\/\/)/i", $newTabMenu[$i]['url'])) // Do not change url content for external links + { + $tmp = explode('?', $newTabMenu[$i]['url'], 2); + $url = $shorturl = $tmp[0]; + $param = (isset($tmp[1]) ? $tmp[1] : ''); + + if (!preg_match('/mainmenu/i', $param) || !preg_match('/leftmenu/i', $param)) $param .= ($param ? '&' : '').'mainmenu='.$newTabMenu[$i]['mainmenu'].'&leftmenu='; + //$url.="idmenu=".$newTabMenu[$i]['rowid']; // Already done by menuLoad + $url = dol_buildpath($url, 1).($param ? '?'.$param : ''); + //$shorturl = $shorturl.($param?'?'.$param:''); + $shorturl = $url; + if (DOL_URL_ROOT) $shorturl = preg_replace('/^'.preg_quote(DOL_URL_ROOT, '/').'/', '', $shorturl); + } + + // Define the class (top menu selected or not) + if (!empty($_SESSION['idmenu']) && $newTabMenu[$i]['rowid'] == $_SESSION['idmenu']) $classname = 'class="tmenusel"'; + elseif (!empty($_SESSION["mainmenu"]) && $newTabMenu[$i]['mainmenu'] == $_SESSION["mainmenu"]) $classname = 'class="tmenusel"'; + else $classname = 'class="tmenu"'; } - - $showmode = isVisibleToUserType($type_user, $newTabMenu[$i], $listofmodulesforexternal); - if ($showmode == 1) { - // Define the class (top menu selected or not) - if (!empty($_SESSION['idmenu']) && $newTabMenu[$i]['rowid'] == $_SESSION['idmenu']) { - $classname = 'class="tmenusel"'; - } elseif (!empty($_SESSION["mainmenu"]) && $newTabMenu[$i]['mainmenu'] == $_SESSION["mainmenu"]) { - $classname = 'class="tmenusel"'; - } else { - $classname = 'class="tmenu"'; - } - } elseif ($showmode == 2) { - $classname = 'class="tmenu"'; - } - - $menu->add( - $shorturl, - $newTabMenu[$i]['titre'], - 0, - $showmode, - ($newTabMenu[$i]['target'] ? $newTabMenu[$i]['target'] : $atarget), - ($newTabMenu[$i]['mainmenu'] ? $newTabMenu[$i]['mainmenu'] : $newTabMenu[$i]['rowid']), - ($newTabMenu[$i]['leftmenu'] ? $newTabMenu[$i]['leftmenu'] : ''), - $newTabMenu[$i]['position'], - $id, - $idsel, - $classname - ); + elseif ($showmode == 2) $classname = 'class="tmenu"'; + + $menu->add($shorturl, $newTabMenu[$i]['titre'], 0, $showmode, ($newTabMenu[$i]['target'] ? $newTabMenu[$i]['target'] : $atarget), ($newTabMenu[$i]['mainmenu'] ? $newTabMenu[$i]['mainmenu'] : $newTabMenu[$i]['rowid']), ($newTabMenu[$i]['leftmenu'] ? $newTabMenu[$i]['leftmenu'] : ''), $newTabMenu[$i]['position'], $id, $idsel, $classname); } // Sort on position $menu->liste = dol_sort_array($menu->liste, 'position'); - // Output menu entries + // Output menu entries // Show logo company - if (empty($conf->global->MAIN_MENU_INVERT) && empty($noout) && !empty($conf->global->MAIN_SHOW_LOGO) && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { + if (empty($conf->global->MAIN_MENU_INVERT) && empty($noout) && !empty($conf->global->MAIN_SHOW_LOGO) && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) + { //$mysoc->logo_mini=(empty($conf->global->MAIN_INFO_SOCIETE_LOGO_MINI)?'':$conf->global->MAIN_INFO_SOCIETE_LOGO_MINI); $mysoc->logo_squarred_mini = (empty($conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI) ? '' : $conf->global->MAIN_INFO_SOCIETE_LOGO_SQUARRED_MINI); @@ -515,14 +505,16 @@ $logoContainerAdditionalClass = ''; } - if (!empty($mysoc->logo_squarred_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_squarred_mini)) { + if (!empty($mysoc->logo_squarred_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_squarred_mini)) + { $urllogo = DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_squarred_mini); } /*elseif (! empty($mysoc->logo_mini) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_mini)) { $urllogo=DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_mini); }*/ - else { + else + { $urllogo = DOL_URL_ROOT.'/theme/dolibarr_512x512_white.png'; $logoContainerAdditionalClass = ''; } @@ -531,25 +523,26 @@ print "\n".'<!-- Show logo on menu -->'."\n"; print_start_menu_entry('companylogo', 'class="tmenu tmenucompanylogo nohover"', 1); + print '<div class="center '.$logoContainerAdditionalClass.' menulogocontainer"><img class="mycompany" title="'.dol_escape_htmltag($title).'" alt="" src="'.$urllogo.'" style="max-width: 100px"></div>'."\n"; print_end_menu_entry(4); } - if (empty($noout)) { - foreach ($menu->liste as $menuval) { - print_start_menu_entry($menuval['idsel'], $menuval['classname'], $menuval['enabled']); - print_text_menu_entry($menuval['titre'], $menuval['enabled'], (($menuval['url'] != '#' && !preg_match('/^(http:\/\/|https:\/\/)/i', $menuval['url'])) ? DOL_URL_ROOT:'').$menuval['url'], $menuval['id'], $menuval['idsel'], $menuval['classname'], ($menuval['target'] ? $menuval['target'] : $atarget)); - print_end_menu_entry($menuval['enabled']); - } - } + if (empty($noout)) { + foreach ($menu->liste as $menuval) { + print_start_menu_entry($menuval['idsel'], $menuval['classname'], $menuval['enabled']); + print_text_menu_entry($menuval['titre'], $menuval['enabled'], (($menuval['url'] != '#' && !preg_match('/^(http:\/\/|https:\/\/)/i', $menuval['url'])) ? DOL_URL_ROOT:'').$menuval['url'], $menuval['id'], $menuval['idsel'], $menuval['classname'], ($menuval['target'] ? $menuval['target'] : $atarget)); + print_end_menu_entry($menuval['enabled']); + } + } $showmode = 1; - if (empty($noout)) { - print_start_menu_entry('', 'class="tmenuend"', $showmode); - print_end_menu_entry($showmode); - print_end_menu_array(); - } + if (empty($noout)) { + print_start_menu_entry('', 'class="tmenuend"', $showmode); + print_end_menu_entry($showmode); + print_end_menu_array(); + } return 0; } @@ -562,7 +555,7 @@ */ function print_start_menu_array() { - global $conf; + global $conf; print '<div class="tmenudiv">'; print '<ul role="navigation" class="tmenu"'.(empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) ? '' : ' title="Top menu"').'>'; @@ -578,7 +571,8 @@ */ function print_start_menu_entry($idsel, $classname, $showmode) { - if ($showmode) { + if ($showmode) + { print '<li '.$classname.' id="mainmenutd_'.$idsel.'">'; //print '<div class="tmenuleft tmenusep"></div>'; print '<div class="tmenucenter">'; @@ -628,7 +622,8 @@ */ function print_end_menu_entry($showmode) { - if ($showmode) { + if ($showmode) + { print '</div></li>'; } print "\n"; @@ -661,10 +656,9 @@ * @param string $forcemainmenu 'x'=Force mainmenu to mainmenu='x' * @param string $forceleftmenu 'all'=Force leftmenu to '' (= all). If value come being '', we change it to value in session and 'none' if not defined in session. * @param array $moredata An array with more data to output - * @param int $type_user 0=Menu for backoffice, 1=Menu for front office * @return int Nb of menu entries */ -function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabMenu, &$menu, $noout = 0, $forcemainmenu = '', $forceleftmenu = '', $moredata = null, $type_user = 0) +function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabMenu, &$menu, $noout = 0, $forcemainmenu = '', $forceleftmenu = '', $moredata = null) { global $user, $conf, $langs, $dolibarr_main_db_name, $mysoc; @@ -675,24 +669,26 @@ $mainmenu = ($forcemainmenu ? $forcemainmenu : $_SESSION["mainmenu"]); $leftmenu = ($forceleftmenu ? '' : (empty($_SESSION["leftmenu"]) ? 'none' : $_SESSION["leftmenu"])); - $usemenuhider = 0; - - if (is_array($moredata) && !empty($moredata['searchform'])) { // searchform can contains select2 code or link to show old search form or link to switch on search page - print "\n"; - print "<!-- Begin SearchForm -->\n"; - print '<div id="blockvmenusearch" class="blockvmenusearch">'."\n"; - print $moredata['searchform']; - print '</div>'."\n"; - print "<!-- End SearchForm -->\n"; + $usemenuhider = 0; + + if (is_array($moredata) && !empty($moredata['searchform'])) // searchform can contains select2 code or link to show old search form or link to switch on search page + { + print "\n"; + print "<!-- Begin SearchForm -->\n"; + print '<div id="blockvmenusearch" class="blockvmenusearch">'."\n"; + print $moredata['searchform']; + print '</div>'."\n"; + print "<!-- End SearchForm -->\n"; } - if (is_array($moredata) && !empty($moredata['bookmarks'])) { - print "\n"; - print "<!-- Begin Bookmarks -->\n"; - print '<div id="blockvmenubookmarks" class="blockvmenubookmarks">'."\n"; - print $moredata['bookmarks']; - print '</div>'."\n"; - print "<!-- End Bookmarks -->\n"; + if (is_array($moredata) && !empty($moredata['bookmarks'])) + { + print "\n"; + print "<!-- Begin Bookmarks -->\n"; + print '<div id="blockvmenubookmarks" class="blockvmenubookmarks">'."\n"; + print $moredata['bookmarks']; + print '</div>'."\n"; + print "<!-- End Bookmarks -->\n"; } $substitarray = getCommonSubstitutionArray($langs, 0, null, null); @@ -701,11 +697,13 @@ * We update newmenu with entries found into database * -------------------------------------------------- */ - if ($mainmenu) { // If this is empty, loading hard coded menu and loading personalised menu will fail + if ($mainmenu) // If this is empty, loading hard coded menu and loading personalised menu will fail + { /* * Menu HOME */ - if ($mainmenu == 'home') { + if ($mainmenu == 'home') + { $langs->load("users"); // Home - dashboard @@ -714,21 +712,23 @@ // Setup $newmenu->add("/admin/index.php?mainmenu=home&leftmenu=setup", $langs->trans("Setup"), 0, $user->admin, '', $mainmenu, 'setup', 0, '', '', '', '<i class="fa fa-wrench fa-fw paddingright"></i>'); - if ($usemenuhider || empty($leftmenu) || $leftmenu == "setup") { - // Load translation files required by the page - $langs->loadLangs(array("admin", "help")); + if ($usemenuhider || empty($leftmenu) || $leftmenu == "setup") + { + // Load translation files required by the page + $langs->loadLangs(array("admin", "help")); $warnpicto = ''; - if (empty($conf->global->MAIN_INFO_SOCIETE_NOM) || empty($conf->global->MAIN_INFO_SOCIETE_COUNTRY)) { + if (empty($conf->global->MAIN_INFO_SOCIETE_NOM) || empty($conf->global->MAIN_INFO_SOCIETE_COUNTRY)) + { $langs->load("errors"); - $warnpicto = img_warning($langs->trans("WarningMandatorySetupNotComplete")); + $warnpicto = ' '.img_warning($langs->trans("WarningMandatorySetupNotComplete")); } $newmenu->add("/admin/company.php?mainmenu=home", $langs->trans("MenuCompanySetup").$warnpicto, 1); - $warnpicto = ''; - if (count($conf->modules) <= (empty($conf->global->MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING) ? 1 : $conf->global->MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING)) { // If only user module enabled + if (count($conf->modules) <= (empty($conf->global->MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING) ? 1 : $conf->global->MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING)) // If only user module enabled + { $langs->load("errors"); - $warnpicto = img_warning($langs->trans("WarningMandatorySetupNotComplete")); + $warnpicto = ' '.img_warning($langs->trans("WarningMandatorySetupNotComplete")); } $newmenu->add("/admin/modules.php?mainmenu=home", $langs->trans("Modules").$warnpicto, 1); $newmenu->add("/admin/ihm.php?mainmenu=home", $langs->trans("GUISetup"), 1); @@ -741,18 +741,7 @@ $newmenu->add("/admin/security_other.php?mainmenu=home", $langs->trans("Security"), 1); $newmenu->add("/admin/limits.php?mainmenu=home", $langs->trans("MenuLimits"), 1); $newmenu->add("/admin/pdf.php?mainmenu=home", $langs->trans("PDF"), 1); - - $warnpicto = ''; - if ($conf->global->MAIN_MAIL_SENDMODE == 'mail' && empty($conf->global->MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP)) { - $langs->load("errors"); - $warnpicto = img_warning($langs->trans("WarningPHPMailD")); - } - if (in_array($conf->global->MAIN_MAIL_SENDMODE, array('smtps', 'swiftmail')) && empty($conf->global->MAIN_MAIL_SMTP_SERVER)) { - $langs->load("errors"); - $warnpicto = img_warning($langs->trans("ErrorSetupOfEmailsNotComplete")); - } - - $newmenu->add("/admin/mails.php?mainmenu=home", $langs->trans("Emails").$warnpicto, 1); + $newmenu->add("/admin/mails.php?mainmenu=home", $langs->trans("Emails"), 1); $newmenu->add("/admin/sms.php?mainmenu=home", $langs->trans("SMS"), 1); $newmenu->add("/admin/dict.php?mainmenu=home", $langs->trans("Dictionary"), 1); $newmenu->add("/admin/const.php?mainmenu=home", $langs->trans("OtherSetup"), 1); @@ -760,25 +749,24 @@ // System tools $newmenu->add("/admin/tools/index.php?mainmenu=home&leftmenu=admintools", $langs->trans("AdminTools"), 0, $user->admin, '', $mainmenu, 'admintools', 0, '', '', '', '<i class="fa fa-server fa-fw paddingright"></i>'); - if ($usemenuhider || empty($leftmenu) || preg_match('/^admintools/', $leftmenu)) { - // Load translation files required by the page - $langs->loadLangs(array('admin', 'help')); + if ($usemenuhider || empty($leftmenu) || preg_match('/^admintools/', $leftmenu)) + { + // Load translation files required by the page + $langs->loadLangs(array('admin', 'help')); $newmenu->add('/admin/system/dolibarr.php?mainmenu=home&leftmenu=admintools_info', $langs->trans('InfoDolibarr'), 1); if ($usemenuhider || empty($leftmenu) || $leftmenu == 'admintools_info') { - $newmenu->add('/admin/system/modules.php?mainmenu=home&leftmenu=admintools_info', $langs->trans('Modules'), 2); - $newmenu->add('/admin/triggers.php?mainmenu=home&leftmenu=admintools_info', $langs->trans('Triggers'), 2); - $newmenu->add('/admin/system/filecheck.php?mainmenu=home&leftmenu=admintools_info', $langs->trans('FileCheck'), 2); - } + $newmenu->add('/admin/system/modules.php?mainmenu=home&leftmenu=admintools_info', $langs->trans('Modules'), 2); + $newmenu->add('/admin/triggers.php?mainmenu=home&leftmenu=admintools_info', $langs->trans('Triggers'), 2); + $newmenu->add('/admin/system/filecheck.php?mainmenu=home&leftmenu=admintools_info', $langs->trans('FileCheck'), 2); + } $newmenu->add('/admin/system/browser.php?mainmenu=home&leftmenu=admintools', $langs->trans('InfoBrowser'), 1); $newmenu->add('/admin/system/os.php?mainmenu=home&leftmenu=admintools', $langs->trans('InfoOS'), 1); $newmenu->add('/admin/system/web.php?mainmenu=home&leftmenu=admintools', $langs->trans('InfoWebServer'), 1); $newmenu->add('/admin/system/phpinfo.php?mainmenu=home&leftmenu=admintools', $langs->trans('InfoPHP'), 1); + //if (function_exists('xdebug_is_enabled')) $newmenu->add('/admin/system/xdebug.php', $langs->trans('XDebug'),1); $newmenu->add('/admin/system/database.php?mainmenu=home&leftmenu=admintools', $langs->trans('InfoDatabase'), 1); - if (!empty($conf->global->MAIN_FEATURES_LEVEL)) { - $newmenu->add("/admin/system/perf.php?mainmenu=home&leftmenu=admintools", $langs->trans("InfoPerf"), 1); - $newmenu->add("/admin/system/security.php?mainmenu=home&leftmenu=admintools", $langs->trans("InfoSecurity"), 1); - } + //$newmenu->add("/admin/system/perf.php?mainmenu=home&leftmenu=admintools", $langs->trans("InfoPerf"),1); $newmenu->add("/admin/tools/dolibarr_export.php?mainmenu=home&leftmenu=admintools", $langs->trans("Backup"), 1); $newmenu->add("/admin/tools/dolibarr_import.php?mainmenu=home&leftmenu=admintools", $langs->trans("Restore"), 1); $newmenu->add("/admin/tools/update.php?mainmenu=home&leftmenu=admintools", $langs->trans("MenuUpgrade"), 1); @@ -787,20 +775,24 @@ $newmenu->add("/admin/tools/listsessions.php?mainmenu=home&leftmenu=admintools", $langs->trans("Sessions"), 1); $newmenu->add('/admin/system/about.php?mainmenu=home&leftmenu=admintools', $langs->trans('ExternalResources'), 1); - if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) { + if (!empty($conf->product->enabled) || !empty($conf->service->enabled)) + { $langs->load("products"); - $newmenu->add("/product/admin/product_tools.php?mainmenu=home&leftmenu=admintools", $langs->trans("ProductVatMassChange"), 1, $user->admin); + $newmenu->add("/product/admin/product_tools.php?mainmenu=home&leftmenu=admintools", $langs->trans("ProductVatMassChange"), 1, $user->admin); } } $newmenu->add("/user/home.php?leftmenu=users", $langs->trans("MenuUsersAndGroups"), 0, $user->rights->user->user->lire, '', $mainmenu, 'users', 0, '', '', '', '<i class="fa fa-users fa-fw paddingright"></i>'); - if ($user->rights->user->user->lire) { - if ($usemenuhider || empty($leftmenu) || $leftmenu == "users") { + if ($user->rights->user->user->lire) + { + if ($usemenuhider || empty($leftmenu) || $leftmenu == "users") + { $newmenu->add("", $langs->trans("Users"), 1, $user->rights->user->user->lire || $user->admin); $newmenu->add("/user/card.php?leftmenu=users&action=create", $langs->trans("NewUser"), 2, ($user->rights->user->user->creer || $user->admin) && !(!empty($conf->multicompany->enabled) && $conf->entity > 1 && $conf->global->MULTICOMPANY_TRANSVERSE_MODE), '', 'home'); $newmenu->add("/user/list.php?leftmenu=users", $langs->trans("ListOfUsers"), 2, $user->rights->user->user->lire || $user->admin); $newmenu->add("/user/hierarchy.php?leftmenu=users", $langs->trans("HierarchicView"), 2, $user->rights->user->user->lire || $user->admin); - if (!empty($conf->categorie->enabled)) { + if (!empty($conf->categorie->enabled)) + { $langs->load("categories"); $newmenu->add("/categories/index.php?leftmenu=users&type=7", $langs->trans("UsersCategoriesShort"), 2, $user->rights->categorie->lire, '', $mainmenu, 'cat'); } @@ -815,26 +807,28 @@ /* * Menu THIRDPARTIES */ - if ($mainmenu == 'companies') { + if ($mainmenu == 'companies') + { // Societes - if (!empty($conf->societe->enabled)) { + if (!empty($conf->societe->enabled)) + { $langs->load("companies"); $newmenu->add("/societe/index.php?leftmenu=thirdparties", $langs->trans("ThirdParty"), 0, $user->rights->societe->lire, '', $mainmenu, 'thirdparties'); - if ($user->rights->societe->creer) { + if ($user->rights->societe->creer) + { $newmenu->add("/societe/card.php?action=create", $langs->trans("MenuNewThirdParty"), 1); - if (!$conf->use_javascript_ajax) { - $newmenu->add("/societe/card.php?action=create&private=1", $langs->trans("MenuNewPrivateIndividual"), 1); - } + if (!$conf->use_javascript_ajax) $newmenu->add("/societe/card.php?action=create&private=1", $langs->trans("MenuNewPrivateIndividual"), 1); } } $newmenu->add("/societe/list.php?leftmenu=thirdparties", $langs->trans("List"), 1); // Prospects - if (!empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) { + if (!empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) + { $langs->load("commercial"); - $newmenu->add("/societe/list.php?type=p&leftmenu=prospects", $langs->trans("ListProspectsShort"), 2, $user->rights->societe->lire, '', $mainmenu, 'prospects'); + $newmenu->add("/societe/list.php?type=p&leftmenu=prospects", $langs->trans("ListProspectsShort"), 1, $user->rights->societe->lire, '', $mainmenu, 'prospects'); /* no more required, there is a filter that can do more if ($usemenuhider || empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/societe/list.php?type=p&sortfield=s.datec&sortorder=desc&begin=&search_stcomm=-1", $langs->trans("LastProspectDoNotContact"), 2, $user->rights->societe->lire); if ($usemenuhider || empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/societe/list.php?type=p&sortfield=s.datec&sortorder=desc&begin=&search_stcomm=0", $langs->trans("LastProspectNeverContacted"), 2, $user->rights->societe->lire); @@ -842,40 +836,43 @@ if ($usemenuhider || empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/societe/list.php?type=p&sortfield=s.datec&sortorder=desc&begin=&search_stcomm=2", $langs->trans("LastProspectContactInProcess"), 2, $user->rights->societe->lire); if ($usemenuhider || empty($leftmenu) || $leftmenu=="prospects") $newmenu->add("/societe/list.php?type=p&sortfield=s.datec&sortorder=desc&begin=&search_stcomm=3", $langs->trans("LastProspectContactDone"), 2, $user->rights->societe->lire); */ - $newmenu->add("/societe/card.php?leftmenu=prospects&action=create&type=p", $langs->trans("MenuNewProspect"), 3, $user->rights->societe->creer); + $newmenu->add("/societe/card.php?leftmenu=prospects&action=create&type=p", $langs->trans("MenuNewProspect"), 2, $user->rights->societe->creer); + //$newmenu->add("/contact/list.php?leftmenu=customers&type=p", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire); } // Customers/Prospects - if (!empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) { + if (!empty($conf->societe->enabled) && empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) + { $langs->load("commercial"); - $newmenu->add("/societe/list.php?type=c&leftmenu=customers", $langs->trans("ListCustomersShort"), 2, $user->rights->societe->lire, '', $mainmenu, 'customers'); - - $newmenu->add("/societe/card.php?leftmenu=customers&action=create&type=c", $langs->trans("MenuNewCustomer"), 3, $user->rights->societe->creer); + $newmenu->add("/societe/list.php?type=c&leftmenu=customers", $langs->trans("ListCustomersShort"), 1, $user->rights->societe->lire, '', $mainmenu, 'customers'); + + $newmenu->add("/societe/card.php?leftmenu=customers&action=create&type=c", $langs->trans("MenuNewCustomer"), 2, $user->rights->societe->creer); + //$newmenu->add("/contact/list.php?leftmenu=customers&type=c", $langs->trans("Contacts"), 2, $user->rights->societe->contact->lire); } // Suppliers - if (!empty($conf->societe->enabled) && ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) || !empty($conf->supplier_proposal->enabled))) { + if (!empty($conf->societe->enabled) && ((!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) || !empty($conf->supplier_proposal->enabled))) + { $langs->load("suppliers"); - $newmenu->add("/societe/list.php?type=f&leftmenu=suppliers", $langs->trans("ListSuppliersShort"), 2, ($user->rights->fournisseur->lire), '', $mainmenu, 'suppliers'); - $newmenu->add("/societe/card.php?leftmenu=suppliers&action=create&type=f", $langs->trans("MenuNewSupplier"), 3, $user->rights->societe->creer && ($user->rights->fournisseur->lire)); + $newmenu->add("/societe/list.php?type=f&leftmenu=suppliers", $langs->trans("ListSuppliersShort"), 1, ($user->rights->fournisseur->lire || $user->rights->supplier_proposal->lire), '', $mainmenu, 'suppliers'); + $newmenu->add("/societe/card.php?leftmenu=suppliers&action=create&type=f", $langs->trans("MenuNewSupplier"), 2, $user->rights->societe->creer && ($user->rights->fournisseur->lire || $user->rights->supplier_proposal->lire)); } // Categories - if (!empty($conf->categorie->enabled)) { + if (!empty($conf->categorie->enabled)) + { $langs->load("categories"); - if (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) { + if (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) + { // Categories prospects/customers $menutoshow = $langs->trans("CustomersProspectsCategoriesShort"); - if (!empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) { - $menutoshow = $langs->trans("CustomersCategoriesShort"); - } - if (!empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) { - $menutoshow = $langs->trans("ProspectsCategoriesShort"); - } + if (!empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) $menutoshow = $langs->trans("CustomersCategoriesShort"); + if (!empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) $menutoshow = $langs->trans("ProspectsCategoriesShort"); $newmenu->add("/categories/index.php?leftmenu=cat&type=2", $menutoshow, 1, $user->rights->categorie->lire, '', $mainmenu, 'cat'); } // Categories suppliers - if (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) { + if (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) + { $newmenu->add("/categories/index.php?leftmenu=catfournish&type=1", $langs->trans("SuppliersCategoriesShort"), 1, $user->rights->categorie->lire); } } @@ -884,20 +881,15 @@ $newmenu->add("/societe/index.php?leftmenu=thirdparties", (!empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("Contacts") : $langs->trans("ContactsAddresses")), 0, $user->rights->societe->contact->lire, '', $mainmenu, 'contacts'); $newmenu->add("/contact/card.php?leftmenu=contacts&action=create", (!empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("NewContact") : $langs->trans("NewContactAddress")), 1, $user->rights->societe->contact->creer); $newmenu->add("/contact/list.php?leftmenu=contacts", $langs->trans("List"), 1, $user->rights->societe->contact->lire); - if (empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) { - $newmenu->add("/contact/list.php?leftmenu=contacts&type=p", $langs->trans("Prospects"), 2, $user->rights->societe->contact->lire); - } - if (empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) { - $newmenu->add("/contact/list.php?leftmenu=contacts&type=c", $langs->trans("Customers"), 2, $user->rights->societe->contact->lire); - } - if (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) { - $newmenu->add("/contact/list.php?leftmenu=contacts&type=f", $langs->trans("Suppliers"), 2, $user->rights->societe->contact->lire); - } + if (empty($conf->global->SOCIETE_DISABLE_PROSPECTS)) $newmenu->add("/contact/list.php?leftmenu=contacts&type=p", $langs->trans("Prospects"), 2, $user->rights->societe->contact->lire); + if (empty($conf->global->SOCIETE_DISABLE_CUSTOMERS)) $newmenu->add("/contact/list.php?leftmenu=contacts&type=c", $langs->trans("Customers"), 2, $user->rights->societe->contact->lire); + if (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_order->enabled) || !empty($conf->supplier_invoice->enabled)) $newmenu->add("/contact/list.php?leftmenu=contacts&type=f", $langs->trans("Suppliers"), 2, $user->rights->societe->contact->lire); $newmenu->add("/contact/list.php?leftmenu=contacts&type=o", $langs->trans("ContactOthers"), 2, $user->rights->societe->contact->lire); //$newmenu->add("/contact/list.php?userid=$user->id", $langs->trans("MyContacts"), 1, $user->rights->societe->contact->lire); // Categories - if (!empty($conf->categorie->enabled)) { + if (!empty($conf->categorie->enabled)) + { $langs->load("categories"); // Categories Contact $newmenu->add("/categories/index.php?leftmenu=catcontact&type=4", $langs->trans("ContactCategoriesShort"), 1, $user->rights->categorie->lire, '', $mainmenu, 'cat'); @@ -905,49 +897,51 @@ } /* - * Menu COMMERCIAL (propal, commande, supplier_proposal, supplier_order, contrat, ficheinter) + * Menu COMMERCIAL */ - if ($mainmenu == 'commercial') { + if ($mainmenu == 'commercial') + { $langs->load("companies"); // Customer proposal - if (!empty($conf->propal->enabled)) { + if (!empty($conf->propal->enabled)) + { $langs->load("propal"); $newmenu->add("/comm/propal/index.php?leftmenu=propals", $langs->trans("Proposals"), 0, $user->rights->propale->lire, '', $mainmenu, 'propals', 100); $newmenu->add("/comm/propal/card.php?action=create&leftmenu=propals", $langs->trans("NewPropal"), 1, $user->rights->propale->creer); $newmenu->add("/comm/propal/list.php?leftmenu=propals", $langs->trans("List"), 1, $user->rights->propale->lire); if ($usemenuhider || empty($leftmenu) || $leftmenu == "propals") { - $newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=0", $langs->trans("PropalsDraft"), 2, $user->rights->propale->lire); - $newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=1", $langs->trans("PropalsOpened"), 2, $user->rights->propale->lire); - $newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=2", $langs->trans("PropalStatusSigned"), 2, $user->rights->propale->lire); - $newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=3", $langs->trans("PropalStatusNotSigned"), 2, $user->rights->propale->lire); - $newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=4", $langs->trans("PropalStatusBilled"), 2, $user->rights->propale->lire); - //$newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=2,3,4", $langs->trans("PropalStatusClosedShort"), 2, $user->rights->propale->lire); - } + $newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=0", $langs->trans("PropalsDraft"), 2, $user->rights->propale->lire); + $newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=1", $langs->trans("PropalsOpened"), 2, $user->rights->propale->lire); + $newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=2", $langs->trans("PropalStatusSigned"), 2, $user->rights->propale->lire); + $newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=3", $langs->trans("PropalStatusNotSigned"), 2, $user->rights->propale->lire); + $newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=4", $langs->trans("PropalStatusBilled"), 2, $user->rights->propale->lire); + //$newmenu->add("/comm/propal/list.php?leftmenu=propals&search_status=2,3,4", $langs->trans("PropalStatusClosedShort"), 2, $user->rights->propale->lire); + } $newmenu->add("/comm/propal/stats/index.php?leftmenu=propals", $langs->trans("Statistics"), 1, $user->rights->propale->lire); } - // Customers orders - if (!empty($conf->commande->enabled)) { - $langs->load("orders"); - $newmenu->add("/commande/index.php?leftmenu=orders", $langs->trans("CustomersOrders"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders', 200); - $newmenu->add("/commande/card.php?action=create&leftmenu=orders", $langs->trans("NewOrder"), 1, $user->rights->commande->creer); - $newmenu->add("/commande/list.php?leftmenu=orders", $langs->trans("List"), 1, $user->rights->commande->lire); - if ($usemenuhider || empty($leftmenu) || $leftmenu == "orders") { - $newmenu->add("/commande/list.php?leftmenu=orders&search_status=0", $langs->trans("StatusOrderDraftShort"), 2, $user->rights->commande->lire); - $newmenu->add("/commande/list.php?leftmenu=orders&search_status=1", $langs->trans("StatusOrderValidated"), 2, $user->rights->commande->lire); - if (!empty($conf->expedition->enabled)) { - $newmenu->add("/commande/list.php?leftmenu=orders&search_status=2", $langs->trans("StatusOrderSentShort"), 2, $user->rights->commande->lire); - } - $newmenu->add("/commande/list.php?leftmenu=orders&search_status=3", $langs->trans("StatusOrderDelivered"), 2, $user->rights->commande->lire); - //$newmenu->add("/commande/list.php?leftmenu=orders&search_status=4", $langs->trans("StatusOrderProcessed"), 2, $user->rights->commande->lire); - $newmenu->add("/commande/list.php?leftmenu=orders&search_status=-1", $langs->trans("StatusOrderCanceledShort"), 2, $user->rights->commande->lire); - } - $newmenu->add("/commande/stats/index.php?leftmenu=orders", $langs->trans("Statistics"), 1, $user->rights->commande->lire); - } + // Customers orders + if (!empty($conf->commande->enabled)) + { + $langs->load("orders"); + $newmenu->add("/commande/index.php?leftmenu=orders", $langs->trans("CustomersOrders"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders', 200); + $newmenu->add("/commande/card.php?action=create&leftmenu=orders", $langs->trans("NewOrder"), 1, $user->rights->commande->creer); + $newmenu->add("/commande/list.php?leftmenu=orders", $langs->trans("List"), 1, $user->rights->commande->lire); + if ($usemenuhider || empty($leftmenu) || $leftmenu == "orders") { + $newmenu->add("/commande/list.php?leftmenu=orders&search_status=0", $langs->trans("StatusOrderDraftShort"), 2, $user->rights->commande->lire); + $newmenu->add("/commande/list.php?leftmenu=orders&search_status=1", $langs->trans("StatusOrderValidated"), 2, $user->rights->commande->lire); + if (!empty($conf->expedition->enabled)) $newmenu->add("/commande/list.php?leftmenu=orders&search_status=2", $langs->trans("StatusOrderSentShort"), 2, $user->rights->commande->lire); + $newmenu->add("/commande/list.php?leftmenu=orders&search_status=3", $langs->trans("StatusOrderDelivered"), 2, $user->rights->commande->lire); + //$newmenu->add("/commande/list.php?leftmenu=orders&search_status=4", $langs->trans("StatusOrderProcessed"), 2, $user->rights->commande->lire); + $newmenu->add("/commande/list.php?leftmenu=orders&search_status=-1", $langs->trans("StatusOrderCanceledShort"), 2, $user->rights->commande->lire); + } + $newmenu->add("/commande/stats/index.php?leftmenu=orders", $langs->trans("Statistics"), 1, $user->rights->commande->lire); + } // Supplier proposal - if (!empty($conf->supplier_proposal->enabled)) { + if (!empty($conf->supplier_proposal->enabled)) + { $langs->load("supplier_proposal"); $newmenu->add("/supplier_proposal/index.php?leftmenu=propals_supplier", $langs->trans("SupplierProposalsShort"), 0, $user->rights->supplier_proposal->lire, '', $mainmenu, 'propals_supplier', 300); $newmenu->add("/supplier_proposal/card.php?action=create&leftmenu=supplier_proposals", $langs->trans("SupplierProposalNew"), 1, $user->rights->supplier_proposal->creer); @@ -956,54 +950,53 @@ } // Suppliers orders - if (!empty($conf->supplier_order->enabled)) { + if (!empty($conf->supplier_order->enabled)) + { $langs->load("orders"); $newmenu->add("/fourn/commande/index.php?leftmenu=orders_suppliers", $langs->trans("SuppliersOrders"), 0, $user->rights->fournisseur->commande->lire, '', $mainmenu, 'orders_suppliers', 400); $newmenu->add("/fourn/commande/card.php?action=create&leftmenu=orders_suppliers", $langs->trans("NewOrder"), 1, $user->rights->fournisseur->commande->creer); $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers", $langs->trans("List"), 1, $user->rights->fournisseur->commande->lire); if ($usemenuhider || empty($leftmenu) || $leftmenu == "orders_suppliers") { - $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=0", $langs->trans("StatusSupplierOrderDraftShort"), 2, $user->rights->fournisseur->commande->lire); - if (empty($conf->global->SUPPLIER_ORDER_HIDE_VALIDATED)) { - $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=1", $langs->trans("StatusSupplierOrderValidated"), 2, $user->rights->fournisseur->commande->lire); - } - $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=2", $langs->trans("StatusSupplierOrderApprovedShort"), 2, $user->rights->fournisseur->commande->lire); - $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=3", $langs->trans("StatusSupplierOrderOnProcessShort"), 2, $user->rights->fournisseur->commande->lire); - $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=4", $langs->trans("StatusSupplierOrderReceivedPartiallyShort"), 2, $user->rights->fournisseur->commande->lire); - $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=5", $langs->trans("StatusSupplierOrderReceivedAll"), 2, $user->rights->fournisseur->commande->lire); - $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=6,7", $langs->trans("StatusSupplierOrderCanceled"), 2, $user->rights->fournisseur->commande->lire); - $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=9", $langs->trans("StatusSupplierOrderRefused"), 2, $user->rights->fournisseur->commande->lire); - } - // Billed is another field. We should add instead a dedicated filter on list. if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders_suppliers") $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&billed=1", $langs->trans("Billed"), 2, $user->rights->fournisseur->commande->lire); + $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=0", $langs->trans("StatusSupplierOrderDraftShort"), 2, $user->rights->fournisseur->commande->lire); + if (empty($conf->global->SUPPLIER_ORDER_HIDE_VALIDATED)) $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=1", $langs->trans("StatusSupplierOrderValidated"), 2, $user->rights->fournisseur->commande->lire); + $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=2", $langs->trans("StatusSupplierOrderApprovedShort"), 2, $user->rights->fournisseur->commande->lire); + $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=3", $langs->trans("StatusSupplierOrderOnProcessShort"), 2, $user->rights->fournisseur->commande->lire); + $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=4", $langs->trans("StatusSupplierOrderReceivedPartiallyShort"), 2, $user->rights->fournisseur->commande->lire); + $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=5", $langs->trans("StatusSupplierOrderReceivedAll"), 2, $user->rights->fournisseur->commande->lire); + $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=6,7", $langs->trans("StatusSupplierOrderCanceled"), 2, $user->rights->fournisseur->commande->lire); + $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&statut=9", $langs->trans("StatusSupplierOrderRefused"), 2, $user->rights->fournisseur->commande->lire); + } + // Billed is another field. We should add instead a dedicated filter on list. if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders_suppliers") $newmenu->add("/fourn/commande/list.php?leftmenu=orders_suppliers&billed=1", $langs->trans("Billed"), 2, $user->rights->fournisseur->commande->lire); $newmenu->add("/commande/stats/index.php?leftmenu=orders_suppliers&mode=supplier", $langs->trans("Statistics"), 1, $user->rights->fournisseur->commande->lire); } // Contrat - if (!empty($conf->contrat->enabled)) { + if (!empty($conf->contrat->enabled)) + { $langs->load("contracts"); $newmenu->add("/contrat/index.php?leftmenu=contracts", $langs->trans("ContractsSubscriptions"), 0, $user->rights->contrat->lire, '', $mainmenu, 'contracts', 2000); $newmenu->add("/contrat/card.php?action=create&leftmenu=contracts", $langs->trans("NewContractSubscription"), 1, $user->rights->contrat->creer); $newmenu->add("/contrat/list.php?leftmenu=contracts", $langs->trans("List"), 1, $user->rights->contrat->lire); $newmenu->add("/contrat/services_list.php?leftmenu=contracts", $langs->trans("MenuServices"), 1, $user->rights->contrat->lire); if ($usemenuhider || empty($leftmenu) || $leftmenu == "contracts") { - $newmenu->add("/contrat/services_list.php?leftmenu=contracts&mode=0", $langs->trans("MenuInactiveServices"), 2, $user->rights->contrat->lire); - $newmenu->add("/contrat/services_list.php?leftmenu=contracts&mode=4", $langs->trans("MenuRunningServices"), 2, $user->rights->contrat->lire); - $newmenu->add("/contrat/services_list.php?leftmenu=contracts&mode=4&filter=expired", $langs->trans("MenuExpiredServices"), 2, $user->rights->contrat->lire); - $newmenu->add("/contrat/services_list.php?leftmenu=contracts&mode=5", $langs->trans("MenuClosedServices"), 2, $user->rights->contrat->lire); - } + $newmenu->add("/contrat/services_list.php?leftmenu=contracts&mode=0", $langs->trans("MenuInactiveServices"), 2, $user->rights->contrat->lire); + $newmenu->add("/contrat/services_list.php?leftmenu=contracts&mode=4", $langs->trans("MenuRunningServices"), 2, $user->rights->contrat->lire); + $newmenu->add("/contrat/services_list.php?leftmenu=contracts&mode=4&filter=expired", $langs->trans("MenuExpiredServices"), 2, $user->rights->contrat->lire); + $newmenu->add("/contrat/services_list.php?leftmenu=contracts&mode=5", $langs->trans("MenuClosedServices"), 2, $user->rights->contrat->lire); + } } // Interventions - if (!empty($conf->ficheinter->enabled)) { + if (!empty($conf->ficheinter->enabled)) + { $langs->load("interventions"); $newmenu->add("/fichinter/index.php?leftmenu=ficheinter", $langs->trans("Interventions"), 0, $user->rights->ficheinter->lire, '', $mainmenu, 'ficheinter', 2200); $newmenu->add("/fichinter/card.php?action=create&leftmenu=ficheinter", $langs->trans("NewIntervention"), 1, $user->rights->ficheinter->creer, '', '', '', 201); $newmenu->add("/fichinter/list.php?leftmenu=ficheinter", $langs->trans("List"), 1, $user->rights->ficheinter->lire, '', '', '', 202); - if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { - $newmenu->add("/fichinter/card-rec.php?leftmenu=ficheinter", $langs->trans("ListOfTemplates"), 1, $user->rights->ficheinter->lire, '', '', '', 203); - } + if ($conf->global->MAIN_FEATURES_LEVEL >= 2) $newmenu->add("/fichinter/card-rec.php?leftmenu=ficheinter", $langs->trans("ListOfTemplates"), 1, $user->rights->ficheinter->lire, '', '', '', 203); $newmenu->add("/fichinter/stats/index.php?leftmenu=ficheinter", $langs->trans("Statistics"), 1, $user->rights->ficheinter->lire); } } @@ -1012,17 +1005,20 @@ /* * Menu COMPTA-FINANCIAL */ - if ($mainmenu == 'billing') { + if ($mainmenu == 'billing') + { $langs->load("companies"); // Customers invoices - if (!empty($conf->facture->enabled)) { + if (!empty($conf->facture->enabled)) + { $langs->load("bills"); - $newmenu->add("/compta/facture/index.php?leftmenu=customers_bills", $langs->trans("BillsCustomers"), 0, $user->rights->facture->lire, '', $mainmenu, 'customers_bills'); + $newmenu->add("/compta/facture/list.php?leftmenu=customers_bills", $langs->trans("BillsCustomers"), 0, $user->rights->facture->lire, '', $mainmenu, 'customers_bills'); $newmenu->add("/compta/facture/card.php?action=create", $langs->trans("NewBill"), 1, $user->rights->facture->creer); $newmenu->add("/compta/facture/list.php?leftmenu=customers_bills", $langs->trans("List"), 1, $user->rights->facture->lire, '', $mainmenu, 'customers_bills_list'); - if ($usemenuhider || empty($leftmenu) || preg_match('/customers_bills(|_draft|_notpaid|_paid|_canceled)$/', $leftmenu)) { + if ($usemenuhider || empty($leftmenu) || preg_match('/customers_bills(|_draft|_notpaid|_paid|_canceled)$/', $leftmenu)) + { $newmenu->add("/compta/facture/list.php?leftmenu=customers_bills_draft&search_status=0", $langs->trans("BillShortStatusDraft"), 2, $user->rights->facture->lire); $newmenu->add("/compta/facture/list.php?leftmenu=customers_bills_notpaid&search_status=1", $langs->trans("BillShortStatusNotPaid"), 2, $user->rights->facture->lire); $newmenu->add("/compta/facture/list.php?leftmenu=customers_bills_paid&search_status=2", $langs->trans("BillShortStatusPaid"), 2, $user->rights->facture->lire); @@ -1032,7 +1028,8 @@ $newmenu->add("/compta/paiement/list.php?leftmenu=customers_bills_payment", $langs->trans("Payments"), 1, $user->rights->facture->lire, '', $mainmenu, 'customers_bills_payment'); - if (!empty($conf->global->BILL_ADD_PAYMENT_VALIDATION)) { + if (!empty($conf->global->BILL_ADD_PAYMENT_VALIDATION)) + { $newmenu->add("/compta/paiement/tovalidate.php?leftmenu=customers_bills_tovalid", $langs->trans("MenuToValid"), 2, $user->rights->facture->lire, '', $mainmenu, 'customer_bills_tovalid'); } $newmenu->add("/compta/paiement/rapport.php?leftmenu=customers_bills_reports", $langs->trans("Reportings"), 2, $user->rights->facture->lire, '', $mainmenu, 'customers_bills_reports'); @@ -1041,9 +1038,10 @@ } // Suppliers invoices - if (!empty($conf->societe->enabled) && !empty($conf->supplier_invoice->enabled)) { + if (!empty($conf->societe->enabled) && !empty($conf->supplier_invoice->enabled)) + { $langs->load("bills"); - $newmenu->add("/fourn/facture/index.php?leftmenu=suppliers_bills", $langs->trans("BillsSuppliers"), 0, $user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills'); + $newmenu->add("/fourn/facture/list.php?leftmenu=suppliers_bills", $langs->trans("BillsSuppliers"), 0, $user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills'); $newmenu->add("/fourn/facture/card.php?leftmenu=suppliers_bills&action=create", $langs->trans("NewBill"), 1, $user->rights->fournisseur->facture->creer, '', $mainmenu, 'suppliers_bills_create'); $newmenu->add("/fourn/facture/list.php?leftmenu=suppliers_bills", $langs->trans("List"), 1, $user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_list'); @@ -1053,7 +1051,7 @@ $newmenu->add("/fourn/facture/list.php?leftmenu=suppliers_bills_paid&search_status=2", $langs->trans("BillShortStatusPaid"), 2, $user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_paid'); } - $newmenu->add("/fourn/paiement/list.php?leftmenu=suppliers_bills_payment", $langs->trans("Payments"), 1, $user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_payment'); + $newmenu->add("/fourn/facture/paiement.php?leftmenu=suppliers_bills_payment", $langs->trans("Payments"), 1, $user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_payment'); $newmenu->add("/fourn/facture/rapport.php?leftmenu=suppliers_bills_report", $langs->trans("Reportings"), 2, $user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_report'); @@ -1061,17 +1059,18 @@ } // Orders - if (!empty($conf->commande->enabled)) { + if (!empty($conf->commande->enabled)) + { $langs->load("orders"); - if (!empty($conf->facture->enabled)) { - $newmenu->add("/commande/list.php?leftmenu=orders&search_status=-3&billed=0&contextpage=billableorders", $langs->trans("MenuOrdersToBill2"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders'); - } + if (!empty($conf->facture->enabled)) $newmenu->add("/commande/list.php?leftmenu=orders&search_status=-3&billed=0&contextpage=billableorders", $langs->trans("MenuOrdersToBill2"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders'); //if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/", $langs->trans("StatusOrderToBill"), 1, $user->rights->commande->lire); } // Supplier Orders to bill - if (!empty($conf->supplier_invoice->enabled)) { - if (!empty($conf->global->SUPPLIER_MENU_ORDER_RECEIVED_INTO_INVOICE)) { + if (!empty($conf->supplier_invoice->enabled)) + { + if (!empty($conf->global->SUPPLIER_MENU_ORDER_RECEIVED_INTO_INVOICE)) + { $langs->load("supplier"); $newmenu->add("/fourn/commande/list.php?leftmenu=orders&search_status=5&billed=0", $langs->trans("MenuOrdersSupplierToBill"), 0, $user->rights->commande->lire, '', $mainmenu, 'orders'); //if ($usemenuhider || empty($leftmenu) || $leftmenu=="orders") $newmenu->add("/commande/", $langs->trans("StatusOrderToBill"), 1, $user->rights->commande->lire); @@ -1080,92 +1079,106 @@ // Donations - if (!empty($conf->don->enabled)) { + if (!empty($conf->don->enabled)) + { $langs->load("donations"); $newmenu->add("/don/index.php?leftmenu=donations&mainmenu=billing", $langs->trans("Donations"), 0, $user->rights->don->lire, '', $mainmenu, 'donations'); if ($usemenuhider || empty($leftmenu) || $leftmenu == "donations") { - $newmenu->add("/don/card.php?leftmenu=donations&action=create", $langs->trans("NewDonation"), 1, $user->rights->don->creer); - $newmenu->add("/don/list.php?leftmenu=donations", $langs->trans("List"), 1, $user->rights->don->lire); - } + $newmenu->add("/don/card.php?leftmenu=donations&action=create", $langs->trans("NewDonation"), 1, $user->rights->don->creer); + $newmenu->add("/don/list.php?leftmenu=donations", $langs->trans("List"), 1, $user->rights->don->lire); + } // if ($leftmenu=="donations") $newmenu->add("/don/stats/index.php",$langs->trans("Statistics"), 1, $user->rights->don->lire); } // Taxes and social contributions - if (!empty($conf->tax->enabled)) { - $newmenu->add("/compta/charges/index.php?leftmenu=tax&mainmenu=billing", $langs->trans("MenuTaxesAndSpecialExpenses"), 0, $user->rights->tax->charges->lire, '', $mainmenu, 'tax'); - - $newmenu->add("/compta/sociales/list.php?leftmenu=tax_social", $langs->trans("MenuSocialContributions"), 1, $user->rights->tax->charges->lire); - if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_social/i', $leftmenu)) { - $newmenu->add("/compta/sociales/card.php?leftmenu=tax_social&action=create", $langs->trans("MenuNewSocialContribution"), 2, $user->rights->tax->charges->creer); - $newmenu->add("/compta/sociales/list.php?leftmenu=tax_social", $langs->trans("List"), 2, $user->rights->tax->charges->lire); - $newmenu->add("/compta/sociales/payments.php?leftmenu=tax_social&mainmenu=billing", $langs->trans("Payments"), 2, $user->rights->tax->charges->lire); - } - // VAT - if (empty($conf->global->TAX_DISABLE_VAT_MENUS)) { - global $mysoc; - - $newmenu->add("/compta/tva/list.php?leftmenu=tax_vat&mainmenu=billing", $langs->transcountry("VAT", $mysoc->country_code), 1, $user->rights->tax->charges->lire, '', $mainmenu, 'tax_vat'); - if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_vat/i', $leftmenu)) { - $newmenu->add("/compta/tva/card.php?leftmenu=tax_vat&action=create", $langs->trans("New"), 2, $user->rights->tax->charges->creer); - $newmenu->add("/compta/tva/list.php?leftmenu=tax_vat", $langs->trans("List"), 2, $user->rights->tax->charges->lire); - $newmenu->add("/compta/tva/index.php?leftmenu=tax_vat", $langs->trans("ReportByMonth"), 2, $user->rights->tax->charges->lire); - $newmenu->add("/compta/tva/clients.php?leftmenu=tax_vat", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire); - $newmenu->add("/compta/tva/quadri_detail.php?leftmenu=tax_vat", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire); - } - - //Local Taxes 1 - if ($mysoc->useLocalTax(1) && (isset($mysoc->localtax1_assuj) && $mysoc->localtax1_assuj == "1")) { - $newmenu->add("/compta/localtax/list.php?leftmenu=tax_1_vat&mainmenu=billing&localTaxType=1", $langs->transcountry("LT1", $mysoc->country_code), 1, $user->rights->tax->charges->lire); - if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_1_vat/i', $leftmenu)) { - $newmenu->add("/compta/localtax/card.php?leftmenu=tax_1_vat&action=create&localTaxType=1", $langs->trans("New"), 2, $user->rights->tax->charges->creer); - $newmenu->add("/compta/localtax/list.php?leftmenu=tax_1_vat&localTaxType=1", $langs->trans("List"), 2, $user->rights->tax->charges->lire); - $newmenu->add("/compta/localtax/index.php?leftmenu=tax_1_vat&localTaxType=1", $langs->trans("ReportByMonth"), 2, $user->rights->tax->charges->lire); - $newmenu->add("/compta/localtax/clients.php?leftmenu=tax_1_vat&localTaxType=1", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire); - $newmenu->add("/compta/localtax/quadri_detail.php?leftmenu=tax_1_vat&localTaxType=1", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire); + if (!empty($conf->tax->enabled) || !empty($conf->salaries->enabled) || !empty($conf->loan->enabled) || !empty($conf->banque->enabled)) + { + global $mysoc; + + $permtoshowmenu = ((!empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (!empty($conf->salaries->enabled) && !empty($user->rights->salaries->read)) || (!empty($conf->loan->enabled) && $user->rights->loan->read) || (!empty($conf->banque->enabled) && $user->rights->banque->lire)); + $newmenu->add("/compta/charges/index.php?leftmenu=tax&mainmenu=billing", $langs->trans("MenuTaxesAndSpecialExpenses"), 0, $permtoshowmenu, '', $mainmenu, 'tax'); + + // Social contributions + if (!empty($conf->tax->enabled)) + { + $newmenu->add("/compta/sociales/list.php?leftmenu=tax_social", $langs->trans("MenuSocialContributions"), 1, $user->rights->tax->charges->lire); + if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_social/i', $leftmenu)) { + $newmenu->add("/compta/sociales/card.php?leftmenu=tax_social&action=create", $langs->trans("MenuNewSocialContribution"), 2, $user->rights->tax->charges->creer); + $newmenu->add("/compta/sociales/list.php?leftmenu=tax_social", $langs->trans("List"), 2, $user->rights->tax->charges->lire); + $newmenu->add("/compta/sociales/payments.php?leftmenu=tax_social&mainmenu=billing&mode=sconly", $langs->trans("Payments"), 2, $user->rights->tax->charges->lire); + } + // VAT + if (empty($conf->global->TAX_DISABLE_VAT_MENUS)) + { + $newmenu->add("/compta/tva/list.php?leftmenu=tax_vat&mainmenu=billing", $langs->transcountry("VAT", $mysoc->country_code), 1, $user->rights->tax->charges->lire, '', $mainmenu, 'tax_vat'); + if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_vat/i', $leftmenu)) { + $newmenu->add("/compta/tva/card.php?leftmenu=tax_vat&action=create", $langs->trans("New"), 2, $user->rights->tax->charges->creer); + $newmenu->add("/compta/tva/list.php?leftmenu=tax_vat", $langs->trans("List"), 2, $user->rights->tax->charges->lire); + $newmenu->add("/compta/tva/index.php?leftmenu=tax_vat", $langs->trans("ReportByMonth"), 2, $user->rights->tax->charges->lire); + $newmenu->add("/compta/tva/clients.php?leftmenu=tax_vat", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire); + $newmenu->add("/compta/tva/quadri_detail.php?leftmenu=tax_vat", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire); + } + global $mysoc; + + //Local Taxes 1 + if ($mysoc->useLocalTax(1) && (isset($mysoc->localtax1_assuj) && $mysoc->localtax1_assuj == "1")) + { + $newmenu->add("/compta/localtax/list.php?leftmenu=tax_1_vat&mainmenu=billing&localTaxType=1", $langs->transcountry("LT1", $mysoc->country_code), 1, $user->rights->tax->charges->lire); + if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_1_vat/i', $leftmenu)) { + $newmenu->add("/compta/localtax/card.php?leftmenu=tax_1_vat&action=create&localTaxType=1", $langs->trans("New"), 2, $user->rights->tax->charges->creer); + $newmenu->add("/compta/localtax/list.php?leftmenu=tax_1_vat&localTaxType=1", $langs->trans("List"), 2, $user->rights->tax->charges->lire); + $newmenu->add("/compta/localtax/index.php?leftmenu=tax_1_vat&localTaxType=1", $langs->trans("ReportByMonth"), 2, $user->rights->tax->charges->lire); + $newmenu->add("/compta/localtax/clients.php?leftmenu=tax_1_vat&localTaxType=1", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire); + $newmenu->add("/compta/localtax/quadri_detail.php?leftmenu=tax_1_vat&localTaxType=1", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire); + } + } + //Local Taxes 2 + if ($mysoc->useLocalTax(2) && (isset($mysoc->localtax2_assuj) && $mysoc->localtax2_assuj == "1")) + { + $newmenu->add("/compta/localtax/list.php?leftmenu=tax_2_vat&mainmenu=billing&localTaxType=2", $langs->transcountry("LT2", $mysoc->country_code), 1, $user->rights->tax->charges->lire); + if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_2_vat/i', $leftmenu)) { + $newmenu->add("/compta/localtax/card.php?leftmenu=tax_2_vat&action=create&localTaxType=2", $langs->trans("New"), 2, $user->rights->tax->charges->creer); + $newmenu->add("/compta/localtax/list.php?leftmenu=tax_2_vat&localTaxType=2", $langs->trans("List"), 2, $user->rights->tax->charges->lire); + $newmenu->add("/compta/localtax/index.php?leftmenu=tax_2_vat&localTaxType=2", $langs->trans("ReportByMonth"), 2, $user->rights->tax->charges->lire); + $newmenu->add("/compta/localtax/clients.php?leftmenu=tax_2_vat&localTaxType=2", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire); + $newmenu->add("/compta/localtax/quadri_detail.php?leftmenu=tax_2_vat&localTaxType=2", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire); + } } } - //Local Taxes 2 - if ($mysoc->useLocalTax(2) && (isset($mysoc->localtax2_assuj) && $mysoc->localtax2_assuj == "1")) { - $newmenu->add("/compta/localtax/list.php?leftmenu=tax_2_vat&mainmenu=billing&localTaxType=2", $langs->transcountry("LT2", $mysoc->country_code), 1, $user->rights->tax->charges->lire); - if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_2_vat/i', $leftmenu)) { - $newmenu->add("/compta/localtax/card.php?leftmenu=tax_2_vat&action=create&localTaxType=2", $langs->trans("New"), 2, $user->rights->tax->charges->creer); - $newmenu->add("/compta/localtax/list.php?leftmenu=tax_2_vat&localTaxType=2", $langs->trans("List"), 2, $user->rights->tax->charges->lire); - $newmenu->add("/compta/localtax/index.php?leftmenu=tax_2_vat&localTaxType=2", $langs->trans("ReportByMonth"), 2, $user->rights->tax->charges->lire); - $newmenu->add("/compta/localtax/clients.php?leftmenu=tax_2_vat&localTaxType=2", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire); - $newmenu->add("/compta/localtax/quadri_detail.php?leftmenu=tax_2_vat&localTaxType=2", $langs->trans("ReportByQuarter"), 2, $user->rights->tax->charges->lire); - } - } - } - } - - // Salaries - if (!empty($conf->salaries->enabled)) { - $langs->load("salaries"); - $newmenu->add("/salaries/list.php?leftmenu=tax_salary&mainmenu=billing", $langs->trans("Salaries"), 0, $user->rights->salaries->read, '', $mainmenu, 'tax_salary'); - if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_salary/i', $leftmenu)) { - $newmenu->add("/salaries/card.php?leftmenu=tax_salary&action=create", $langs->trans("NewPayment"), 1, $user->rights->salaries->write); - $newmenu->add("/salaries/list.php?leftmenu=tax_salary", $langs->trans("Payments"), 1, $user->rights->salaries->read); - $newmenu->add("/salaries/stats/index.php?leftmenu=tax_salary", $langs->trans("Statistics"), 1, $user->rights->salaries->read); - } - } - - // Loan - if (!empty($conf->loan->enabled)) { - $langs->load("loan"); - $newmenu->add("/loan/list.php?leftmenu=tax_loan&mainmenu=billing", $langs->trans("Loans"), 0, $user->rights->loan->read, '', $mainmenu, 'tax_loan'); - if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_loan/i', $leftmenu)) { - $newmenu->add("/loan/card.php?leftmenu=tax_loan&action=create", $langs->trans("NewLoan"), 1, $user->rights->loan->write); - //$newmenu->add("/loan/payment/list.php?leftmenu=tax_loan",$langs->trans("Payments"),2,$user->rights->loan->read); - } - } - - // Various payment - if (!empty($conf->banque->enabled) && empty($conf->global->BANK_USE_OLD_VARIOUS_PAYMENT)) { - $langs->load("banks"); - $newmenu->add("/compta/bank/various_payment/list.php?leftmenu=tax_various&mainmenu=billing", $langs->trans("MenuVariousPayment"), 0, $user->rights->banque->lire, '', $mainmenu, 'tax_various'); - if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_various/i', $leftmenu)) { - $newmenu->add("/compta/bank/various_payment/card.php?leftmenu=tax_various&action=create", $langs->trans("New"), 1, $user->rights->banque->modifier); - $newmenu->add("/compta/bank/various_payment/list.php?leftmenu=tax_various", $langs->trans("List"), 1, $user->rights->banque->lire); + } + + // Salaries + if (!empty($conf->salaries->enabled)) + { + $langs->load("salaries"); + $newmenu->add("/salaries/list.php?leftmenu=tax_salary&mainmenu=billing", $langs->trans("Salaries"), 0, $user->rights->salaries->read, '', $mainmenu, 'tax_salary'); + if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_salary/i', $leftmenu)) { + $newmenu->add("/salaries/card.php?leftmenu=tax_salary&action=create", $langs->trans("NewPayment"), 1, $user->rights->salaries->write); + $newmenu->add("/salaries/list.php?leftmenu=tax_salary", $langs->trans("Payments"), 1, $user->rights->salaries->read); + $newmenu->add("/salaries/stats/index.php?leftmenu=tax_salary", $langs->trans("Statistics"), 1, $user->rights->salaries->read); + } + } + + // Loan + if (!empty($conf->loan->enabled)) + { + $langs->load("loan"); + $newmenu->add("/loan/list.php?leftmenu=tax_loan&mainmenu=billing", $langs->trans("Loans"), 0, $user->rights->loan->read, '', $mainmenu, 'tax_loan'); + if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_loan/i', $leftmenu)) { + $newmenu->add("/loan/card.php?leftmenu=tax_loan&action=create", $langs->trans("NewLoan"), 1, $user->rights->loan->write); + //$newmenu->add("/loan/payment/list.php?leftmenu=tax_loan",$langs->trans("Payments"),2,$user->rights->loan->read); + } + } + + // Various payment + if (!empty($conf->banque->enabled) && empty($conf->global->BANK_USE_OLD_VARIOUS_PAYMENT)) + { + $langs->load("banks"); + $newmenu->add("/compta/bank/various_payment/list.php?leftmenu=tax_various&mainmenu=billing", $langs->trans("MenuVariousPayment"), 0, $user->rights->banque->lire, '', $mainmenu, 'tax_various'); + if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_various/i', $leftmenu)) { + $newmenu->add("/compta/bank/various_payment/card.php?leftmenu=tax_various&action=create", $langs->trans("New"), 1, $user->rights->banque->modifier); + $newmenu->add("/compta/bank/various_payment/list.php?leftmenu=tax_various", $langs->trans("List"), 1, $user->rights->banque->lire); + } } } } @@ -1173,11 +1186,13 @@ /* * Menu COMPTA-FINANCIAL */ - if ($mainmenu == 'accountancy') { + if ($mainmenu == 'accountancy') + { $langs->load("companies"); // Accounting (Double entries) - if (!empty($conf->accounting->enabled)) { + if (!empty($conf->accounting->enabled)) + { $permtoshowmenu = (!empty($conf->accounting->enabled) || $user->rights->accounting->bind->write || $user->rights->compta->resultat->lire); //$newmenu->add("/accountancy/index.php?leftmenu=accountancy", $langs->trans("MenuAccountancy"), 0, $permtoshowmenu, '', $mainmenu, 'accountancy'); @@ -1194,7 +1209,6 @@ $newmenu->add("/accountancy/admin/journals_list.php?id=35&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("AccountingJournals"), 1, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_journal', 30); $newmenu->add("/accountancy/admin/accountmodel.php?id=31&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("Pcg_version"), 1, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_chartmodel', 40); $newmenu->add("/accountancy/admin/account.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("Chartofaccounts"), 1, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_chart', 41); - $newmenu->add("/accountancy/admin/subaccount.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("ChartOfSubaccounts"), 1, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_chart', 41); $newmenu->add("/accountancy/admin/categories_list.php?id=32&search_country_id=".$mysoc->country_id."&mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("AccountingCategory"), 1, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_chart', 50); $newmenu->add("/accountancy/admin/defaultaccounts.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("MenuDefaultAccounts"), 1, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_default', 60); if (!empty($conf->banque->enabled)) { @@ -1216,166 +1230,160 @@ $newmenu->add("/accountancy/admin/export.php?mainmenu=accountancy&leftmenu=accountancy_admin", $langs->trans("ExportOptions"), 1, $user->rights->accounting->chartofaccount, '', $mainmenu, 'accountancy_admin_export', 130); } - // Transfer in accounting - $newmenu->add("/accountancy/index.php?leftmenu=accountancy_transfer", $langs->trans("TransferInAccounting"), 0, $user->rights->accounting->bind->write, '', $mainmenu, 'transfer', 1); - - // Binding - // $newmenu->add("", $langs->trans("Binding"), 0, $user->rights->accounting->bind->write, '', $mainmenu, 'dispatch'); - if (!empty($conf->facture->enabled) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_SALES)) { - $newmenu->add("/accountancy/customer/index.php?leftmenu=accountancy_dispatch_customer&mainmenu=accountancy", $langs->trans("CustomersVentilation"), 1, $user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_customer'); - if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_customer/', $leftmenu)) { - $newmenu->add("/accountancy/customer/list.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_customer", $langs->trans("ToBind"), 2, $user->rights->accounting->bind->write); - $newmenu->add("/accountancy/customer/lines.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_customer", $langs->trans("Binded"), 2, $user->rights->accounting->bind->write); - } - } - if (!empty($conf->supplier_invoice->enabled) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES)) { - $newmenu->add("/accountancy/supplier/index.php?leftmenu=accountancy_dispatch_supplier&mainmenu=accountancy", $langs->trans("SuppliersVentilation"), 1, $user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_supplier'); - if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_supplier/', $leftmenu)) { - $newmenu->add("/accountancy/supplier/list.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_supplier", $langs->trans("ToBind"), 2, $user->rights->accounting->bind->write); - $newmenu->add("/accountancy/supplier/lines.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_supplier", $langs->trans("Binded"), 2, $user->rights->accounting->bind->write); - } - } - if (!empty($conf->expensereport->enabled) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS)) { - $newmenu->add("/accountancy/expensereport/index.php?leftmenu=accountancy_dispatch_expensereport&mainmenu=accountancy", $langs->trans("ExpenseReportsVentilation"), 1, $user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_expensereport'); - if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_expensereport/', $leftmenu)) { - $newmenu->add("/accountancy/expensereport/list.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_expensereport", $langs->trans("ToBind"), 2, $user->rights->accounting->bind->write); - $newmenu->add("/accountancy/expensereport/lines.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_expensereport", $langs->trans("Binded"), 2, $user->rights->accounting->bind->write); - } - } + // Transfer in accounting + $newmenu->add("/accountancy/index.php?leftmenu=accountancy_transfer", $langs->trans("TransferInAccounting"), 0, $user->rights->accounting->bind->write, '', $mainmenu, 'transfer', 1); + + // Binding + // $newmenu->add("", $langs->trans("Binding"), 0, $user->rights->accounting->bind->write, '', $mainmenu, 'dispatch'); + if (!empty($conf->facture->enabled)) + { + $newmenu->add("/accountancy/customer/index.php?leftmenu=accountancy_dispatch_customer&mainmenu=accountancy", $langs->trans("CustomersVentilation"), 1, $user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_customer'); + if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_customer/', $leftmenu)) { + $newmenu->add("/accountancy/customer/list.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_customer", $langs->trans("ToBind"), 2, $user->rights->accounting->bind->write); + $newmenu->add("/accountancy/customer/lines.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_customer", $langs->trans("Binded"), 2, $user->rights->accounting->bind->write); + } + } + if (!empty($conf->supplier_invoice->enabled)) + { + $newmenu->add("/accountancy/supplier/index.php?leftmenu=accountancy_dispatch_supplier&mainmenu=accountancy", $langs->trans("SuppliersVentilation"), 1, $user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_supplier'); + if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_supplier/', $leftmenu)) { + $newmenu->add("/accountancy/supplier/list.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_supplier", $langs->trans("ToBind"), 2, $user->rights->accounting->bind->write); + $newmenu->add("/accountancy/supplier/lines.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_supplier", $langs->trans("Binded"), 2, $user->rights->accounting->bind->write); + } + } + if (!empty($conf->expensereport->enabled)) + { + $newmenu->add("/accountancy/expensereport/index.php?leftmenu=accountancy_dispatch_expensereport&mainmenu=accountancy", $langs->trans("ExpenseReportsVentilation"), 1, $user->rights->accounting->bind->write, '', $mainmenu, 'dispatch_expensereport'); + if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_dispatch_expensereport/', $leftmenu)) { + $newmenu->add("/accountancy/expensereport/list.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_expensereport", $langs->trans("ToBind"), 2, $user->rights->accounting->bind->write); + $newmenu->add("/accountancy/expensereport/lines.php?mainmenu=accountancy&leftmenu=accountancy_dispatch_expensereport", $langs->trans("Binded"), 2, $user->rights->accounting->bind->write); + } + } // Journals - if (!empty($conf->accounting->enabled) && !empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') { - $newmenu->add('', $langs->trans("RegistrationInAccounting"), 1, $user->rights->accounting->comptarapport->lire, '', '', ''); + if (!empty($conf->accounting->enabled) && !empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') + { + $newmenu->add('', $langs->trans("RegistrationInAccounting"), 1, $user->rights->accounting->comptarapport->lire); // Multi journal $sql = "SELECT rowid, code, label, nature"; $sql .= " FROM ".MAIN_DB_PREFIX."accounting_journal"; $sql .= " WHERE entity = ".$conf->entity; $sql .= " AND active = 1"; - $sql .= " ORDER BY nature ASC, label DESC"; + $sql .= " ORDER BY label DESC"; $resql = $db->query($sql); - if ($resql) { + if ($resql) + { $numr = $db->num_rows($resql); $i = 0; - if ($numr > 0) { - while ($i < $numr) { + if ($numr > 0) + { + while ($i < $numr) + { $objp = $db->fetch_object($resql); $nature = ''; // Must match array $sourceList defined into journals_list.php - if ($objp->nature == 2 && !empty($conf->facture->enabled) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_SALES)) { - $nature = "sells"; + if ($objp->nature == 2 && !empty($conf->facture->enabled)) $nature = "sells"; + if ($objp->nature == 3 && (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_invoice->enabled))) $nature = "purchases"; + if ($objp->nature == 4 && !empty($conf->banque->enabled)) $nature = "bank"; + if ($objp->nature == 5 && !empty($conf->expensereport->enabled)) $nature = "expensereports"; + if ($objp->nature == 1) $nature = "various"; + if ($objp->nature == 8) $nature = "inventory"; + if ($objp->nature == 9) $nature = "hasnew"; + + // To enable when page exists + if (empty($conf->global->ACCOUNTANCY_SHOW_DEVELOP_JOURNAL)) + { + if ($nature == 'various' || $nature == 'hasnew' || $nature == 'inventory') $nature = ''; } - if ($objp->nature == 3 - && (!empty($conf->fournisseur->enabled) && empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) || !empty($conf->supplier_invoice->enabled)) - && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_PURCHASES)) { - $nature = "purchases"; - } - if ($objp->nature == 4 && !empty($conf->banque->enabled)) { - $nature = "bank"; - } - if ($objp->nature == 5 && !empty($conf->expensereport->enabled) && empty($conf->global->ACCOUNTING_DISABLE_BINDING_ON_EXPENSEREPORTS)) { - $nature = "expensereports"; - } - if ($objp->nature == 1) { - $nature = "various"; - } - if ($objp->nature == 8) { - $nature = "inventory"; - } - if ($objp->nature == 9) { - $nature = "hasnew"; - } - - // To enable when page exists - if (empty($conf->global->ACCOUNTANCY_SHOW_DEVELOP_JOURNAL)) { - if ($nature == 'various' || $nature == 'hasnew' || $nature == 'inventory') { - $nature = ''; - } - } - - if ($nature) { + + if ($nature) + { $langs->load('accountancy'); $journallabel = $langs->transnoentities($objp->label); // Labels in this table are set by loading llx_accounting_abc.sql. Label can be 'ACCOUNTING_SELL_JOURNAL', 'InventoryJournal', ... $newmenu->add('/accountancy/journal/'.$nature.'journal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal='.$objp->rowid, $journallabel, 2, $user->rights->accounting->comptarapport->lire); } $i++; } - } else { + } + else + { // Should not happend. Entries are added $newmenu->add('', $langs->trans("NoJournalDefined"), 2, $user->rights->accounting->comptarapport->lire); } - } else { - dol_print_error($db); } + else dol_print_error($db); $db->free($resql); } - // Accounting - $newmenu->add("/accountancy/index.php?leftmenu=accountancy_accountancy", $langs->trans("MenuAccountancy"), 0, $user->rights->accounting->mouvements->lire, '', $mainmenu, 'accountancy', 1); + // Accounting + $newmenu->add("/accountancy/index.php?leftmenu=accountancy_accountancy", $langs->trans("MenuAccountancy"), 0, $user->rights->accounting->mouvements->lire, '', $mainmenu, 'accountancy', 1); + + + // General Ledger + $newmenu->add("/accountancy/bookkeeping/list.php?mainmenu=accountancy&leftmenu=accountancy_accountancy", $langs->trans("Bookkeeping"), 1, $user->rights->accounting->mouvements->lire); // Balance $newmenu->add("/accountancy/bookkeeping/balance.php?mainmenu=accountancy&leftmenu=accountancy_accountancy", $langs->trans("AccountBalance"), 1, $user->rights->accounting->mouvements->lire); - // General Ledger - $newmenu->add("/accountancy/bookkeeping/listbyaccount.php?mainmenu=accountancy&leftmenu=accountancy_accountancy", $langs->trans("Bookkeeping"), 1, $user->rights->accounting->mouvements->lire); - - // Journals - $newmenu->add("/accountancy/bookkeeping/list.php?mainmenu=accountancy&leftmenu=accountancy_accountancy", $langs->trans("Journals"), 1, $user->rights->accounting->mouvements->lire); + // Closure + if (!empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 2) { + $newmenu->add("/accountancy/closure/index.php?mainmenu=accountancy&leftmenu=accountancy_closure", $langs->trans("MenuAccountancyClosure"), 1, $user->rights->accounting->fiscalyear->write, '', $mainmenu, 'closure'); + + if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_closure/', $leftmenu)) { + $newmenu->add("/accountancy/closure/validate.php?leftmenu=accountancy_closure", $langs->trans("MenuAccountancyValidationMovements"), 2, $user->rights->accounting->fiscalyear->write); + } + } // Files - if (empty($conf->global->ACCOUNTANCY_HIDE_EXPORT_FILES_MENU)) { + if (empty($conf->global->ACCOUNTANCY_HIDE_EXPORT_FILES_MENU)) + { $newmenu->add("/compta/accounting-files.php?mainmenu=accountancy&leftmenu=accountancy_files", $langs->trans("AccountantFiles"), 1, $user->rights->accounting->mouvements->lire); } - // Closure - if (!empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 2) { - $newmenu->add("/accountancy/closure/index.php?mainmenu=accountancy&leftmenu=accountancy_closure", $langs->trans("MenuAccountancyClosure"), 1, $user->rights->accounting->fiscalyear->write, '', $mainmenu, 'closure'); - } - // Reports - $newmenu->add("/accountancy/index.php?leftmenu=accountancy_report", $langs->trans("Reportings"), 1, $user->rights->accounting->comptarapport->lire, '', $mainmenu, 'ca'); - - if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/', $leftmenu)) { - $newmenu->add("/compta/resultat/index.php?leftmenu=accountancy_report", $langs->trans("MenuReportInOut"), 2, $user->rights->accounting->comptarapport->lire); - $newmenu->add("/compta/resultat/clientfourn.php?leftmenu=accountancy_report", $langs->trans("ByPredefinedAccountGroups"), 3, $user->rights->accounting->comptarapport->lire); - $newmenu->add("/compta/resultat/result.php?leftmenu=accountancy_report", $langs->trans("ByPersonalizedAccountGroups"), 3, $user->rights->accounting->comptarapport->lire); - } + $newmenu->add("/compta/resultat/index.php?mainmenu=accountancy&leftmenu=accountancy_report", $langs->trans("Reportings"), 1, $user->rights->accounting->comptarapport->lire, '', $mainmenu, 'ca'); + + if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/', $leftmenu)) { + $newmenu->add("/compta/resultat/index.php?leftmenu=accountancy_report", $langs->trans("MenuReportInOut"), 2, $user->rights->accounting->comptarapport->lire); + $newmenu->add("/compta/resultat/clientfourn.php?leftmenu=accountancy_report", $langs->trans("ByPredefinedAccountGroups"), 3, $user->rights->accounting->comptarapport->lire); + $newmenu->add("/compta/resultat/result.php?leftmenu=accountancy_report", $langs->trans("ByPersonalizedAccountGroups"), 3, $user->rights->accounting->comptarapport->lire); + } $modecompta = 'CREANCES-DETTES'; - if (!empty($conf->accounting->enabled) && !empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') { - $modecompta = 'BOOKKEEPING'; // Not yet implemented. Should be BOOKKEEPINGCOLLECTED - } - if ($modecompta) { + if (!empty($conf->accounting->enabled) && !empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') $modecompta = 'BOOKKEEPING'; // Not yet implemented. Should be BOOKKEEPINGCOLLECTED + if ($modecompta) + { if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/', $leftmenu)) { - $newmenu->add("/compta/stats/index.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ReportTurnover"), 2, $user->rights->accounting->comptarapport->lire); - $newmenu->add("/compta/stats/casoc.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByCompanies"), 3, $user->rights->accounting->comptarapport->lire); - $newmenu->add("/compta/stats/cabyuser.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByUsers"), 3, $user->rights->accounting->comptarapport->lire); - $newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByProductsAndServices"), 3, $user->rights->accounting->comptarapport->lire); - $newmenu->add("/compta/stats/byratecountry.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByVatRate"), 3, $user->rights->accounting->comptarapport->lire); - } + $newmenu->add("/compta/stats/index.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ReportTurnover"), 2, $user->rights->accounting->comptarapport->lire); + $newmenu->add("/compta/stats/casoc.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByCompanies"), 3, $user->rights->accounting->comptarapport->lire); + $newmenu->add("/compta/stats/cabyuser.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByUsers"), 3, $user->rights->accounting->comptarapport->lire); + $newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByProductsAndServices"), 3, $user->rights->accounting->comptarapport->lire); + $newmenu->add("/compta/stats/byratecountry.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByVatRate"), 3, $user->rights->accounting->comptarapport->lire); + } } $modecompta = 'RECETTES-DEPENSES'; //if (! empty($conf->accounting->enabled) && ! empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') $modecompta=''; // Not yet implemented. Should be BOOKKEEPINGCOLLECTED - if ($modecompta) { + if ($modecompta) + { if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/', $leftmenu)) { - $newmenu->add("/compta/stats/index.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ReportTurnoverCollected"), 2, $user->rights->accounting->comptarapport->lire); - $newmenu->add("/compta/stats/casoc.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByCompanies"), 3, $user->rights->accounting->comptarapport->lire); - $newmenu->add("/compta/stats/cabyuser.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByUsers"), 3, $user->rights->accounting->comptarapport->lire); - //$newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByProductsAndServices"),3,$user->rights->accounting->comptarapport->lire); - //$newmenu->add("/compta/stats/byratecountry.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByVatRate"),3,$user->rights->accounting->comptarapport->lire); - } + $newmenu->add("/compta/stats/index.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ReportTurnoverCollected"), 2, $user->rights->accounting->comptarapport->lire); + $newmenu->add("/compta/stats/casoc.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByCompanies"), 3, $user->rights->accounting->comptarapport->lire); + $newmenu->add("/compta/stats/cabyuser.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByUsers"), 3, $user->rights->accounting->comptarapport->lire); + //$newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByProductsAndServices"),3,$user->rights->accounting->comptarapport->lire); + //$newmenu->add("/compta/stats/byratecountry.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByVatRate"),3,$user->rights->accounting->comptarapport->lire); + } } $modecompta = 'CREANCES-DETTES'; - if (!empty($conf->accounting->enabled) && !empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') { - $modecompta = 'BOOKKEEPING'; // Not yet implemented. Should be BOOKKEEPINGCOLLECTED - } - if ($modecompta && $conf->fournisseur->enabled) { + if (!empty($conf->accounting->enabled) && !empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') $modecompta = 'BOOKKEEPING'; // Not yet implemented. Should be BOOKKEEPINGCOLLECTED + if ($modecompta && $conf->fournisseur->enabled) + { if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/', $leftmenu)) { $newmenu->add("/compta/stats/supplier_turnover.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ReportPurchaseTurnover"), 2, $user->rights->accounting->comptarapport->lire); $newmenu->add("/compta/stats/supplier_turnover_by_thirdparty.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByCompanies"), 3, $user->rights->accounting->comptarapport->lire); @@ -1385,75 +1393,69 @@ $modecompta = 'RECETTES-DEPENSES'; //if (! empty($conf->accounting->enabled) && ! empty($user->rights->accounting->comptarapport->lire) && $mainmenu == 'accountancy') $modecompta=''; // Not yet implemented. Should be BOOKKEEPINGCOLLECTED - if ($modecompta && $conf->fournisseur->enabled) { + if ($modecompta && $conf->fournisseur->enabled) + { if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy_report/', $leftmenu)) { $newmenu->add("/compta/stats/supplier_turnover.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ReportPurchaseTurnoverCollected"), 2, $user->rights->accounting->comptarapport->lire); $newmenu->add("/compta/stats/supplier_turnover_by_thirdparty.php?leftmenu=accountancy_report&modecompta=".$modecompta, $langs->trans("ByCompanies"), 3, $user->rights->accounting->comptarapport->lire); } } - } + } // Accountancy (simple) - if (!empty($conf->comptabilite->enabled)) { - // Files - if (empty($conf->global->ACCOUNTANCY_HIDE_EXPORT_FILES_MENU)) { - $newmenu->add("/compta/accounting-files.php?mainmenu=accountancy&leftmenu=accountancy_files", $langs->trans("AccountantFiles"), 0, $user->rights->compta->resultat->lire, '', $mainmenu, 'files'); - } - - // Bilan, resultats - $newmenu->add("/compta/resultat/index.php?leftmenu=report&mainmenu=accountancy", $langs->trans("Reportings"), 0, $user->rights->compta->resultat->lire, '', $mainmenu, 'ca'); - - if ($usemenuhider || empty($leftmenu) || preg_match('/report/', $leftmenu)) { - $newmenu->add("/compta/resultat/index.php?leftmenu=report", $langs->trans("MenuReportInOut"), 1, $user->rights->compta->resultat->lire); - $newmenu->add("/compta/resultat/clientfourn.php?leftmenu=report", $langs->trans("ByCompanies"), 2, $user->rights->compta->resultat->lire); - /* On verra ca avec module compabilite expert - $newmenu->add("/compta/resultat/compteres.php?leftmenu=report","Compte de resultat",2,$user->rights->compta->resultat->lire); - $newmenu->add("/compta/resultat/bilan.php?leftmenu=report","Bilan",2,$user->rights->compta->resultat->lire); - */ - $newmenu->add("/compta/stats/index.php?leftmenu=report", $langs->trans("ReportTurnover"), 1, $user->rights->compta->resultat->lire); - - /* - $newmenu->add("/compta/stats/cumul.php?leftmenu=report","Cumule",2,$user->rights->compta->resultat->lire); - if (! empty($conf->propal->enabled)) { - $newmenu->add("/compta/stats/prev.php?leftmenu=report","Previsionnel",2,$user->rights->compta->resultat->lire); - $newmenu->add("/compta/stats/comp.php?leftmenu=report","Transforme",2,$user->rights->compta->resultat->lire); - } - */ - $newmenu->add("/compta/stats/casoc.php?leftmenu=report", $langs->trans("ByCompanies"), 2, $user->rights->compta->resultat->lire); - $newmenu->add("/compta/stats/cabyuser.php?leftmenu=report", $langs->trans("ByUsers"), 2, $user->rights->compta->resultat->lire); - $newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=report", $langs->trans("ByProductsAndServices"), 2, $user->rights->compta->resultat->lire); - $newmenu->add("/compta/stats/byratecountry.php?leftmenu=report", $langs->trans("ByVatRate"), 2, $user->rights->compta->resultat->lire); + if (!empty($conf->comptabilite->enabled)) + { + // Files + if (empty($conf->global->ACCOUNTANCY_HIDE_EXPORT_FILES_MENU)) + { + $newmenu->add("/compta/accounting-files.php?mainmenu=accountancy&leftmenu=accountancy_files", $langs->trans("AccountantFiles"), 0, $user->rights->compta->resultat->lire, '', $mainmenu, 'files'); + } + + // Bilan, resultats + $newmenu->add("/compta/resultat/index.php?leftmenu=report&mainmenu=accountancy", $langs->trans("Reportings"), 0, $user->rights->compta->resultat->lire, '', $mainmenu, 'ca'); + + if ($usemenuhider || empty($leftmenu) || preg_match('/report/', $leftmenu)) { + $newmenu->add("/compta/resultat/index.php?leftmenu=report", $langs->trans("MenuReportInOut"), 1, $user->rights->compta->resultat->lire); + $newmenu->add("/compta/resultat/clientfourn.php?leftmenu=report", $langs->trans("ByCompanies"), 2, $user->rights->compta->resultat->lire); + /* On verra ca avec module compabilite expert + $newmenu->add("/compta/resultat/compteres.php?leftmenu=report","Compte de resultat",2,$user->rights->compta->resultat->lire); + $newmenu->add("/compta/resultat/bilan.php?leftmenu=report","Bilan",2,$user->rights->compta->resultat->lire); + */ + $newmenu->add("/compta/stats/index.php?leftmenu=report", $langs->trans("ReportTurnover"), 1, $user->rights->compta->resultat->lire); + + /* + $newmenu->add("/compta/stats/cumul.php?leftmenu=report","Cumule",2,$user->rights->compta->resultat->lire); + if (! empty($conf->propal->enabled)) { + $newmenu->add("/compta/stats/prev.php?leftmenu=report","Previsionnel",2,$user->rights->compta->resultat->lire); + $newmenu->add("/compta/stats/comp.php?leftmenu=report","Transforme",2,$user->rights->compta->resultat->lire); + } + */ + $newmenu->add("/compta/stats/casoc.php?leftmenu=report", $langs->trans("ByCompanies"), 2, $user->rights->compta->resultat->lire); + $newmenu->add("/compta/stats/cabyuser.php?leftmenu=report", $langs->trans("ByUsers"), 2, $user->rights->compta->resultat->lire); + $newmenu->add("/compta/stats/cabyprodserv.php?leftmenu=report", $langs->trans("ByProductsAndServices"), 2, $user->rights->compta->resultat->lire); + $newmenu->add("/compta/stats/byratecountry.php?leftmenu=report", $langs->trans("ByVatRate"), 2, $user->rights->compta->resultat->lire); //Achats $newmenu->add("/compta/stats/supplier_turnover.php?leftmenu=accountancy_report", $langs->trans("ReportPurchaseTurnover"), 1, $user->rights->compta->resultat->lire); $newmenu->add("/compta/stats/supplier_turnover_by_thirdparty.php?leftmenu=accountancy_report", $langs->trans("ByCompanies"), 2, $user->rights->compta->resultat->lire); $newmenu->add("/compta/stats/supplier_turnover_by_prodserv.php?leftmenu=accountancy_report", $langs->trans("ByProductsAndServices"), 2, $user->rights->compta->resultat->lire); - // Journals - $newmenu->add("/compta/journal/sellsjournal.php?leftmenu=report", $langs->trans("SellsJournal"), 1, $user->rights->compta->resultat->lire, '', '', '', 50); - $newmenu->add("/compta/journal/purchasesjournal.php?leftmenu=report", $langs->trans("PurchasesJournal"), 1, $user->rights->compta->resultat->lire, '', '', '', 51); - } - //if ($leftmenu=="ca") $newmenu->add("/compta/journaux/index.php?leftmenu=ca",$langs->trans("Journals"),1,$user->rights->compta->resultat->lire||$user->rights->accounting->comptarapport->lire); - } - - // Intracomm report - if (!empty($conf->intracommreport->enabled)) { - $newmenu->add("/intracommreport/list.php?leftmenu=intracommreport", $langs->trans("MenuIntracommReport"), 0, $user->rights->intracommreport->read, '', $mainmenu, 'intracommreport', 1); - if ($usemenuhider || empty($leftmenu) || preg_match('/intracommreport/', $leftmenu)) { - // DEB / DES - $newmenu->add("/intracommreport/card.php?action=create&leftmenu=intracommreport", $langs->trans("MenuIntracommReportNew"), 1, $user->rights->intracommreport->write, '', $mainmenu, 'intracommreport', 1); - $newmenu->add("/intracommreport/list.php?leftmenu=intracommreport", $langs->trans("MenuIntracommReportList"), 1, $user->rights->intracommreport->read, '', $mainmenu, 'intracommreport', 1); - } - } + // Journaux + $newmenu->add("/compta/journal/sellsjournal.php?leftmenu=report", $langs->trans("SellsJournal"), 1, $user->rights->compta->resultat->lire, '', '', '', 50); + $newmenu->add("/compta/journal/purchasesjournal.php?leftmenu=report", $langs->trans("PurchasesJournal"), 1, $user->rights->compta->resultat->lire, '', '', '', 51); + } + //if ($leftmenu=="ca") $newmenu->add("/compta/journaux/index.php?leftmenu=ca",$langs->trans("Journaux"),1,$user->rights->compta->resultat->lire||$user->rights->accounting->comptarapport->lire); + } // Assets - if (!empty($conf->asset->enabled)) { + if (!empty($conf->asset->enabled)) + { $newmenu->add("/asset/list.php?leftmenu=asset&mainmenu=accountancy", $langs->trans("MenuAssets"), 0, $user->rights->asset->read, '', $mainmenu, 'asset'); $newmenu->add("/asset/card.php?leftmenu=asset&action=create", $langs->trans("MenuNewAsset"), 1, $user->rights->asset->write); $newmenu->add("/asset/list.php?leftmenu=asset&mainmenu=accountancy", $langs->trans("MenuListAssets"), 1, $user->rights->asset->read); $newmenu->add("/asset/type.php?leftmenu=asset_type", $langs->trans("MenuTypeAssets"), 1, $user->rights->asset->read, '', $mainmenu, 'asset_type'); if ($usemenuhider || empty($leftmenu) || preg_match('/asset_type/', $leftmenu)) { - $newmenu->add("/asset/type.php?leftmenu=asset_type&action=create", $langs->trans("MenuNewTypeAssets"), 2, $user->rights->asset->setup_advance); - $newmenu->add("/asset/type.php?leftmenu=asset_type", $langs->trans("MenuListTypeAssets"), 2, $user->rights->asset->read); - } + $newmenu->add("/asset/type.php?leftmenu=asset_type&action=create", $langs->trans("MenuNewTypeAssets"), 2, (empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->write) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->asset->setup_advance)); + $newmenu->add("/asset/type.php?leftmenu=asset_type", $langs->trans("MenuListTypeAssets"), 2, $user->rights->asset->read); + } } } @@ -1461,12 +1463,14 @@ /* * Menu BANK */ - if ($mainmenu == 'bank') { + if ($mainmenu == 'bank') + { // Load translation files required by the page $langs->loadLangs(array("withdrawals", "banks", "bills", "categories")); // Bank-Cash account - if (!empty($conf->banque->enabled)) { + if (!empty($conf->banque->enabled)) + { $newmenu->add("/compta/bank/list.php?leftmenu=bank&mainmenu=bank", $langs->trans("MenuBankCash"), 0, $user->rights->banque->lire, '', $mainmenu, 'bank'); $newmenu->add("/compta/bank/card.php?action=create", $langs->trans("MenuNewFinancialAccount"), 1, $user->rights->banque->configurer); @@ -1477,34 +1481,37 @@ $newmenu->add("/compta/bank/transfer.php", $langs->trans("MenuBankInternalTransfer"), 1, $user->rights->banque->transfer); } - if (!empty($conf->categorie->enabled)) { + if (!empty($conf->categorie->enabled)) + { $langs->load("categories"); $newmenu->add("/categories/index.php?type=5", $langs->trans("Rubriques"), 1, $user->rights->categorie->creer, '', $mainmenu, 'tags'); - $newmenu->add("/compta/bank/categ.php", $langs->trans("RubriquesTransactions"), 1, $user->rights->banque->configurer, '', $mainmenu, 'tags'); + $newmenu->add("/compta/bank/categ.php", $langs->trans("RubriquesTransactions"), 1, $user->rights->categorie->creer, '', $mainmenu, 'tags'); } // Direct debit order - if (!empty($conf->prelevement->enabled)) { + if (!empty($conf->prelevement->enabled)) + { $newmenu->add("/compta/prelevement/index.php?leftmenu=withdraw&mainmenu=bank", $langs->trans("PaymentByDirectDebit"), 0, $user->rights->prelevement->bons->lire, '', $mainmenu, 'withdraw'); if ($usemenuhider || empty($leftmenu) || $leftmenu == "withdraw") { - $newmenu->add("/compta/prelevement/create.php?mainmenu=bank", $langs->trans("NewStandingOrder"), 1, $user->rights->prelevement->bons->creer); - - $newmenu->add("/compta/prelevement/orders_list.php?mainmenu=bank", $langs->trans("WithdrawalsReceipts"), 1, $user->rights->prelevement->bons->lire); - $newmenu->add("/compta/prelevement/list.php?mainmenu=bank", $langs->trans("WithdrawalsLines"), 1, $user->rights->prelevement->bons->lire); - $newmenu->add("/compta/prelevement/rejets.php?mainmenu=bank", $langs->trans("Rejects"), 1, $user->rights->prelevement->bons->lire); - $newmenu->add("/compta/prelevement/stats.php?mainmenu=bank", $langs->trans("Statistics"), 1, $user->rights->prelevement->bons->lire); - } + $newmenu->add("/compta/prelevement/create.php?mainmenu=bank", $langs->trans("NewStandingOrder"), 1, $user->rights->prelevement->bons->creer); + + $newmenu->add("/compta/prelevement/bons.php?mainmenu=bank", $langs->trans("WithdrawalsReceipts"), 1, $user->rights->prelevement->bons->lire); + $newmenu->add("/compta/prelevement/list.php?mainmenu=bank", $langs->trans("WithdrawalsLines"), 1, $user->rights->prelevement->bons->lire); + $newmenu->add("/compta/prelevement/rejets.php?mainmenu=bank", $langs->trans("Rejects"), 1, $user->rights->prelevement->bons->lire); + $newmenu->add("/compta/prelevement/stats.php?mainmenu=bank", $langs->trans("Statistics"), 1, $user->rights->prelevement->bons->lire); + } } // Bank transfer order - if (!empty($conf->paymentbybanktransfer->enabled)) { + if (!empty($conf->paymentbybanktransfer->enabled)) + { $newmenu->add("/compta/paymentbybanktransfer/index.php?leftmenu=banktransfer&mainmenu=bank", $langs->trans("PaymentByBankTransfer"), 0, $user->rights->paymentbybanktransfer->read, '', $mainmenu, 'banktransfer'); if ($usemenuhider || empty($leftmenu) || $leftmenu == "banktransfer") { $newmenu->add("/compta/prelevement/create.php?type=bank-transfer&mainmenu=bank", $langs->trans("NewPaymentByBankTransfer"), 1, $user->rights->paymentbybanktransfer->create); - $newmenu->add("/compta/prelevement/orders_list.php?type=bank-transfer&mainmenu=bank", $langs->trans("PaymentByBankTransferReceipts"), 1, $user->rights->paymentbybanktransfer->read); + $newmenu->add("/compta/prelevement/bons.php?type=bank-transfer&mainmenu=bank", $langs->trans("PaymentByBankTransferReceipts"), 1, $user->rights->paymentbybanktransfer->read); $newmenu->add("/compta/prelevement/list.php?type=bank-transfer&mainmenu=bank", $langs->trans("PaymentByBankTransferLines"), 1, $user->rights->paymentbybanktransfer->read); $newmenu->add("/compta/prelevement/rejets.php?type=bank-transfer&mainmenu=bank", $langs->trans("Rejects"), 1, $user->rights->paymentbybanktransfer->read); $newmenu->add("/compta/prelevement/stats.php?type=bank-transfer&mainmenu=bank", $langs->trans("Statistics"), 1, $user->rights->paymentbybanktransfer->read); @@ -1512,16 +1519,18 @@ } // Management of checks - if (empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && !empty($conf->banque->enabled) && (!empty($conf->facture->enabled) || !empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))) { + if (empty($conf->global->BANK_DISABLE_CHECK_DEPOSIT) && !empty($conf->banque->enabled) && (!empty($conf->facture->enabled) || !empty($conf->global->MAIN_MENU_CHEQUE_DEPOSIT_ON))) + { $newmenu->add("/compta/paiement/cheque/index.php?leftmenu=checks&mainmenu=bank", $langs->trans("MenuChequeDeposits"), 0, $user->rights->banque->cheque, '', $mainmenu, 'checks'); if (preg_match('/checks/', $leftmenu)) { - $newmenu->add("/compta/paiement/cheque/card.php?leftmenu=checks_bis&action=new&mainmenu=bank", $langs->trans("NewChequeDeposit"), 1, $user->rights->banque->cheque); - $newmenu->add("/compta/paiement/cheque/list.php?leftmenu=checks_bis&mainmenu=bank", $langs->trans("List"), 1, $user->rights->banque->cheque); - } + $newmenu->add("/compta/paiement/cheque/card.php?leftmenu=checks_bis&action=new&mainmenu=bank", $langs->trans("NewChequeDeposit"), 1, $user->rights->banque->cheque); + $newmenu->add("/compta/paiement/cheque/list.php?leftmenu=checks_bis&mainmenu=bank", $langs->trans("List"), 1, $user->rights->banque->cheque); + } } // Cash Control - if (!empty($conf->takepos->enabled) || !empty($conf->cashdesk->enabled)) { + if (!empty($conf->takepos->enabled) || !empty($conf->cashdesk->enabled)) + { $permtomakecashfence = ($user->rights->cashdesk->run || $user->rights->takepos->run); $newmenu->add("/compta/cashcontrol/cashcontrol_list.php?action=list", $langs->trans("POS"), 0, $permtomakecashfence, '', $mainmenu, 'cashcontrol'); $newmenu->add("/compta/cashcontrol/cashcontrol_card.php?action=create", $langs->trans("NewCashFence"), 1, $permtomakecashfence); @@ -1532,29 +1541,36 @@ /* * Menu PRODUCTS-SERVICES */ - if ($mainmenu == 'products') { + if ($mainmenu == 'products') + { // Products - if (!empty($conf->product->enabled)) { + if (!empty($conf->product->enabled)) + { $newmenu->add("/product/index.php?leftmenu=product&type=0", $langs->trans("Products"), 0, $user->rights->produit->lire, '', $mainmenu, 'product'); $newmenu->add("/product/card.php?leftmenu=product&action=create&type=0", $langs->trans("NewProduct"), 1, $user->rights->produit->creer); $newmenu->add("/product/list.php?leftmenu=product&type=0", $langs->trans("List"), 1, $user->rights->produit->lire); - if (!empty($conf->stock->enabled)) { + if (!empty($conf->stock->enabled)) + { $newmenu->add("/product/reassort.php?type=0", $langs->trans("MenuStocks"), 1, $user->rights->produit->lire && $user->rights->stock->lire); } - if (!empty($conf->productbatch->enabled)) { + if (!empty($conf->productbatch->enabled)) + { $langs->load("stocks"); $newmenu->add("/product/reassortlot.php?type=0", $langs->trans("StocksByLotSerial"), 1, $user->rights->produit->lire && $user->rights->stock->lire); $newmenu->add("/product/stock/productlot_list.php", $langs->trans("LotSerial"), 1, $user->rights->produit->lire && $user->rights->stock->lire); } - if (!empty($conf->variants->enabled)) { + if (!empty($conf->variants->enabled)) + { $newmenu->add("/variants/list.php", $langs->trans("VariantAttributes"), 1, $user->rights->produit->lire); } - if (!empty($conf->propal->enabled) || !empty($conf->commande->enabled) || !empty($conf->facture->enabled) || !empty($conf->fournisseur->enabled) || !empty($conf->supplier_proposal->enabled)) { + if (!empty($conf->propal->enabled) || !empty($conf->commande->enabled) || !empty($conf->facture->enabled) || !empty($conf->fournisseur->enabled) || !empty($conf->supplier_proposal->enabled)) + { $newmenu->add("/product/stats/card.php?id=all&leftmenu=stats&type=0", $langs->trans("Statistics"), 1, $user->rights->produit->lire && $user->rights->propale->lire); } // Categories - if (!empty($conf->categorie->enabled)) { + if (!empty($conf->categorie->enabled)) + { $langs->load("categories"); $newmenu->add("/categories/index.php?leftmenu=cat&type=0", $langs->trans("Categories"), 1, $user->rights->categorie->lire, '', $mainmenu, 'cat'); //if ($usemenuhider || empty($leftmenu) || $leftmenu=="cat") $newmenu->add("/categories/list.php", $langs->trans("List"), 1, $user->rights->categorie->lire); @@ -1562,15 +1578,18 @@ } // Services - if (!empty($conf->service->enabled)) { + if (!empty($conf->service->enabled)) + { $newmenu->add("/product/index.php?leftmenu=service&type=1", $langs->trans("Services"), 0, $user->rights->service->lire, '', $mainmenu, 'service'); $newmenu->add("/product/card.php?leftmenu=service&action=create&type=1", $langs->trans("NewService"), 1, $user->rights->service->creer); $newmenu->add("/product/list.php?leftmenu=service&type=1", $langs->trans("List"), 1, $user->rights->service->lire); - if (!empty($conf->propal->enabled) || !empty($conf->commande->enabled) || !empty($conf->facture->enabled) || !empty($conf->fournisseur->enabled) || !empty($conf->supplier_proposal->enabled)) { + if (!empty($conf->propal->enabled) || !empty($conf->commande->enabled) || !empty($conf->facture->enabled) || !empty($conf->fournisseur->enabled) || !empty($conf->supplier_proposal->enabled)) + { $newmenu->add("/product/stats/card.php?id=all&leftmenu=stats&type=1", $langs->trans("Statistics"), 1, $user->rights->service->lire && $user->rights->propale->lire); } // Categories - if (!empty($conf->categorie->enabled)) { + if (!empty($conf->categorie->enabled)) + { $langs->load("categories"); $newmenu->add("/categories/index.php?leftmenu=cat&type=0", $langs->trans("Categories"), 1, $user->rights->categorie->lire, '', $mainmenu, 'cat'); //if ($usemenuhider || empty($leftmenu) || $leftmenu=="cat") $newmenu->add("/categories/list.php", $langs->trans("List"), 1, $user->rights->categorie->lire); @@ -1578,119 +1597,121 @@ } // Warehouse - if (!empty($conf->stock->enabled)) { + if (!empty($conf->stock->enabled)) + { $langs->load("stocks"); $newmenu->add("/product/stock/index.php?leftmenu=stock", $langs->trans("Warehouses"), 0, $user->rights->stock->lire, '', $mainmenu, 'stock'); $newmenu->add("/product/stock/card.php?action=create", $langs->trans("MenuNewWarehouse"), 1, $user->rights->stock->creer); $newmenu->add("/product/stock/list.php", $langs->trans("List"), 1, $user->rights->stock->lire); $newmenu->add("/product/stock/movement_list.php", $langs->trans("Movements"), 1, $user->rights->stock->mouvement->lire); - $newmenu->add("/product/stock/massstockmove.php", $langs->trans("MassStockTransferShort"), 1, $user->rights->stock->mouvement->creer); - if ($conf->supplier_order->enabled) { - $newmenu->add("/product/stock/replenish.php", $langs->trans("Replenishment"), 1, $user->rights->stock->mouvement->creer && $user->rights->fournisseur->lire); - } - $newmenu->add("/product/stock/stockatdate.php", $langs->trans("StockAtDate"), 1, $user->rights->produit->lire && $user->rights->stock->lire); - - // Categories for warehouses - if (!empty($conf->categorie->enabled)) { - $newmenu->add("/categories/index.php?leftmenu=stock&type=9", $langs->trans("Categories"), 1, $user->rights->categorie->lire, '', $mainmenu, 'cat'); - } + $newmenu->add("/product/stock/massstockmove.php", $langs->trans("MassStockTransferShort"), 1, $user->rights->stock->mouvement->creer); + if ($conf->supplier_order->enabled) $newmenu->add("/product/stock/replenish.php", $langs->trans("Replenishment"), 1, $user->rights->stock->mouvement->creer && $user->rights->fournisseur->lire); + + // Categories for warehouses + if (!empty($conf->categorie->enabled)) + { + $newmenu->add("/categories/index.php?leftmenu=stock&type=9", $langs->trans("Categories"), 1, $user->rights->categorie->lire, '', $mainmenu, 'cat'); + } } // Inventory - if ($conf->global->MAIN_FEATURES_LEVEL >= 2) { - if (!empty($conf->stock->enabled)) { - $langs->load("stocks"); - if (empty($conf->global->MAIN_USE_ADVANCED_PERMS)) { - $newmenu->add("/product/inventory/list.php?leftmenu=stock_inventories", $langs->trans("Inventories"), 0, $user->rights->stock->lire, '', $mainmenu, 'stock'); - if ($usemenuhider || empty($leftmenu) || $leftmenu == "stock_inventories") { - $newmenu->add("/product/inventory/card.php?action=create&leftmenu=stock_inventories", $langs->trans("NewInventory"), 1, $user->rights->stock->creer); - $newmenu->add("/product/inventory/list.php?leftmenu=stock_inventories", $langs->trans("List"), 1, $user->rights->stock->lire); - } - } else { - $newmenu->add("/product/inventory/list.php?leftmenu=stock_inventories", $langs->trans("Inventories"), 0, $user->rights->stock->inventory_advance->read, '', $mainmenu, 'stock'); - if ($usemenuhider || empty($leftmenu) || $leftmenu == "stock_inventories") { - $newmenu->add("/product/inventory/card.php?action=create&leftmenu=stock_inventories", $langs->trans("NewInventory"), 1, $user->rights->stock->inventory_advance->write); - $newmenu->add("/product/inventory/list.php?leftmenu=stock_inventories", $langs->trans("List"), 1, $user->rights->stock->inventory_advance->read); - } + if ($conf->global->MAIN_FEATURES_LEVEL >= 2) + { + if (!empty($conf->stock->enabled)) + { + $langs->load("stocks"); + if (empty($conf->global->MAIN_USE_ADVANCED_PERMS)) + { + $newmenu->add("/product/inventory/list.php?leftmenu=stock", $langs->trans("Inventory"), 0, $user->rights->stock->lire, '', $mainmenu, 'stock'); + $newmenu->add("/product/inventory/card.php?action=create", $langs->trans("NewInventory"), 1, $user->rights->stock->creer); + $newmenu->add("/product/inventory/list.php", $langs->trans("List"), 1, $user->rights->stock->lire); } - } + else + { + $newmenu->add("/product/inventory/list.php?leftmenu=stock", $langs->trans("Inventory"), 0, $user->rights->stock->inventory_advance->read, '', $mainmenu, 'stock'); + $newmenu->add("/product/inventory/card.php?action=create", $langs->trans("NewInventory"), 1, $user->rights->stock->inventory_advance->write); + $newmenu->add("/product/inventory/list.php", $langs->trans("List"), 1, $user->rights->stock->inventory_advance->read); + } + } } // Shipments - if (!empty($conf->expedition->enabled)) { + if (!empty($conf->expedition->enabled)) + { $langs->load("sendings"); $newmenu->add("/expedition/index.php?leftmenu=sendings", $langs->trans("Shipments"), 0, $user->rights->expedition->lire, '', $mainmenu, 'sendings'); $newmenu->add("/expedition/card.php?action=create2&leftmenu=sendings", $langs->trans("NewSending"), 1, $user->rights->expedition->creer); $newmenu->add("/expedition/list.php?leftmenu=sendings", $langs->trans("List"), 1, $user->rights->expedition->lire); if ($usemenuhider || empty($leftmenu) || $leftmenu == "sendings") { - $newmenu->add("/expedition/list.php?leftmenu=sendings&search_status=0", $langs->trans("StatusSendingDraftShort"), 2, $user->rights->expedition->lire); - $newmenu->add("/expedition/list.php?leftmenu=sendings&search_status=1", $langs->trans("StatusSendingValidatedShort"), 2, $user->rights->expedition->lire); - $newmenu->add("/expedition/list.php?leftmenu=sendings&search_status=2", $langs->trans("StatusSendingProcessedShort"), 2, $user->rights->expedition->lire); - } + $newmenu->add("/expedition/list.php?leftmenu=sendings&search_status=0", $langs->trans("StatusSendingDraftShort"), 2, $user->rights->expedition->lire); + $newmenu->add("/expedition/list.php?leftmenu=sendings&search_status=1", $langs->trans("StatusSendingValidatedShort"), 2, $user->rights->expedition->lire); + $newmenu->add("/expedition/list.php?leftmenu=sendings&search_status=2", $langs->trans("StatusSendingProcessedShort"), 2, $user->rights->expedition->lire); + } $newmenu->add("/expedition/stats/index.php?leftmenu=sendings", $langs->trans("Statistics"), 1, $user->rights->expedition->lire); } - // Receptions - if (!empty($conf->reception->enabled)) { + // Receptions + if (!empty($conf->reception->enabled)) + { $langs->load("receptions"); $newmenu->add("/reception/index.php?leftmenu=receptions", $langs->trans("Receptions"), 0, $user->rights->reception->lire, '', $mainmenu, 'receptions'); $newmenu->add("/reception/card.php?action=create2&leftmenu=receptions", $langs->trans("NewReception"), 1, $user->rights->reception->creer); $newmenu->add("/reception/list.php?leftmenu=receptions", $langs->trans("List"), 1, $user->rights->reception->lire); - if ($usemenuhider || empty($leftmenu) || $leftmenu == "receptions") { - $newmenu->add("/reception/list.php?leftmenu=receptions&search_status=0", $langs->trans("StatusReceptionDraftShort"), 2, $user->rights->reception->lire); - } - if ($usemenuhider || empty($leftmenu) || $leftmenu == "receptions") { - $newmenu->add("/reception/list.php?leftmenu=receptions&search_status=1", $langs->trans("StatusReceptionValidatedShort"), 2, $user->rights->reception->lire); - } - if ($usemenuhider || empty($leftmenu) || $leftmenu == "receptions") { - $newmenu->add("/reception/list.php?leftmenu=receptions&search_status=2", $langs->trans("StatusReceptionProcessedShort"), 2, $user->rights->reception->lire); - } + if ($usemenuhider || empty($leftmenu) || $leftmenu == "receptions") $newmenu->add("/reception/list.php?leftmenu=receptions&search_status=0", $langs->trans("StatusReceptionDraftShort"), 2, $user->rights->reception->lire); + if ($usemenuhider || empty($leftmenu) || $leftmenu == "receptions") $newmenu->add("/reception/list.php?leftmenu=receptions&search_status=1", $langs->trans("StatusReceptionValidatedShort"), 2, $user->rights->reception->lire); + if ($usemenuhider || empty($leftmenu) || $leftmenu == "receptions") $newmenu->add("/reception/list.php?leftmenu=receptions&search_status=2", $langs->trans("StatusReceptionProcessedShort"), 2, $user->rights->reception->lire); $newmenu->add("/reception/stats/index.php?leftmenu=receptions", $langs->trans("Statistics"), 1, $user->rights->reception->lire); } } /* - * Menu PRODUCTS-SERVICES MRP - GPAO + * Menu PRODUCTS-SERVICES MRP */ - if ($mainmenu == 'mrp') { - // BOM - if (!empty($conf->bom->enabled) || !empty($conf->mrp->enabled)) { - $langs->load("mrp"); - - $newmenu->add("", $langs->trans("MenuBOM"), 0, $user->rights->bom->read, '', $mainmenu, 'bom'); - $newmenu->add("/bom/bom_card.php?leftmenu=bom&action=create", $langs->trans("NewBOM"), 1, $user->rights->bom->write, '', $mainmenu, 'bom'); - $newmenu->add("/bom/bom_list.php?leftmenu=bom", $langs->trans("List"), 1, $user->rights->bom->read, '', $mainmenu, 'bom'); - } - - if (!empty($conf->mrp->enabled)) { - $langs->load("mrp"); - - $newmenu->add("", $langs->trans("MenuMRP"), 0, $user->rights->mrp->read, '', $mainmenu, 'mo'); - $newmenu->add("/mrp/mo_card.php?leftmenu=mo&action=create", $langs->trans("NewMO"), 1, $user->rights->mrp->write, '', $mainmenu, 'mo'); - $newmenu->add("/mrp/mo_list.php?leftmenu=mo", $langs->trans("List"), 1, $user->rights->mrp->read, '', $mainmenu, 'mo'); - } + if ($mainmenu == 'mrp') + { + // BOM + if (!empty($conf->bom->enabled) || !empty($conf->mrp->enabled)) + { + $langs->load("mrp"); + + $newmenu->add("", $langs->trans("MenuBOM"), 0, $user->rights->bom->read, '', $mainmenu, 'bom'); + $newmenu->add("/bom/bom_card.php?leftmenu=bom&action=create", $langs->trans("NewBOM"), 1, $user->rights->bom->write, '', $mainmenu, 'bom'); + $newmenu->add("/bom/bom_list.php?leftmenu=bom", $langs->trans("List"), 1, $user->rights->bom->read, '', $mainmenu, 'bom'); + } + + if (!empty($conf->mrp->enabled)) + { + $langs->load("mrp"); + + $newmenu->add("", $langs->trans("MenuMRP"), 0, $user->rights->mrp->read, '', $mainmenu, 'mo'); + $newmenu->add("/mrp/mo_card.php?leftmenu=mo&action=create", $langs->trans("NewMO"), 1, $user->rights->mrp->write, '', $mainmenu, 'mo'); + $newmenu->add("/mrp/mo_list.php?leftmenu=mo", $langs->trans("List"), 1, $user->rights->mrp->read, '', $mainmenu, 'mo'); + } } /* * Menu PROJECTS */ - if ($mainmenu == 'project') { - if (!empty($conf->projet->enabled)) { + if ($mainmenu == 'project') + { + if (!empty($conf->projet->enabled)) + { $langs->load("projects"); $search_project_user = GETPOST('search_project_user', 'int'); $tmpentry = array( - 'enabled'=>(!empty($conf->projet->enabled)), - 'perms'=>(!empty($user->rights->projet->lire)), - 'module'=>'projet' - ); + 'enabled'=>(!empty($conf->projet->enabled)), + 'perms'=>(!empty($user->rights->projet->lire)), + 'module'=>'projet' + ); $showmode = isVisibleToUserType($type_user, $tmpentry, $listofmodulesforexternal); $titleboth = $langs->trans("LeadsOrProjects"); $titlenew = $langs->trans("NewLeadOrProject"); // Leads and opportunities by default - if ($conf->global->PROJECT_USE_OPPORTUNITIES == 0) { + if ($conf->global->PROJECT_USE_OPPORTUNITIES == 0) + { $titleboth = $langs->trans("Projects"); $titlenew = $langs->trans("NewProject"); } @@ -1703,32 +1724,38 @@ $newmenu->add("/projet/index.php?leftmenu=projects".($search_project_user ? '&search_project_user='.$search_project_user : ''), $titleboth, 0, $user->rights->projet->lire, '', $mainmenu, 'projects'); $newmenu->add("/projet/card.php?leftmenu=projects&action=create".($search_project_user ? '&search_project_user='.$search_project_user : ''), $titlenew, 1, $user->rights->projet->creer); - if ($conf->global->PROJECT_USE_OPPORTUNITIES == 0) { + if ($conf->global->PROJECT_USE_OPPORTUNITIES == 0) + { $newmenu->add("/projet/list.php?leftmenu=projets".($search_project_user ? '&search_project_user='.$search_project_user : '').'&search_status=99', $langs->trans("List"), 1, $showmode, '', 'project', 'list'); - } elseif ($conf->global->PROJECT_USE_OPPORTUNITIES == 1) { + } + elseif ($conf->global->PROJECT_USE_OPPORTUNITIES == 1) + { $newmenu->add("/projet/list.php?leftmenu=projets".($search_project_user ? '&search_project_user='.$search_project_user : ''), $langs->trans("List"), 1, $showmode, '', 'project', 'list'); - $newmenu->add('/projet/list.php?mainmenu=project&leftmenu=list&search_usage_opportunity=1&search_status=99&search_opp_status=openedopp&contextpage=lead', $langs->trans("ListOpenLeads"), 2, $showmode); + $newmenu->add('/projet/list.php?mainmenu=project&leftmenu=list&search_usage_opportunity=1&search_status=99&contextpage=lead', $langs->trans("ListOpenLeads"), 2, $showmode); $newmenu->add('/projet/list.php?mainmenu=project&leftmenu=list&search_opp_status=notopenedopp&search_status=99&contextpage=project', $langs->trans("ListOpenProjects"), 2, $showmode); - } elseif ($conf->global->PROJECT_USE_OPPORTUNITIES == 2) { // 2 = leads only + } + elseif ($conf->global->PROJECT_USE_OPPORTUNITIES == 2) { // 2 = leads only $newmenu->add('/projet/list.php?mainmenu=project&leftmenu=list&search_usage_opportunity=1&search_status=99', $langs->trans("List"), 2, $showmode); } $newmenu->add("/projet/stats/index.php?leftmenu=projects", $langs->trans("Statistics"), 1, $user->rights->projet->lire); // Categories - if (!empty($conf->categorie->enabled)) { + if (!empty($conf->categorie->enabled)) + { $langs->load("categories"); $newmenu->add("/categories/index.php?leftmenu=cat&type=6", $langs->trans("Categories"), 1, $user->rights->categorie->lire, '', $mainmenu, 'cat'); } - if (empty($conf->global->PROJECT_HIDE_TASKS)) { + if (empty($conf->global->PROJECT_HIDE_TASKS)) + { // Project affected to user - $newmenu->add("/projet/activity/index.php?leftmenu=tasks".($search_project_user ? '&search_project_user='.$search_project_user : ''), $langs->trans("Activities"), 0, $user->rights->projet->lire, '', 'project', 'tasks'); + $newmenu->add("/projet/activity/index.php?leftmenu=tasks".($search_project_user ? '&search_project_user='.$search_project_user : ''), $langs->trans("Activities"), 0, $user->rights->projet->lire); $newmenu->add("/projet/tasks.php?leftmenu=tasks&action=create", $langs->trans("NewTask"), 1, $user->rights->projet->creer); $newmenu->add("/projet/tasks/list.php?leftmenu=tasks".($search_project_user ? '&search_project_user='.$search_project_user : ''), $langs->trans("List"), 1, $user->rights->projet->lire); - $newmenu->add("/projet/tasks/stats/index.php?leftmenu=projects", $langs->trans("Statistics"), 1, $user->rights->projet->lire); - - $newmenu->add("/projet/activity/perweek.php?leftmenu=tasks".($search_project_user ? '&search_project_user='.$search_project_user : ''), $langs->trans("NewTimeSpent"), 0, $user->rights->projet->lire); + $newmenu->add("/projet/tasks/stats/index.php?leftmenu=projects", $langs->trans("Statistics"), 1, $user->rights->projet->lire); + + $newmenu->add("/projet/activity/perweek.php?leftmenu=tasks".($search_project_user ? '&search_project_user='.$search_project_user : ''), $langs->trans("NewTimeSpent"), 0, $user->rights->projet->lire); } } } @@ -1736,9 +1763,11 @@ /* * Menu HRM */ - if ($mainmenu == 'hrm') { + if ($mainmenu == 'hrm') + { // HRM module - if (!empty($conf->hrm->enabled)) { + if (!empty($conf->hrm->enabled)) + { $langs->load("hrm"); $newmenu->add("/user/list.php?mainmenu=hrm&leftmenu=hrm&mode=employee", $langs->trans("Employees"), 0, $user->rights->hrm->employee->read, '', $mainmenu, 'hrm'); @@ -1747,27 +1776,29 @@ } // Leave/Holiday/Vacation module - if (!empty($conf->holiday->enabled)) { - // Load translation files required by the page - $langs->loadLangs(array("holiday", "trips")); + if (!empty($conf->holiday->enabled)) + { + // Load translation files required by the page + $langs->loadLangs(array("holiday", "trips")); $newmenu->add("/holiday/list.php?mainmenu=hrm&leftmenu=hrm", $langs->trans("CPTitreMenu"), 0, $user->rights->holiday->read, '', $mainmenu, 'hrm'); - $newmenu->add("/holiday/card.php?mainmenu=hrm&leftmenu=holiday&action=create", $langs->trans("New"), 1, $user->rights->holiday->write); + $newmenu->add("/holiday/card.php?mainmenu=hrm&leftmenu=holiday&action=request", $langs->trans("New"), 1, $user->rights->holiday->write); $newmenu->add("/holiday/list.php?mainmenu=hrm&leftmenu=hrm", $langs->trans("List"), 1, $user->rights->holiday->read); if ($usemenuhider || empty($leftmenu) || $leftmenu == "hrm") { - $newmenu->add("/holiday/list.php?search_statut=1&mainmenu=hrm&leftmenu=hrm", $langs->trans("DraftCP"), 2, $user->rights->holiday->read); - $newmenu->add("/holiday/list.php?search_statut=2&mainmenu=hrm&leftmenu=hrm", $langs->trans("ToReviewCP"), 2, $user->rights->holiday->read); - $newmenu->add("/holiday/list.php?search_statut=3&mainmenu=hrm&leftmenu=hrm", $langs->trans("ApprovedCP"), 2, $user->rights->holiday->read); - $newmenu->add("/holiday/list.php?search_statut=4&mainmenu=hrm&leftmenu=hrm", $langs->trans("CancelCP"), 2, $user->rights->holiday->read); - $newmenu->add("/holiday/list.php?search_statut=5&mainmenu=hrm&leftmenu=hrm", $langs->trans("RefuseCP"), 2, $user->rights->holiday->read); - } + $newmenu->add("/holiday/list.php?search_statut=1&mainmenu=hrm&leftmenu=hrm", $langs->trans("DraftCP"), 2, $user->rights->holiday->read); + $newmenu->add("/holiday/list.php?search_statut=2&mainmenu=hrm&leftmenu=hrm", $langs->trans("ToReviewCP"), 2, $user->rights->holiday->read); + $newmenu->add("/holiday/list.php?search_statut=3&mainmenu=hrm&leftmenu=hrm", $langs->trans("ApprovedCP"), 2, $user->rights->holiday->read); + $newmenu->add("/holiday/list.php?search_statut=4&mainmenu=hrm&leftmenu=hrm", $langs->trans("CancelCP"), 2, $user->rights->holiday->read); + $newmenu->add("/holiday/list.php?search_statut=5&mainmenu=hrm&leftmenu=hrm", $langs->trans("RefuseCP"), 2, $user->rights->holiday->read); + } $newmenu->add("/holiday/define_holiday.php?mainmenu=hrm&action=request", $langs->trans("MenuConfCP"), 1, $user->rights->holiday->read); - $newmenu->add("/holiday/month_report.php?mainmenu=hrm&leftmenu=holiday", $langs->trans("MenuReportMonth"), 1, $user->rights->holiday->readall); + $newmenu->add("/holiday/month_report.php?mainmenu=hrm&leftmenu=holiday", $langs->trans("MenuReportMonth"), 1, $user->rights->holiday->read_all); $newmenu->add("/holiday/view_log.php?mainmenu=hrm&leftmenu=holiday&action=request", $langs->trans("MenuLogCP"), 1, $user->rights->holiday->define_holiday); } // Trips and expenses (old module) - if (!empty($conf->deplacement->enabled)) { + if (!empty($conf->deplacement->enabled)) + { $langs->load("trips"); $newmenu->add("/compta/deplacement/index.php?leftmenu=tripsandexpenses&mainmenu=hrm", $langs->trans("TripsAndExpenses"), 0, $user->rights->deplacement->lire, '', $mainmenu, 'tripsandexpenses'); $newmenu->add("/compta/deplacement/card.php?action=create&leftmenu=tripsandexpenses&mainmenu=hrm", $langs->trans("New"), 1, $user->rights->deplacement->creer); @@ -1776,24 +1807,27 @@ } // Expense report - if (!empty($conf->expensereport->enabled)) { + if (!empty($conf->expensereport->enabled)) + { $langs->load("trips"); $newmenu->add("/expensereport/index.php?leftmenu=expensereport&mainmenu=hrm", $langs->trans("TripsAndExpenses"), 0, $user->rights->expensereport->lire, '', $mainmenu, 'expensereport'); $newmenu->add("/expensereport/card.php?action=create&leftmenu=expensereport&mainmenu=hrm", $langs->trans("New"), 1, $user->rights->expensereport->creer); $newmenu->add("/expensereport/list.php?leftmenu=expensereport&mainmenu=hrm", $langs->trans("List"), 1, $user->rights->expensereport->lire); if ($usemenuhider || empty($leftmenu) || $leftmenu == "expensereport") { - $newmenu->add("/expensereport/list.php?search_status=0&leftmenu=expensereport&mainmenu=hrm", $langs->trans("Draft"), 2, $user->rights->expensereport->lire); - $newmenu->add("/expensereport/list.php?search_status=2&leftmenu=expensereport&mainmenu=hrm", $langs->trans("Validated"), 2, $user->rights->expensereport->lire); - $newmenu->add("/expensereport/list.php?search_status=5&leftmenu=expensereport&mainmenu=hrm", $langs->trans("Approved"), 2, $user->rights->expensereport->lire); - $newmenu->add("/expensereport/list.php?search_status=6&leftmenu=expensereport&mainmenu=hrm", $langs->trans("Paid"), 2, $user->rights->expensereport->lire); - $newmenu->add("/expensereport/list.php?search_status=4&leftmenu=expensereport&mainmenu=hrm", $langs->trans("Canceled"), 2, $user->rights->expensereport->lire); - $newmenu->add("/expensereport/list.php?search_status=99&leftmenu=expensereport&mainmenu=hrm", $langs->trans("Refused"), 2, $user->rights->expensereport->lire); - } + $newmenu->add("/expensereport/list.php?search_status=0&leftmenu=expensereport&mainmenu=hrm", $langs->trans("Draft"), 2, $user->rights->expensereport->lire); + $newmenu->add("/expensereport/list.php?search_status=2&leftmenu=expensereport&mainmenu=hrm", $langs->trans("Validated"), 2, $user->rights->expensereport->lire); + $newmenu->add("/expensereport/list.php?search_status=5&leftmenu=expensereport&mainmenu=hrm", $langs->trans("Approved"), 2, $user->rights->expensereport->lire); + $newmenu->add("/expensereport/list.php?search_status=6&leftmenu=expensereport&mainmenu=hrm", $langs->trans("Paid"), 2, $user->rights->expensereport->lire); + $newmenu->add("/expensereport/list.php?search_status=4&leftmenu=expensereport&mainmenu=hrm", $langs->trans("Canceled"), 2, $user->rights->expensereport->lire); + $newmenu->add("/expensereport/list.php?search_status=99&leftmenu=expensereport&mainmenu=hrm", $langs->trans("Refused"), 2, $user->rights->expensereport->lire); + } $newmenu->add("/expensereport/stats/index.php?leftmenu=expensereport&mainmenu=hrm", $langs->trans("Statistics"), 1, $user->rights->expensereport->lire); } - if (!empty($conf->projet->enabled)) { - if (empty($conf->global->PROJECT_HIDE_TASKS)) { + if (!empty($conf->projet->enabled)) + { + if (empty($conf->global->PROJECT_HIDE_TASKS)) + { $langs->load("projects"); $search_project_user = GETPOST('search_project_user', 'int'); @@ -1807,26 +1841,31 @@ /* * Menu TOOLS */ - if ($mainmenu == 'tools') { - if (empty($user->socid)) { // limit to internal users + if ($mainmenu == 'tools') + { + if (empty($user->socid)) // limit to internal users + { $langs->load("mails"); $newmenu->add("/admin/mails_templates.php?leftmenu=email_templates", $langs->trans("EMailTemplates"), 0, 1, '', $mainmenu, 'email_templates'); } - if (!empty($conf->mailing->enabled)) { + if (!empty($conf->mailing->enabled)) + { $newmenu->add("/comm/mailing/index.php?leftmenu=mailing", $langs->trans("EMailings"), 0, $user->rights->mailing->lire, '', $mainmenu, 'mailing'); $newmenu->add("/comm/mailing/card.php?leftmenu=mailing&action=create", $langs->trans("NewMailing"), 1, $user->rights->mailing->creer); $newmenu->add("/comm/mailing/list.php?leftmenu=mailing", $langs->trans("List"), 1, $user->rights->mailing->lire); } - if (!empty($conf->export->enabled)) { + if (!empty($conf->export->enabled)) + { $langs->load("exports"); $newmenu->add("/exports/index.php?leftmenu=export", $langs->trans("FormatedExport"), 0, $user->rights->export->lire, '', $mainmenu, 'export'); $newmenu->add("/exports/export.php?leftmenu=export", $langs->trans("NewExport"), 1, $user->rights->export->creer); //$newmenu->add("/exports/export.php?leftmenu=export",$langs->trans("List"),1, $user->rights->export->lire); } - if (!empty($conf->import->enabled)) { + if (!empty($conf->import->enabled)) + { $langs->load("exports"); $newmenu->add("/imports/index.php?leftmenu=import", $langs->trans("FormatedImport"), 0, $user->rights->import->run, '', $mainmenu, 'import'); $newmenu->add("/imports/import.php?leftmenu=import", $langs->trans("NewImport"), 1, $user->rights->import->run); @@ -1836,28 +1875,28 @@ /* * Menu MEMBERS */ - if ($mainmenu == 'members') { - if (!empty($conf->adherent->enabled)) { + if ($mainmenu == 'members') + { + if (!empty($conf->adherent->enabled)) + { // Load translation files required by the page - $langs->loadLangs(array("members", "compta")); + $langs->loadLangs(array("members", "compta")); $newmenu->add("/adherents/index.php?leftmenu=members&mainmenu=members", $langs->trans("Members"), 0, $user->rights->adherent->lire, '', $mainmenu, 'members'); $newmenu->add("/adherents/card.php?leftmenu=members&action=create", $langs->trans("NewMember"), 1, $user->rights->adherent->creer); $newmenu->add("/adherents/list.php?leftmenu=members", $langs->trans("List"), 1, $user->rights->adherent->lire); $newmenu->add("/adherents/list.php?leftmenu=members&statut=-1", $langs->trans("MenuMembersToValidate"), 2, $user->rights->adherent->lire); $newmenu->add("/adherents/list.php?leftmenu=members&statut=1", $langs->trans("MenuMembersValidated"), 2, $user->rights->adherent->lire); - $newmenu->add("/adherents/list.php?leftmenu=members&statut=1&filter=withoutsubscription", $langs->trans("WithoutSubscription"), 3, $user->rights->adherent->lire); - $newmenu->add("/adherents/list.php?leftmenu=members&statut=1&filter=uptodate", $langs->trans("UpToDate"), 3, $user->rights->adherent->lire); - $newmenu->add("/adherents/list.php?leftmenu=members&statut=1&filter=outofdate", $langs->trans("OutOfDate"), 3, $user->rights->adherent->lire); + $newmenu->add("/adherents/list.php?leftmenu=members&statut=1&filter=uptodate", $langs->trans("MenuMembersUpToDate"), 2, $user->rights->adherent->lire); + $newmenu->add("/adherents/list.php?leftmenu=members&statut=1&filter=outofdate", $langs->trans("MenuMembersNotUpToDate"), 2, $user->rights->adherent->lire); $newmenu->add("/adherents/list.php?leftmenu=members&statut=0", $langs->trans("MenuMembersResiliated"), 2, $user->rights->adherent->lire); $newmenu->add("/adherents/stats/index.php?leftmenu=members", $langs->trans("MenuMembersStats"), 1, $user->rights->adherent->lire); $newmenu->add("/adherents/cartes/carte.php?leftmenu=export", $langs->trans("MembersCards"), 1, $user->rights->adherent->export); - if (!empty($conf->global->MEMBER_LINK_TO_HTPASSWDFILE) && ($usemenuhider || empty($leftmenu) || $leftmenu == 'none' || $leftmenu == "members" || $leftmenu == "export")) { - $newmenu->add("/adherents/htpasswd.php?leftmenu=export", $langs->trans("Filehtpasswd"), 1, $user->rights->adherent->export); - } - - if (!empty($conf->categorie->enabled)) { + if (!empty($conf->global->MEMBER_LINK_TO_HTPASSWDFILE) && ($usemenuhider || empty($leftmenu) || $leftmenu == 'none' || $leftmenu == "members" || $leftmenu == "export")) $newmenu->add("/adherents/htpasswd.php?leftmenu=export", $langs->trans("Filehtpasswd"), 1, $user->rights->adherent->export); + + if (!empty($conf->categorie->enabled)) + { $langs->load("categories"); $newmenu->add("/categories/index.php?leftmenu=cat&type=3", $langs->trans("Categories"), 1, $user->rights->categorie->lire, '', $mainmenu, 'cat'); } @@ -1883,13 +1922,16 @@ $newmenu = $menuArbo->menuLeftCharger($newmenu, $mainmenu, $leftmenu, (empty($user->socid) ? 0 : 1), 'eldy', $tabMenu); //var_dump($newmenu->liste); // - if (!empty($conf->ftp->enabled) && $mainmenu == 'ftp') { // Entry for FTP + if (!empty($conf->ftp->enabled) && $mainmenu == 'ftp') // Entry for FTP + { $MAXFTP = 20; $i = 1; - while ($i <= $MAXFTP) { + while ($i <= $MAXFTP) + { $paramkey = 'FTP_NAME_'.$i; //print $paramkey; - if (!empty($conf->global->$paramkey)) { + if (!empty($conf->global->$paramkey)) + { $link = "/ftp/index.php?idmenu=".$_SESSION["idmenu"]."&numero_ftp=".$i; $newmenu->add($link, dol_trunc($conf->global->$paramkey, 24)); @@ -1906,16 +1948,10 @@ //var_dump($menu_array_before);exit; //var_dump($menu_array_after);exit; $menu_array = $newmenu->liste; - if (is_array($menu_array_before)) { - $menu_array = array_merge($menu_array_before, $menu_array); - } - if (is_array($menu_array_after)) { - $menu_array = array_merge($menu_array, $menu_array_after); - } + if (is_array($menu_array_before)) $menu_array = array_merge($menu_array_before, $menu_array); + if (is_array($menu_array_after)) $menu_array = array_merge($menu_array, $menu_array_after); //var_dump($menu_array);exit; - if (!is_array($menu_array)) { - return 0; - } + if (!is_array($menu_array)) return 0; // TODO Use the position property in menu_array to reorder the $menu_array //var_dump($menu_array); @@ -1925,33 +1961,36 @@ while (findNextEntryForLevel($menu_array, $cursor, $position, $level)) { - $cursor++; + $cursor++; }*/ // Show menu $invert = empty($conf->global->MAIN_MENU_INVERT) ? "" : "invert"; - if (empty($noout)) { + if (empty($noout)) + { $altok = 0; $blockvmenuopened = false; $lastlevel0 = ''; $num = count($menu_array); - for ($i = 0; $i < $num; $i++) { // Loop on each menu entry + for ($i = 0; $i < $num; $i++) // Loop on each menu entry + { $showmenu = true; - if (!empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($menu_array[$i]['enabled'])) { - $showmenu = false; - } + if (!empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($menu_array[$i]['enabled'])) $showmenu = false; // Begin of new left menu block - if (empty($menu_array[$i]['level']) && $showmenu) { + if (empty($menu_array[$i]['level']) && $showmenu) + { $altok++; $blockvmenuopened = true; $lastopened = true; - for ($j = ($i + 1); $j < $num; $j++) { - if (empty($menu_array[$j]['level'])) { - $lastopened = false; - } - } - if ($altok % 2 == 0) { + for ($j = ($i + 1); $j < $num; $j++) + { + if (empty($menu_array[$j]['level'])) $lastopened = false; + } + if ($altok % 2 == 0) + { print '<div class="blockvmenu blockvmenuimpair'.$invert.($lastopened ? ' blockvmenulast' : '').($altok == 1 ? ' blockvmenufirst' : '').'">'."\n"; - } else { + } + else + { print '<div class="blockvmenu blockvmenupair'.$invert.($lastopened ? ' blockvmenulast' : '').($altok == 1 ? ' blockvmenufirst' : '').'">'."\n"; } } @@ -1959,8 +1998,10 @@ // Add tabulation $tabstring = ''; $tabul = ($menu_array[$i]['level'] - 1); - if ($tabul > 0) { - for ($j = 0; $j < $tabul; $j++) { + if ($tabul > 0) + { + for ($j = 0; $j < $tabul; $j++) + { $tabstring .= ' '; } } @@ -1970,99 +2011,93 @@ $menu_array[$i]['url'] = make_substitutions($menu_array[$i]['url'], $substitarray); $url = $shorturl = $shorturlwithoutparam = $menu_array[$i]['url']; - if (!preg_match("/^(http:\/\/|https:\/\/)/i", $menu_array[$i]['url'])) { - $tmp = explode('?', $menu_array[$i]['url'], 2); - $url = $shorturl = $tmp[0]; - $param = (isset($tmp[1]) ? $tmp[1] : ''); // params in url of the menu link - - // Complete param to force leftmenu to '' to close open menu when we click on a link with no leftmenu defined. - if ((!preg_match('/mainmenu/i', $param)) && (!preg_match('/leftmenu/i', $param)) && !empty($menu_array[$i]['mainmenu'])) { - $param .= ($param ? '&' : '').'mainmenu='.$menu_array[$i]['mainmenu'].'&leftmenu='; - } - if ((!preg_match('/mainmenu/i', $param)) && (!preg_match('/leftmenu/i', $param)) && empty($menu_array[$i]['mainmenu'])) { - $param .= ($param ? '&' : '').'leftmenu='; - } - //$url.="idmenu=".$menu_array[$i]['rowid']; // Already done by menuLoad - $url = dol_buildpath($url, 1).($param ? '?'.$param : ''); - $shorturlwithoutparam = $shorturl; - $shorturl = $shorturl.($param ? '?'.$param : ''); + if (!preg_match("/^(http:\/\/|https:\/\/)/i", $menu_array[$i]['url'])) + { + $tmp = explode('?', $menu_array[$i]['url'], 2); + $url = $shorturl = $tmp[0]; + $param = (isset($tmp[1]) ? $tmp[1] : ''); // params in url of the menu link + + // Complete param to force leftmenu to '' to close open menu when we click on a link with no leftmenu defined. + if ((!preg_match('/mainmenu/i', $param)) && (!preg_match('/leftmenu/i', $param)) && !empty($menu_array[$i]['mainmenu'])) + { + $param .= ($param ? '&' : '').'mainmenu='.$menu_array[$i]['mainmenu'].'&leftmenu='; + } + if ((!preg_match('/mainmenu/i', $param)) && (!preg_match('/leftmenu/i', $param)) && empty($menu_array[$i]['mainmenu'])) + { + $param .= ($param ? '&' : '').'leftmenu='; + } + //$url.="idmenu=".$menu_array[$i]['rowid']; // Already done by menuLoad + $url = dol_buildpath($url, 1).($param ? '?'.$param : ''); + $shorturlwithoutparam = $shorturl; + $shorturl = $shorturl.($param ? '?'.$param : ''); } print '<!-- Process menu entry with mainmenu='.$menu_array[$i]['mainmenu'].', leftmenu='.$menu_array[$i]['leftmenu'].', level='.$menu_array[$i]['level'].' enabled='.$menu_array[$i]['enabled'].', position='.$menu_array[$i]['position'].' -->'."\n"; // Menu level 0 - if ($menu_array[$i]['level'] == 0) { - if ($menu_array[$i]['enabled']) { // Enabled so visible + if ($menu_array[$i]['level'] == 0) + { + if ($menu_array[$i]['enabled']) // Enabled so visible + { print '<div class="menu_titre">'.$tabstring; - if ($shorturlwithoutparam) { - print '<a class="vmenu" title="'.dol_escape_htmltag(dol_string_nohtmltag($menu_array[$i]['titre'])).'" href="'.$url.'"'.($menu_array[$i]['target'] ? ' target="'.$menu_array[$i]['target'].'"' : '').'>'; - } else { - print '<span class="vmenu">'; - } + if ($shorturlwithoutparam) print '<a class="vmenu" title="'.dol_escape_htmltag($menu_array[$i]['titre']).'" href="'.$url.'"'.($menu_array[$i]['target'] ? ' target="'.$menu_array[$i]['target'].'"' : '').'>'; + else print '<span class="vmenu">'; print ($menu_array[$i]['prefix'] ? $menu_array[$i]['prefix'] : '').$menu_array[$i]['titre']; - if ($shorturlwithoutparam) { - print '</a>'; - } else { - print '</span>'; - } + if ($shorturlwithoutparam) print '</a>'; + else print '</span>'; print '</div>'."\n"; $lastlevel0 = 'enabled'; - } elseif ($showmenu) { // Not enabled but visible (so greyed) + } + elseif ($showmenu) // Not enabled but visible (so greyed) + { print '<div class="menu_titre">'.$tabstring.'<font class="vmenudisabled">'.$menu_array[$i]['titre'].'</font></div>'."\n"; $lastlevel0 = 'greyed'; - } else { - $lastlevel0 = 'hidden'; - } - if ($showmenu) { + } + else + { + $lastlevel0 = 'hidden'; + } + if ($showmenu) + { print '<div class="menu_top"></div>'."\n"; } } // Menu level > 0 - if ($menu_array[$i]['level'] > 0) { + if ($menu_array[$i]['level'] > 0) + { $cssmenu = ''; - if ($menu_array[$i]['url']) { - $cssmenu = ' menu_contenu'.dol_string_nospecial(preg_replace('/\.php.*$/', '', $menu_array[$i]['url'])); - } - - if ($menu_array[$i]['enabled'] && $lastlevel0 == 'enabled') { // Enabled so visible, except if parent was not enabled. + if ($menu_array[$i]['url']) $cssmenu = ' menu_contenu'.dol_string_nospecial(preg_replace('/\.php.*$/', '', $menu_array[$i]['url'])); + + if ($menu_array[$i]['enabled'] && $lastlevel0 == 'enabled') // Enabled so visible, except if parent was not enabled. + { print '<div class="menu_contenu'.$cssmenu.'">'.$tabstring; - if ($shorturlwithoutparam) { - print '<a class="vsmenu" title="'.dol_escape_htmltag(dol_string_nohtmltag($menu_array[$i]['titre'])).'" href="'.$url.'"'.($menu_array[$i]['target'] ? ' target="'.$menu_array[$i]['target'].'"' : '').'>'; - } else { - print '<span class="vsmenu" title="'.dol_escape_htmltag($menu_array[$i]['titre']).'">'; - } + if ($shorturlwithoutparam) print '<a class="vsmenu" title="'.dol_escape_htmltag($menu_array[$i]['titre']).'" href="'.$url.'"'.($menu_array[$i]['target'] ? ' target="'.$menu_array[$i]['target'].'"' : '').'>'; + else print '<span class="vsmenu">'; print $menu_array[$i]['titre']; - if ($shorturlwithoutparam) { - print '</a>'; - } else { - print '</span>'; - } + if ($shorturlwithoutparam) print '</a>'; + else print '</span>'; // If title is not pure text and contains a table, no carriage return added - if (!strstr($menu_array[$i]['titre'], '<table')) { - print '<br>'; - } + if (!strstr($menu_array[$i]['titre'], '<table')) print '<br>'; print '</div>'."\n"; - } elseif ($showmenu && $lastlevel0 == 'enabled') { // Not enabled but visible (so greyed), except if parent was not enabled. + } + elseif ($showmenu && $lastlevel0 == 'enabled') // Not enabled but visible (so greyed), except if parent was not enabled. + { print '<div class="menu_contenu'.$cssmenu.'">'.$tabstring.'<font class="vsmenudisabled vsmenudisabledmargin">'.$menu_array[$i]['titre'].'</font><br></div>'."\n"; } } // If next is a new block or if there is nothing after - if (empty($menu_array[$i + 1]['level'])) { // End menu block - if ($showmenu) { + if (empty($menu_array[$i + 1]['level'])) // End menu block + { + if ($showmenu) print '<div class="menu_end"></div>'."\n"; - } - if ($blockvmenuopened) { - print '</div>'."\n"; $blockvmenuopened = false; - } + if ($blockvmenuopened) { print '</div>'."\n"; $blockvmenuopened = false; } } } - if ($altok) { - print '<div class="blockvmenuend"></div>'; // End menu block - } + if ($altok) print '<div class="blockvmenuend"></div>'; // End menu block } return count($menu_array); --- /tmp/dsg/dolibarr/htdocs/core/menus/standard/github_eldy_menu.php +++ /tmp/dsg/dolibarr/htdocs/core/menus/standard/client_eldy_menu.php @@ -28,301 +28,312 @@ class MenuManager { /** - * @var DoliDB Database handler. - */ - public $db; - - public $type_user; // Put 0 for internal users, 1 for external users - public $atarget = ""; // To store default target to use onto links - public $name = "eldy"; - - public $menu_array; - public $menu_array_after; - - public $tabMenu; - - - /** - * Constructor - * + * @var DoliDB Database handler. + */ + public $db; + + public $type_user; // Put 0 for internal users, 1 for external users + public $atarget = ""; // To store default target to use onto links + public $name = "eldy"; + + public $menu_array; + public $menu_array_after; + + public $tabMenu; + + + /** + * Constructor + * * @param DoliDB $db Database handler - * @param int $type_user Type of user - */ - public 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 - */ - public function loadMenu($forcemainmenu = '', $forceleftmenu = '') - { - global $conf, $user, $langs; - - // We save into session the main menu selected - if (GETPOSTISSET("mainmenu")) { - $_SESSION["mainmenu"] = GETPOST("mainmenu", 'aZ09'); + * @param int $type_user Type of user + */ + public 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 + */ + public 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, 'eldy'); + $menuArbo->menuLoad($mainmenu, $leftmenu, $this->type_user, 'eldy', $tabMenu); + $this->tabMenu = $tabMenu; + //var_dump($tabMenu); + + //if ($forcemainmenu == 'all') { var_dump($this->tabMenu); exit; } + } + + + /** + * Show menu. + * Menu defined in sql tables were stored into $this->tabMenu BEFORE this is called. + * + * @param string $mode 'top', 'topnb', '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' + */ + public function showmenu($mode, $moredata = null) + { + global $conf, $langs, $user; + + //var_dump($this->tabMenu); + + require_once DOL_DOCUMENT_ROOT.'/core/menus/standard/eldy.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 (empty($conf->global->MAIN_MENU_INVERT)) + { + if ($mode == 'top') print_eldy_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 0, $mode); + if ($mode == 'left') print_left_eldy_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $this->menu, 0, '', '', $moredata); + } + else + { + $conf->global->MAIN_SHOW_LOGO = 0; + if ($mode == 'top') print_left_eldy_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $this->menu, 0); + if ($mode == 'left') print_eldy_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 0, $mode); } - if (GETPOSTISSET("idmenu")) { - $_SESSION["idmenu"] = GETPOST("idmenu", 'int'); + + if ($mode == 'topnb') + { + print_eldy_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 1, $mode); // no output + return $this->menu->getNbOfVisibleMenuEntries(); } - // Read now mainmenu and leftmenu that define which menu to show - if (GETPOSTISSET("mainmenu")) { - // On sauve en session le menu principal choisi - $mainmenu = GETPOST("mainmenu", 'aZ09'); - $_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 (GETPOSTISSET("leftmenu")) { - // On sauve en session le menu principal choisi - $leftmenu = GETPOST("leftmenu", 'aZ09'); - $_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, 'eldy'); - $menuArbo->menuLoad($mainmenu, $leftmenu, $this->type_user, 'eldy', $tabMenu); - $this->tabMenu = $tabMenu; - //var_dump($tabMenu); - - //if ($forcemainmenu == 'all') { var_dump($this->tabMenu); exit; } - } - - - /** - * Show menu. - * Menu defined in sql tables were stored into $this->tabMenu BEFORE this is called. - * - * @param string $mode 'top', 'topnb', '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' - */ - public function showmenu($mode, $moredata = null) - { - global $conf, $langs, $user; - - //var_dump($this->tabMenu); - - require_once DOL_DOCUMENT_ROOT.'/core/menus/standard/eldy.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 (empty($conf->global->MAIN_MENU_INVERT)) { - if ($mode == 'top') { - print_eldy_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 0, $mode); - } - if ($mode == 'left') { - print_left_eldy_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $this->menu, 0, '', '', $moredata, $this->type_user); - } - } else { - $conf->global->MAIN_SHOW_LOGO = 0; - if ($mode == 'top') { - print_left_eldy_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $this->menu, 0, '', '', $moredata, $this->type_user); - } - if ($mode == 'left') { - print_eldy_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 0, $mode); - } - } - if ($mode == 'topnb') { - print_eldy_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 1, $mode); // no output - return $this->menu->getNbOfVisibleMenuEntries(); - } - - if ($mode == 'jmobile') { // Used to get menu in xml ul/li - print_eldy_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 1, $mode); // Fill this->menu that is empty with top menu - - // $this->menu->liste is top menu - //var_dump($this->menu->liste);exit; - $lastlevel = array(); - print '<!-- Generate menu list from menu handler '.$this->name.' -->'."\n"; - foreach ($this->menu->liste as $key => $val) { // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' - print '<ul class="ulmenu" data-inset="true">'; - print '<li class="lilevel0">'; - - if ($val['enabled'] == 1) { - $substitarray = array('__LOGIN__' => $user->login, '__USER_ID__' => $user->id, '__USER_SUPERVISOR_ID__' => $user->fk_user); - $substitarray['__USERID__'] = $user->id; // For backward compatibility - $val['url'] = make_substitutions($val['url'], $substitarray); + if ($mode == 'jmobile') // Used to get menu in xml ul/li + { + print_eldy_menu($this->db, $this->atarget, $this->type_user, $this->tabMenu, $this->menu, 1, $mode); // Fill this->menu that is empty with top menu + + // $this->menu->liste is top menu + //var_dump($this->menu->liste);exit; + $lastlevel = array(); + print '<!-- Generate menu list from menu handler '.$this->name.' -->'."\n"; + foreach ($this->menu->liste as $key => $val) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' + { + print '<ul class="ulmenu" data-inset="true">'; + print '<li class="lilevel0">'; + + if ($val['enabled'] == 1) + { + $substitarray = array('__LOGIN__' => $user->login, '__USER_ID__' => $user->id, '__USER_SUPERVISOR_ID__' => $user->fk_user); + $substitarray['__USERID__'] = $user->id; // For backward compatibility + $val['url'] = make_substitutions($val['url'], $substitarray); $relurl = dol_buildpath($val['url'], 1); $canonurl = preg_replace('/\?.*$/', '', $val['url']); - print '<a class="alilevel0" href="#">'; + print '<a class="alilevel0" href="#">'; // Add font-awesome - if ($val['level'] == 0 && $val['mainmenu'] == 'home') { - print '<span class="fa fa-home fa-fw paddingright" aria-hidden="true"></span>'; - } + if ($val['level'] == 0 && $val['mainmenu'] == 'home') print '<span class="fa fa-home fa-fw paddingright" aria-hidden="true"></span>'; print $val['titre']; - print '</a>'."\n"; - - // Search submenu fot this mainmenu entry - $tmpmainmenu = $val['mainmenu']; - $tmpleftmenu = 'all'; - $submenu = new Menu(); - print_left_eldy_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $submenu, 1, $tmpmainmenu, $tmpleftmenu, null, $this->type_user); // Fill $submenu (example with tmpmainmenu='home' tmpleftmenu='all', return left menu tree of Home) - // Note: $submenu contains menu entry with substitution not yet done - //if ($tmpmainmenu.'-'.$tmpleftmenu == 'home-all') { var_dump($submenu); exit; } - //if ($tmpmainmenu=='accountancy') { var_dump($submenu->liste); exit; } - $nexturl = dol_buildpath($submenu->liste[0]['url'], 1); - - $canonrelurl = preg_replace('/\?.*$/', '', $relurl); - $canonnexturl = preg_replace('/\?.*$/', '', $nexturl); - //var_dump($canonrelurl); - //var_dump($canonnexturl); - print '<ul>'."\n"; - if (($canonrelurl != $canonnexturl && !in_array($val['mainmenu'], array('tools'))) - || (strpos($canonrelurl, '/product/index.php') !== false || strpos($canonrelurl, '/compta/bank/list.php') !== false)) { - // We add sub entry - print str_pad('', 1).'<li class="lilevel1 ui-btn-icon-right ui-btn">'; // ui-btn to highlight on clic - print '<a href="'.$relurl.'">'; - if ($langs->trans(ucfirst($val['mainmenu'])."Dashboard") == ucfirst($val['mainmenu'])."Dashboard") { // No translation - if (in_array($val['mainmenu'], array('cashdesk', 'externalsite', 'website', 'collab'))) { - print $langs->trans("Access"); - } else { - print $langs->trans("Dashboard"); - } - } else { - print $langs->trans(ucfirst($val['mainmenu'])."Dashboard"); + print '</a>'."\n"; + + // Search submenu fot this mainmenu entry + $tmpmainmenu = $val['mainmenu']; + $tmpleftmenu = 'all'; + $submenu = new Menu(); + print_left_eldy_menu($this->db, $this->menu_array, $this->menu_array_after, $this->tabMenu, $submenu, 1, $tmpmainmenu, $tmpleftmenu); // Fill $submenu (example with tmpmainmenu='home' tmpleftmenu='all', return left menu tree of Home) + // Note: $submenu contains menu entry with substitution not yet done + //if ($tmpmainmenu.'-'.$tmpleftmenu == 'home-all') { var_dump($submenu); exit; } + //if ($tmpmainmenu=='accountancy') { var_dump($submenu->liste); exit; } + $nexturl = dol_buildpath($submenu->liste[0]['url'], 1); + + $canonrelurl = preg_replace('/\?.*$/', '', $relurl); + $canonnexturl = preg_replace('/\?.*$/', '', $nexturl); + //var_dump($canonrelurl); + //var_dump($canonnexturl); + print '<ul>'."\n"; + if (($canonrelurl != $canonnexturl && !in_array($val['mainmenu'], array('tools'))) + || (strpos($canonrelurl, '/product/index.php') !== false || strpos($canonrelurl, '/compta/bank/list.php') !== false)) + { + // We add sub entry + print str_pad('', 1).'<li class="lilevel1 ui-btn-icon-right ui-btn">'; // ui-btn to highlight on clic + print '<a href="'.$relurl.'">'; + if ($langs->trans(ucfirst($val['mainmenu'])."Dashboard") == ucfirst($val['mainmenu'])."Dashboard") // No translation + { + if (in_array($val['mainmenu'], array('cashdesk', 'externalsite', 'website', 'collab'))) print $langs->trans("Access"); + else print $langs->trans("Dashboard"); + } + else print $langs->trans(ucfirst($val['mainmenu'])."Dashboard"); + print '</a>'; + print '</li>'."\n"; + } + + if ($val['level'] == 0) + { + if ($val['enabled']) + { + $lastlevel[0] = 'enabled'; + } + elseif ($showmenu) // Not enabled but visible (so greyed) + { + $lastlevel[0] = 'greyed'; + } + else + { + $lastlevel[0] = 'hidden'; + } + } + + $lastlevel2 = array(); + foreach ($submenu->liste as $key2 => $val2) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' + { + $showmenu = true; + if (!empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($val2['enabled'])) $showmenu = false; + + // If at least one parent is not enabled, we do not show any menu of all children + if ($val2['level'] > 0) + { + $levelcursor = $val2['level'] - 1; + while ($levelcursor >= 0) + { + if ($lastlevel2[$levelcursor] != 'enabled') $showmenu = false; + $levelcursor--; + } } - print '</a>'; - print '</li>'."\n"; - } - - if ($val['level'] == 0) { - if ($val['enabled']) { - $lastlevel[0] = 'enabled'; - } elseif ($showmenu) { // Not enabled but visible (so greyed) - $lastlevel[0] = 'greyed'; - } else { - $lastlevel[0] = 'hidden'; - } - } - - $lastlevel2 = array(); - foreach ($submenu->liste as $key2 => $val2) { // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' - $showmenu = true; - if (!empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($val2['enabled'])) { - $showmenu = false; - } - - // If at least one parent is not enabled, we do not show any menu of all children - if ($val2['level'] > 0) { - $levelcursor = $val2['level'] - 1; - while ($levelcursor >= 0) { - if ($lastlevel2[$levelcursor] != 'enabled') { - $showmenu = false; - } - $levelcursor--; - } - } - - if ($showmenu) { // Visible (option to hide when not allowed is off or allowed) - $substitarray = array('__LOGIN__' => $user->login, '__USER_ID__' => $user->id, '__USER_SUPERVISOR_ID__' => $user->fk_user); - $substitarray['__USERID__'] = $user->id; // For backward compatibility - $val2['url'] = make_substitutions($val2['url'], $substitarray); // Make also substitution of __(XXX)__ and __[XXX]__ - - if (!preg_match("/^(http:\/\/|https:\/\/)/i", $val2['url'])) { - $relurl2 = dol_buildpath($val2['url'], 1); - } else { - $relurl2 = $val2['url']; - } - $canonurl2 = preg_replace('/\?.*$/', '', $val2['url']); - //var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']); - if (in_array($canonurl2, array('/admin/index.php', '/admin/tools/index.php', '/core/tools.php'))) { - $relurl2 = ''; - } - - $disabled = ''; - if (!$val2['enabled']) { - $disabled = " vsmenudisabled"; - } - - print str_pad('', $val2['level'] + 1); - print '<li class="lilevel'.($val2['level'] + 1); - if ($val2['level'] == 0) { - print ' ui-btn-icon-right ui-btn'; // ui-btn to highlight on clic - } - print $disabled.'">'; // ui-btn to highlight on clic - if ($relurl2) { - if ($val2['enabled']) { // Allowed - print '<a href="'.$relurl2.'"'; - //print ' data-ajax="false"'; - print '>'; - $lastlevel2[$val2['level']] = 'enabled'; - } else // Not allowed but visible (greyed) - { - print '<a href="#" class="vsmenudisabled">'; - $lastlevel2[$val2['level']] = 'greyed'; - } - } else { - if ($val2['enabled']) { // Allowed - $lastlevel2[$val2['level']] = 'enabled'; - } else { - $lastlevel2[$val2['level']] = 'greyed'; - } - } - print $val2['titre']; - if ($relurl2) { - if ($val2['enabled']) { // Allowed - print '</a>'; - } else { - print '</a>'; - } - } - print '</li>'."\n"; - } - } - //var_dump($submenu); - print '</ul>'; - } - if ($val['enabled'] == 2) { - print '<font class="vsmenudisabled">'.$val['titre'].'</font>'; - } - print '</li>'; - print '</ul>'."\n"; - } - } - - unset($this->menu); - - //print 'xx'.$mode; - return 0; - } + + if ($showmenu) // Visible (option to hide when not allowed is off or allowed) + { + $substitarray = array('__LOGIN__' => $user->login, '__USER_ID__' => $user->id, '__USER_SUPERVISOR_ID__' => $user->fk_user); + $substitarray['__USERID__'] = $user->id; // For backward compatibility + $val2['url'] = make_substitutions($val2['url'], $substitarray); // Make also substitution of __(XXX)__ and __[XXX]__ + + if (!preg_match("/^(http:\/\/|https:\/\/)/i", $val2['url'])) + { + $relurl2 = dol_buildpath($val2['url'], 1); + } + else + { + $relurl2 = $val2['url']; + } + $canonurl2 = preg_replace('/\?.*$/', '', $val2['url']); + //var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']); + if (in_array($canonurl2, array('/admin/index.php', '/admin/tools/index.php', '/core/tools.php'))) $relurl2 = ''; + + $disabled = ''; + if (!$val2['enabled']) + { + $disabled = " vsmenudisabled"; + } + + print str_pad('', $val2['level'] + 1); + print '<li class="lilevel'.($val2['level'] + 1); + if ($val2['level'] == 0) print ' ui-btn-icon-right ui-btn'; // ui-btn to highlight on clic + print $disabled.'">'; // ui-btn to highlight on clic + if ($relurl2) + { + if ($val2['enabled']) // Allowed + { + print '<a href="'.$relurl2.'"'; + //print ' data-ajax="false"'; + print '>'; + $lastlevel2[$val2['level']] = 'enabled'; + } + else // Not allowed but visible (greyed) + { + print '<a href="#" class="vsmenudisabled">'; + $lastlevel2[$val2['level']] = 'greyed'; + } + } + else + { + if ($val2['enabled']) // Allowed + { + $lastlevel2[$val2['level']] = 'enabled'; + } + else + { + $lastlevel2[$val2['level']] = 'greyed'; + } + } + print $val2['titre']; + if ($relurl2) + { + if ($val2['enabled']) // Allowed + print '</a>'; + else + print '</a>'; + } + print '</li>'."\n"; + } + } + //var_dump($submenu); + print '</ul>'; + } + if ($val['enabled'] == 2) + { + print '<font class="vsmenudisabled">'.$val['titre'].'</font>'; + } + print '</li>'; + print '</ul>'."\n"; + } + } + + unset($this->menu); + + //print 'xx'.$mode; + return 0; + } } --- /tmp/dsg/dolibarr/htdocs/core/menus/standard/github_empty.php +++ /tmp/dsg/dolibarr/htdocs/core/menus/standard/client_empty.php @@ -26,25 +26,22 @@ class MenuManager { /** - * @var DoliDB Database handler. - */ - public $db; - - public $type_user = 0; // Put 0 for internal users, 1 for external users - public $atarget = ""; // To store default target to use onto links - public $name = "empty"; - - public $menu; - public $menu_array_after; - - public $tabMenu; + * @var DoliDB Database handler. + */ + public $db; + + public $type_user = 0; // Put 0 for internal users, 1 for external users + public $atarget = ""; // To store default target to use onto links + + public $menu; + public $menu_array_after; /** * Constructor * * @param DoliDB $db Database handler - * @param int $type_user Type of user + * @param int $type_user Type of user */ public function __construct($db, $type_user) { @@ -54,25 +51,24 @@ /** - * Load this->tabMenu - * - * @param string $forcemainmenu To force mainmenu to load - * @param string $forceleftmenu To force leftmenu to load - * @return void + * Load this->tabMenu + * + * @param string $forcemainmenu To force mainmenu to load + * @param string $forceleftmenu To force leftmenu to load + * @return void */ public function loadMenu($forcemainmenu = '', $forceleftmenu = '') { // Do nothing - $this->tabMenu = array(); } /** * Show menu * - * @param string $mode 'top', 'left', 'jmobile' - * @param array $moredata An array with more data to output - * @return int 0 or nb of top menu entries if $mode = 'topnb' + * @param string $mode 'top', 'left', 'jmobile' + * @param array $moredata An array with more data to output + * @return int 0 or nb of top menu entries if $mode = 'topnb' */ public function showmenu($mode, $moredata = null) { @@ -88,24 +84,25 @@ $noout = 0; //if ($mode == 'jmobile') $noout=1; - if ($mode == 'topnb') { - return 1; + if ($mode == 'topnb') + { + return 1; } - if ($mode == 'top') { - if (empty($noout)) { - print_start_menu_array_empty(); - } - - $usemenuhider = 1; + if ($mode == 'top') + { + if (empty($noout)) print_start_menu_array_empty(); + + $usemenuhider = 1; // Show/Hide vertical menu - if ($mode != 'jmobile' && $mode != 'topnb' && $usemenuhider && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { - $showmode = 1; - $classname = 'class="tmenu menuhider"'; - $idsel = 'menu'; - - $this->menu->add('#', '', 0, $showmode, $atarget, "xxx", '', 0, $id, $idsel, $classname); + if ($mode != 'jmobile' && $mode != 'topnb' && $usemenuhider && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) + { + $showmode = 1; + $classname = 'class="tmenu menuhider"'; + $idsel = 'menu'; + + $this->menu->add('#', '', 0, $showmode, $atarget, "xxx", '', 0, $id, $idsel, $classname); } // Home @@ -120,214 +117,217 @@ $this->menu->liste = dol_sort_array($this->menu->liste, 'position'); // Output menu entries - foreach ($this->menu->liste as $menkey => $menuval) { - if (empty($noout)) { - print_start_menu_entry_empty($menuval['idsel'], $menuval['classname'], $menuval['enabled']); - } - if (empty($noout)) { - print_text_menu_entry_empty($menuval['titre'], $menuval['enabled'], ($menuval['url'] != '#' ?DOL_URL_ROOT:'').$menuval['url'], $menuval['id'], $menuval['idsel'], $menuval['classname'], ($menuval['target'] ? $menuval['target'] : $atarget)); - } - if (empty($noout)) { - print_end_menu_entry_empty($menuval['enabled']); - } + foreach ($this->menu->liste as $menkey => $menuval) + { + if (empty($noout)) print_start_menu_entry_empty($menuval['idsel'], $menuval['classname'], $menuval['enabled']); + if (empty($noout)) print_text_menu_entry_empty($menuval['titre'], $menuval['enabled'], ($menuval['url'] != '#' ?DOL_URL_ROOT:'').$menuval['url'], $menuval['id'], $menuval['idsel'], $menuval['classname'], ($menuval['target'] ? $menuval['target'] : $atarget)); + if (empty($noout)) print_end_menu_entry_empty($menuval['enabled']); } $showmode = 1; - if (empty($noout)) { - print_start_menu_entry_empty('', 'class="tmenuend"', $showmode); - } - if (empty($noout)) { - print_end_menu_entry_empty($showmode); - } - - if (empty($noout)) { - print_end_menu_array_empty(); - } - - if ($mode == 'jmobile') { + if (empty($noout)) print_start_menu_entry_empty('', 'class="tmenuend"', $showmode); + if (empty($noout)) print_end_menu_entry_empty($showmode); + + if (empty($noout)) print_end_menu_array_empty(); + + if ($mode == 'jmobile') + { $this->topmenu = clone $this->menu; unset($this->menu->liste); } } - if ($mode == 'jmobile') { // Used to get menu in xml ul/li - // Home - $showmode = 1; - $classname = 'class="tmenusel"'; - $idsel = 'home'; - - $this->menu->add('/index.php', $langs->trans("Home"), 0, $showmode, $this->atarget, 'home', '', 10, $id, $idsel, $classname); - - $substitarray = getCommonSubstitutionArray($langs, 0, null, null); - - // $this->menu->liste is top menu - //var_dump($this->menu->liste);exit; - $lastlevel = array(); - print '<!-- Generate menu list from menu handler '.$this->name.' -->'."\n"; - foreach ($this->menu->liste as $key => $val) { // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' - print '<ul class="ulmenu" data-inset="true">'; - print '<li class="lilevel0">'; - - $val['url'] = make_substitutions($val['url'], $substitarray); - - if ($val['enabled'] == 1) { - $relurl = dol_buildpath($val['url'], 1); - $canonurl = preg_replace('/\?.*$/', '', $val['url']); - - print '<a class="alilevel0" href="#">'; - - // Add font-awesome - if ($val['level'] == 0 && $val['mainmenu'] == 'home') { - print '<span class="fa fa-home fa-fw paddingright" aria-hidden="true"></span>'; - } - - print $val['titre']; - print '</a>'."\n"; - - // Search submenu fot this mainmenu entry - $tmpmainmenu = $val['mainmenu']; - $tmpleftmenu = 'all'; - $submenu = new Menu(); - - $langs->load("admin"); // Load translation file admin.lang - $submenu->add("/admin/index.php?leftmenu=setup", $langs->trans("Setup"), 0); - $submenu->add("/admin/company.php", $langs->trans("MenuCompanySetup"), 1); - $submenu->add("/admin/modules.php", $langs->trans("Modules"), 1); - $submenu->add("/admin/menus.php", $langs->trans("Menus"), 1); - $submenu->add("/admin/ihm.php", $langs->trans("GUISetup"), 1); - $submenu->add("/admin/translation.php?mainmenu=home", $langs->trans("Translation"), 1); - $submenu->add("/admin/defaultvalues.php?mainmenu=home", $langs->trans("DefaultValues"), 1); - - $submenu->add("/admin/boxes.php?mainmenu=home", $langs->trans("Boxes"), 1); - $submenu->add("/admin/delais.php?mainmenu=home", $langs->trans("Alerts"), 1); - $submenu->add("/admin/proxy.php?mainmenu=home", $langs->trans("Security"), 1); - $submenu->add("/admin/limits.php?mainmenu=home", $langs->trans("MenuLimits"), 1); - $submenu->add("/admin/pdf.php?mainmenu=home", $langs->trans("PDF"), 1); - $submenu->add("/admin/mails.php?mainmenu=home", $langs->trans("Emails"), 1); - $submenu->add("/admin/sms.php?mainmenu=home", $langs->trans("SMS"), 1); - $submenu->add("/admin/dict.php?mainmenu=home", $langs->trans("DictionarySetup"), 1); - $submenu->add("/admin/const.php?mainmenu=home", $langs->trans("OtherSetup"), 1); - - //if ($tmpmainmenu.'-'.$tmpleftmenu == 'home-all') { var_dump($submenu); exit; } - //if ($tmpmainmenu=='accountancy') { var_dump($submenu->liste); exit; } - $nexturl = dol_buildpath($submenu->liste[0]['url'], 1); - - $canonrelurl = preg_replace('/\?.*$/', '', $relurl); - $canonnexturl = preg_replace('/\?.*$/', '', $nexturl); - //var_dump($canonrelurl); - //var_dump($canonnexturl); - print '<ul>'."\n"; - if (($canonrelurl != $canonnexturl && !in_array($val['mainmenu'], array('tools'))) - || (strpos($canonrelurl, '/product/index.php') !== false || strpos($canonrelurl, '/compta/bank/list.php') !== false)) { - // We add sub entry - print str_pad('', 1).'<li class="lilevel1 ui-btn-icon-right ui-btn">'; // ui-btn to highlight on clic - print '<a href="'.$relurl.'">'; - if ($langs->trans(ucfirst($val['mainmenu'])."Dashboard") == ucfirst($val['mainmenu'])."Dashboard") { // No translation - if (in_array($val['mainmenu'], array('cashdesk', 'websites'))) { - print $langs->trans("Access"); - } else { - print $langs->trans("Dashboard"); - } - } else { - print $langs->trans(ucfirst($val['mainmenu'])."Dashboard"); - } - print '</a>'; - print '</li>'."\n"; - } - - if ($val['level'] == 0) { - if ($val['enabled']) { - $lastlevel[0] = 'enabled'; - } elseif ($showmenu) { // Not enabled but visible (so greyed) - $lastlevel[0] = 'greyed'; - } else { - $lastlevel[0] = 'hidden'; - } - } - - $lastlevel2 = array(); - foreach ($submenu->liste as $key2 => $val2) { // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' - $showmenu = true; - if (!empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($val2['enabled'])) { - $showmenu = false; - } - - // If at least one parent is not enabled, we do not show any menu of all children - if ($val2['level'] > 0) { - $levelcursor = $val2['level'] - 1; - while ($levelcursor >= 0) { - if ($lastlevel2[$levelcursor] != 'enabled') { - $showmenu = false; - } - $levelcursor--; - } - } - - if ($showmenu) { // Visible (option to hide when not allowed is off or allowed) - $val2['url'] = make_substitutions($val2['url'], $substitarray); - - $relurl2 = dol_buildpath($val2['url'], 1); - $canonurl2 = preg_replace('/\?.*$/', '', $val2['url']); - //var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']); - if (in_array($canonurl2, array('/admin/index.php', '/admin/tools/index.php', '/core/tools.php'))) { - $relurl2 = ''; - } - - $disabled = ''; - if (!$val2['enabled']) { - $disabled = " vsmenudisabled"; - } - - print str_pad('', $val2['level'] + 1); - print '<li class="lilevel'.($val2['level'] + 1); - if ($val2['level'] == 0) { - print ' ui-btn-icon-right ui-btn'; // ui-btn to highlight on clic - } - print $disabled.'">'; // ui-btn to highlight on clic - if ($relurl2) { - if ($val2['enabled']) { // Allowed - print '<a href="'.$relurl2.'"'; - //print ' data-ajax="false"'; - print '>'; - $lastlevel2[$val2['level']] = 'enabled'; - } else // Not allowed but visible (greyed) - { - print '<a href="#" class="vsmenudisabled">'; - $lastlevel2[$val2['level']] = 'greyed'; - } - } else { - if ($val2['enabled']) { // Allowed - $lastlevel2[$val2['level']] = 'enabled'; - } else { - $lastlevel2[$val2['level']] = 'greyed'; - } - } - //var_dump($val2['level']); - //var_dump($lastlevel2); - print $val2['titre']; - if ($relurl2) { - if ($val2['enabled']) { - // Allowed - print '</a>'; - } else { - print '</a>'; - } - } - print '</li>'."\n"; - } - } - //var_dump($submenu); - print '</ul>'; - } - if ($val['enabled'] == 2) { - print '<font class="vsmenudisabled">'.$val['titre'].'</font>'; - } - print '</li>'; - print '</ul>'."\n"; - } + if ($mode == 'jmobile') // Used to get menu in xml ul/li + { + // Home + $showmode = 1; + $classname = 'class="tmenusel"'; + $idsel = 'home'; + + $this->menu->add('/index.php', $langs->trans("Home"), 0, $showmode, $this->atarget, 'home', '', 10, $id, $idsel, $classname); + + $substitarray = getCommonSubstitutionArray($langs, 0, null, null); + + // $this->menu->liste is top menu + //var_dump($this->menu->liste);exit; + $lastlevel = array(); + print '<!-- Generate menu list from menu handler '.$this->name.' -->'."\n"; + foreach ($this->menu->liste as $key => $val) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' + { + print '<ul class="ulmenu" data-inset="true">'; + print '<li class="lilevel0">'; + + $val['url'] = make_substitutions($val['url'], $substitarray); + + if ($val['enabled'] == 1) + { + $relurl = dol_buildpath($val['url'], 1); + $canonurl = preg_replace('/\?.*$/', '', $val['url']); + + print '<a class="alilevel0" href="#">'; + + // Add font-awesome + if ($val['level'] == 0 && $val['mainmenu'] == 'home') print '<span class="fa fa-home fa-fw paddingright" aria-hidden="true"></span>'; + + print $val['titre']; + print '</a>'."\n"; + + // Search submenu fot this mainmenu entry + $tmpmainmenu = $val['mainmenu']; + $tmpleftmenu = 'all'; + $submenu = new Menu(); + + $langs->load("admin"); // Load translation file admin.lang + $submenu->add("/admin/index.php?leftmenu=setup", $langs->trans("Setup"), 0); + $submenu->add("/admin/company.php", $langs->trans("MenuCompanySetup"), 1); + $submenu->add("/admin/modules.php", $langs->trans("Modules"), 1); + $submenu->add("/admin/menus.php", $langs->trans("Menus"), 1); + $submenu->add("/admin/ihm.php", $langs->trans("GUISetup"), 1); + $submenu->add("/admin/translation.php?mainmenu=home", $langs->trans("Translation"), 1); + $submenu->add("/admin/defaultvalues.php?mainmenu=home", $langs->trans("DefaultValues"), 1); + + $submenu->add("/admin/boxes.php", $langs->trans("Boxes"), 1); + $submenu->add("/admin/delais.php", $langs->trans("Alerts"), 1); + $submenu->add("/admin/proxy.php?mainmenu=home", $langs->trans("Security"), 1); + $submenu->add("/admin/limits.php?mainmenu=home", $langs->trans("MenuLimits"), 1); + $submenu->add("/admin/pdf.php?mainmenu=home", $langs->trans("PDF"), 1); + $submenu->add("/admin/mails.php?mainmenu=home", $langs->trans("Emails"), 1); + $submenu->add("/admin/sms.php?mainmenu=home", $langs->trans("SMS"), 1); + $submenu->add("/admin/dict.php?mainmenu=home", $langs->trans("DictionarySetup"), 1); + $submenu->add("/admin/const.php?mainmenu=home", $langs->trans("OtherSetup"), 1); + + //if ($tmpmainmenu.'-'.$tmpleftmenu == 'home-all') { var_dump($submenu); exit; } + //if ($tmpmainmenu=='accountancy') { var_dump($submenu->liste); exit; } + $nexturl = dol_buildpath($submenu->liste[0]['url'], 1); + + $canonrelurl = preg_replace('/\?.*$/', '', $relurl); + $canonnexturl = preg_replace('/\?.*$/', '', $nexturl); + //var_dump($canonrelurl); + //var_dump($canonnexturl); + print '<ul>'."\n"; + if (($canonrelurl != $canonnexturl && !in_array($val['mainmenu'], array('tools'))) + || (strpos($canonrelurl, '/product/index.php') !== false || strpos($canonrelurl, '/compta/bank/list.php') !== false)) + { + // We add sub entry + print str_pad('', 1).'<li class="lilevel1 ui-btn-icon-right ui-btn">'; // ui-btn to highlight on clic + print '<a href="'.$relurl.'">'; + if ($langs->trans(ucfirst($val['mainmenu'])."Dashboard") == ucfirst($val['mainmenu'])."Dashboard") // No translation + { + if (in_array($val['mainmenu'], array('cashdesk', 'websites'))) print $langs->trans("Access"); + else print $langs->trans("Dashboard"); + } + else print $langs->trans(ucfirst($val['mainmenu'])."Dashboard"); + print '</a>'; + print '</li>'."\n"; + } + + if ($val['level'] == 0) + { + if ($val['enabled']) + { + $lastlevel[0] = 'enabled'; + } + elseif ($showmenu) // Not enabled but visible (so greyed) + { + $lastlevel[0] = 'greyed'; + } + else + { + $lastlevel[0] = 'hidden'; + } + } + + $lastlevel2 = array(); + foreach ($submenu->liste as $key2 => $val2) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' + { + $showmenu = true; + if (!empty($conf->global->MAIN_MENU_HIDE_UNAUTHORIZED) && empty($val2['enabled'])) $showmenu = false; + + // If at least one parent is not enabled, we do not show any menu of all children + if ($val2['level'] > 0) + { + $levelcursor = $val2['level'] - 1; + while ($levelcursor >= 0) + { + if ($lastlevel2[$levelcursor] != 'enabled') $showmenu = false; + $levelcursor--; + } + } + + if ($showmenu) // Visible (option to hide when not allowed is off or allowed) + { + $val2['url'] = make_substitutions($val2['url'], $substitarray); + + $relurl2 = dol_buildpath($val2['url'], 1); + $canonurl2 = preg_replace('/\?.*$/', '', $val2['url']); + //var_dump($val2['url'].' - '.$canonurl2.' - '.$val2['level']); + if (in_array($canonurl2, array('/admin/index.php', '/admin/tools/index.php', '/core/tools.php'))) $relurl2 = ''; + + $disabled = ''; + if (!$val2['enabled']) + { + $disabled = " vsmenudisabled"; + } + + print str_pad('', $val2['level'] + 1); + print '<li class="lilevel'.($val2['level'] + 1); + if ($val2['level'] == 0) print ' ui-btn-icon-right ui-btn'; // ui-btn to highlight on clic + print $disabled.'">'; // ui-btn to highlight on clic + if ($relurl2) + { + if ($val2['enabled']) // Allowed + { + print '<a href="'.$relurl2.'"'; + //print ' data-ajax="false"'; + print '>'; + $lastlevel2[$val2['level']] = 'enabled'; + } + else // Not allowed but visible (greyed) + { + print '<a href="#" class="vsmenudisabled">'; + $lastlevel2[$val2['level']] = 'greyed'; + } + } + else + { + if ($val2['enabled']) // Allowed + { + $lastlevel2[$val2['level']] = 'enabled'; + } + else + { + $lastlevel2[$val2['level']] = 'greyed'; + } + } + //var_dump($val2['level']); + //var_dump($lastlevel2); + print $val2['titre']; + if ($relurl2) + { + if ($val2['enabled']) { + // Allowed + print '</a>'; + } else { + print '</a>'; + } + } + print '</li>'."\n"; + } + } + //var_dump($submenu); + print '</ul>'; + } + if ($val['enabled'] == 2) + { + print '<font class="vsmenudisabled">'.$val['titre'].'</font>'; + } + print '</li>'; + print '</ul>'."\n"; + } } - if ($mode == 'left') { + if ($mode == 'left') + { // Put here left menu entries // ***** START ***** @@ -340,8 +340,8 @@ $this->menu->add("/admin/translation.php?mainmenu=home", $langs->trans("Translation"), 1); $this->menu->add("/admin/defaultvalues.php?mainmenu=home", $langs->trans("DefaultValues"), 1); - $this->menu->add("/admin/boxes.php?mainmenu=home", $langs->trans("Boxes"), 1); - $this->menu->add("/admin/delais.php?mainmenu=home", $langs->trans("Alerts"), 1); + $this->menu->add("/admin/boxes.php", $langs->trans("Boxes"), 1); + $this->menu->add("/admin/delais.php", $langs->trans("Alerts"), 1); $this->menu->add("/admin/proxy.php?mainmenu=home", $langs->trans("Security"), 1); $this->menu->add("/admin/limits.php?mainmenu=home", $langs->trans("MenuLimits"), 1); $this->menu->add("/admin/pdf.php?mainmenu=home", $langs->trans("PDF"), 1); @@ -352,112 +352,158 @@ // ***** END ***** - $menu_array_before = array(); - $menu_array_after = array(); - // do not change code after this - $menu_array = $this->menu->liste; - if (is_array($menu_array_before)) { - $menu_array = array_merge($menu_array_before, $menu_array); - } - if (is_array($menu_array_after)) { - $menu_array = array_merge($menu_array, $menu_array_after); - } - //var_dump($menu_array);exit; - if (!is_array($menu_array)) { - return 0; - } - - if (empty($noout)) { + if (empty($noout)) + { $alt = 0; $altok = 0; $blockvmenuopened = false; - $num = count($menu_array); - for ($i = 0; $i < $num; $i++) { + $num = count($this->menu->liste); + for ($i = 0; $i < $num; $i++) + { $alt++; - if (empty($menu_array[$i]['level'])) { - $altok++; - $blockvmenuopened = true; + if (empty($this->menu->liste[$i]['level'])) + { + $altok++; + $blockvmenuopened = true; $lastopened = true; - for ($j = ($i + 1); $j < $num; $j++) { - if (empty($menu_array[$j]['level'])) { - $lastopened = false; - } + for ($j = ($i + 1); $j < $num; $j++) + { + if (empty($menu_array[$j]['level'])) $lastopened = false; + } + $alt = 0; // For menu manager "empty", we force to not have blockvmenufirst defined + $lastopened = 1; // For menu manager "empty", we force to not have blockvmenulast defined + if (($alt % 2 == 0)) + { + print '<div class="blockvmenub lockvmenuimpair blockvmenuunique'.($lastopened ? ' blockvmenulast' : '').($alt == 1 ? ' blockvmenufirst' : '').'">'."\n"; } - $alt = 0; // For menu manager "empty", we force to not have blockvmenufirst defined - $lastopened = 1; // For menu manager "empty", we force to not have blockvmenulast defined - if (($alt % 2 == 0)) { - print '<div class="blockvmenub lockvmenuimpair blockvmenuunique'.($lastopened ? ' blockvmenulast' : '').($alt == 1 ? ' blockvmenufirst' : '').'">'."\n"; - } else { + else + { print '<div class="blockvmenu blockvmenupair blockvmenuunique'.($lastopened ? ' blockvmenulast' : '').($alt == 1 ? ' blockvmenufirst' : '').'">'."\n"; } } // Add tabulation $tabstring = ''; - $tabul = ($menu_array[$i]['level'] - 1); - if ($tabul > 0) { - for ($j = 0; $j < $tabul; $j++) { + $tabul = ($this->menu->liste[$i]['level'] - 1); + if ($tabul > 0) + { + for ($j = 0; $j < $tabul; $j++) + { $tabstring .= ' '; } } - if ($menu_array[$i]['level'] == 0) { - if ($menu_array[$i]['enabled']) { - print '<div class="menu_titre">'.$tabstring.'<a class="vmenu" href="'.dol_buildpath($menu_array[$i]['url'], 1).'"'.($menu_array[$i]['target'] ? ' target="'.$menu_array[$i]['target'].'"' : '').'>'.$menu_array[$i]['titre'].'</a></div>'."\n"; - } else { - print '<div class="menu_titre">'.$tabstring.'<font class="vmenudisabled">'.$menu_array[$i]['titre'].'</font></div>'."\n"; + if ($this->menu->liste[$i]['level'] == 0) { + if ($this->menu->liste[$i]['enabled']) + { + print '<div class="menu_titre">'.$tabstring.'<a class="vmenu" href="'.dol_buildpath($this->menu->liste[$i]['url'], 1).'"'.($this->menu->liste[$i]['target'] ? ' target="'.$this->menu->liste[$i]['target'].'"' : '').'>'.$this->menu->liste[$i]['titre'].'</a></div>'."\n"; + } + else + { + print '<div class="menu_titre">'.$tabstring.'<font class="vmenudisabled">'.$this->menu->liste[$i]['titre'].'</font></div>'."\n"; } print '<div class="menu_top"></div>'."\n"; } - if ($menu_array[$i]['level'] > 0) { - $cssmenu = ''; - if ($menu_array[$i]['url']) { - $cssmenu = ' menu_contenu'.dol_string_nospecial(preg_replace('/\.php.*$/', '', $menu_array[$i]['url'])); + if ($this->menu->liste[$i]['level'] > 0) + { + $cssmenu = ''; + if ($this->menu->liste[$i]['url']) $cssmenu = ' menu_contenu'.dol_string_nospecial(preg_replace('/\.php.*$/', '', $this->menu->liste[$i]['url'])); + + print '<div class="menu_contenu'.$cssmenu.'">'; + + if ($this->menu->liste[$i]['enabled']) + { + print $tabstring; + if ($this->menu->liste[$i]['url']) print '<a class="vsmenu" href="'.dol_buildpath($this->menu->liste[$i]['url'], 1).'"'.($this->menu->liste[$i]['target'] ? ' target="'.$this->menu->liste[$i]['target'].'"' : '').'>'; + else print '<span class="vsmenu">'; + if ($this->menu->liste[$i]['url']) print $this->menu->liste[$i]['titre'].'</a>'; + else print '</span>'; } - - print '<div class="menu_contenu'.$cssmenu.'">'; - - if ($menu_array[$i]['enabled']) { - print $tabstring; - if ($menu_array[$i]['url']) { - print '<a class="vsmenu" itle="'.dol_escape_htmltag($menu_array[$i]['titre']).'" href="'.dol_buildpath($menu_array[$i]['url'], 1).'"'.($menu_array[$i]['target'] ? ' target="'.$menu_array[$i]['target'].'"' : '').'>'; - } else { - print '<span class="vsmenu" title="'.dol_escape_htmltag($menu_array[$i]['titre']).'">'; - } - if ($menu_array[$i]['url']) { - print $menu_array[$i]['titre'].'</a>'; - } else { - print '</span>'; - } - } else { - print $tabstring.'<font class="vsmenudisabled vsmenudisabledmargin">'.$menu_array[$i]['titre'].'</font>'; + else + { + print $tabstring.'<font class="vsmenudisabled vsmenudisabledmargin">'.$this->menu->liste[$i]['titre'].'</font>'; } // If title is not pure text and contains a table, no carriage return added - if (!strstr($menu_array[$i]['titre'], '<table')) { - print '<br>'; - } + if (!strstr($this->menu->liste[$i]['titre'], '<table')) print '<br>'; print '</div>'."\n"; } // If next is a new block or end - if (empty($menu_array[$i + 1]['level'])) { + if (empty($this->menu->liste[$i + 1]['level'])) + { print '<div class="menu_end"></div>'."\n"; print "</div>\n"; } } - if ($altok) { - print '<div class="blockvmenuend"></div>'; - } + if ($altok) print '<div class="blockvmenuend"></div>'; } - if ($mode == 'jmobile') { + if ($mode == 'jmobile') + { $this->leftmenu = clone $this->menu; - unset($menu_array); + unset($this->menu->liste); } } + /* + if ($mode == 'jmobile') + { + $substitarray = getCommonSubstitutionArray($langs, 0, null, null); + + foreach($this->menu->liste as $key => $val) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' + { + print '<ul class="ulmenu" data-inset="true">'; + print '<li class="lilevel0">'; + + $val['url'] = make_substitutions($val['url'], $substitarray); + + if ($val['enabled'] == 1) + { + $relurl=dol_buildpath($val['url'],1); + + print '<a href="#">'.$val['titre'].'</a>'."\n"; + // Search submenu fot this entry + $tmpmainmenu=$val['mainmenu']; + $tmpleftmenu='all'; + //$submenu=new Menu(); + //$res=print_left_eldy_menu($this->db,$this->menu_array,$this->menu_array_after,$this->tabMenu,$submenu,1,$tmpmainmenu,$tmpleftmenu); + //$nexturl=dol_buildpath($submenu->liste[0]['url'],1); + $submenu=$this->leftmenu; + + $canonrelurl=preg_replace('/\?.*$/','',$relurl); + $canonnexturl=preg_replace('/\?.*$/','',$nexturl); + //var_dump($canonrelurl); + //var_dump($canonnexturl); + print '<ul>'; + if ($canonrelurl != $canonnexturl && ! in_array($val['mainmenu'],array('home','tools'))) + { + // We add sub entry + print '<li><a href="'.$relurl.'">'.$langs->trans("MainArea").'-'.$val['titre'].'</a></li>'."\n"; + } + foreach($submenu->liste as $key2 => $val2) // $val['url','titre','level','enabled'=0|1|2,'target','mainmenu','leftmenu' + { + $val2['url'] = make_substitutions($val2['url'], $substitarray); + + $relurl2=dol_buildpath($val2['url'],1); + //var_dump($val2); + print '<li><a href="'.$relurl2.'">'.$val2['titre'].'</a></li>'."\n"; + } + //var_dump($submenu); + print '</ul>'; + } + if ($val['enabled'] == 2) + { + print '<font class="vsmenudisabled">'.$val['titre'].'</font>'; + } + print '</li>'; + print '</ul>'."\n"; + + break; // Only first menu entry (so home) + } + } + */ unset($this->menu); return $res; @@ -472,7 +518,7 @@ */ function print_start_menu_array_empty() { - global $conf; + global $conf; print '<div class="tmenudiv">'; print '<ul role="navigation" class="tmenu"'.(empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) ? '' : ' title="Top menu"').'>'; @@ -488,7 +534,8 @@ */ function print_start_menu_entry_empty($idsel, $classname, $showmode) { - if ($showmode) { + if ($showmode) + { print '<li '.$classname.' id="mainmenutd_'.$idsel.'">'; //print '<div class="tmenuleft tmenusep"></div>'; print '<div class="tmenucenter">'; @@ -511,7 +558,8 @@ { global $conf, $langs; - if ($showmode == 1) { + if ($showmode == 1) + { print '<a class="tmenuimage" tabindex="-1" href="'.$url.'"'.($atarget ? ' target="'.$atarget.'"' : '').'>'; print '<div class="'.$id.' '.$idsel.'"><span class="'.$id.' tmenuimage" id="mainmenuspan_'.$idsel.'"></span></div>'; print '</a>'; @@ -521,7 +569,8 @@ print '</span>'; print '</a>'; } - if ($showmode == 2) { + if ($showmode == 2) + { print '<div class="'.$id.' '.$idsel.' tmenudisabled"><span class="'.$id.'" id="mainmenuspan_'.$idsel.'"></span></div>'; print '<a class="tmenudisabled" id="mainmenua_'.$idsel.'" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'; } @@ -535,7 +584,8 @@ */ function print_end_menu_entry_empty($showmode) { - if ($showmode) { + if ($showmode) + { print '</div></li>'; print "\n"; }