diff --git a/htdocs/includes/menus/barre_left/default.php b/htdocs/includes/menus/barre_left/default.php index 6e1aea80bd1..f8745035081 100644 --- a/htdocs/includes/menus/barre_left/default.php +++ b/htdocs/includes/menus/barre_left/default.php @@ -41,7 +41,8 @@ class MenuLeft { - var $require_top=array(""); // Si doit etre en phase avec un gestionnaire de menu du haut particulier + var $require_top=array(""); // Si doit etre en phase avec un gestionnaire de menu du haut particulier + /** * \brief Constructeur @@ -62,23 +63,34 @@ class MenuLeft { { global $user, $conf, $langs; + $alt=0; for ($i = 0 ; $i < sizeof($this->menu_array) ; $i++) { - if (($i%2==0)) - { - print '
'."\n"; - } - else - { - print '
'."\n"; - } - print ''.$this->menu_array[$i][1].'
'; - - for ($j = 2 ; $j < sizeof($this->menu_array[$i]) - 1 ; $j = $j +2) - { - print ''.$this->menu_array[$i][$j+1].'
'; - } - print '
'; + $alt++; + if ($this->menu_array[$i]['level']==0) { + if (($alt%2==0)) + { + print '
'."\n"; + } + else + { + print '
'."\n"; + } + } + + if ($this->menu_array[$i]['level']==0) { + print ''.$this->menu_array[$i]['titre'].'
'; + } + if ($this->menu_array[$i]['level']==1) { + print ''.$this->menu_array[$i]['titre'].'
'; + } + if ($this->menu_array[$i]['level']==2) { + print '    '.$this->menu_array[$i]['titre'].'
'; + } + + if ($i == (sizeof($this->menu_array)-1) || $this->menu_array[$i+1]['level']==0) { + print '
'; + } } } diff --git a/htdocs/includes/menus/barre_left/eldy.php b/htdocs/includes/menus/barre_left/eldy.php index 8678b81f6ba..65d90884575 100644 --- a/htdocs/includes/menus/barre_left/eldy.php +++ b/htdocs/includes/menus/barre_left/eldy.php @@ -39,7 +39,8 @@ class MenuLeft { - var $require_top=array("eldy"); // Si doit etre en phase avec un gestionnaire de menu du haut particulier + var $require_top=array("eldy"); // Si doit etre en phase avec un gestionnaire de menu du haut particulier + /** * \brief Constructeur @@ -65,23 +66,38 @@ class MenuLeft { $user->getrights(""); $newmenu = new Menu(); - $overwritemenufor=array('home','commercial','accountancy','products','supplier','tools'); + $overwritemenufor=array('home','commercial','accountancy','products','suppliers','tools'); - /** - * On récupère mainmenu qui définit le menu à afficher - */ + // On récupère mainmenu et leftmenu qui définissent le menu à afficher if (isset($_GET["mainmenu"])) { // On sauve en session le menu principal choisi $mainmenu=$_GET["mainmenu"]; $_SESSION["mainmenu"]=$mainmenu; + $_SESSION["leftmenuopened"]=""; } else { // On va le chercher en session si non défini par le lien $mainmenu=$_SESSION["mainmenu"]; } + if (isset($_GET["leftmenu"])) { + // On sauve en session le menu principal choisi + $leftmenu=$_GET["leftmenu"]; + $_SESSION["leftmenu"]=$leftmenu; + if ($_SESSION["leftmenuopened"]==$leftmenu) { + //$leftmenu=""; + $_SESSION["leftmenuopened"]=""; + } + else { + $_SESSION["leftmenuopened"]=$leftmenu; + } + } else { + // On va le chercher en session si non défini par le lien + $leftmenu=$_SESSION["leftmenu"]; + } /** - * On definit newmenu en fonction de mainmenu + * On definit newmenu en fonction de mainmenu et leftmenu + * ------------------------------------------------------ */ if ($mainmenu) { @@ -90,22 +106,35 @@ class MenuLeft { * Menu HOME */ if ($mainmenu == 'home') { - $newmenu->add(DOL_URL_ROOT."/user/index.php", $langs->trans("Users")); + $newmenu->add(DOL_URL_ROOT."/user/index.php?leftmenu=users", $langs->trans("Users")); if($user->admin) { $langs->load("users"); $langs->load("admin"); - $newmenu->add_submenu(DOL_URL_ROOT."/user/fiche.php?action=create", $langs->trans("NewUser")); - $newmenu->add(DOL_URL_ROOT."/admin/index.php?", $langs->trans("Setup")); - $newmenu->add_submenu(DOL_URL_ROOT."/admin/index.php", $langs->trans("GlobalSetup")); - $newmenu->add_submenu(DOL_URL_ROOT."/admin/ihm.php", $langs->trans("GUISetup")); - $newmenu->add_submenu(DOL_URL_ROOT."/admin/dict.php", $langs->trans("DictionnarySetup")); - $newmenu->add_submenu(DOL_URL_ROOT."/admin/modules.php", $langs->trans("Modules")); - $newmenu->add_submenu(DOL_URL_ROOT."/admin/perms.php", $langs->trans("DefaultRights")); - $newmenu->add_submenu(DOL_URL_ROOT."/admin/boxes.php", $langs->trans("Boxes")); - $newmenu->add_submenu(DOL_URL_ROOT."/admin/const.php", $langs->trans("OtherSetup")); - $newmenu->add(DOL_URL_ROOT."/admin/system/?mainmenu=", $langs->trans("System")); + if ($leftmenu=="users") $newmenu->add_submenu(DOL_URL_ROOT."/user/fiche.php?action=create", $langs->trans("NewUser")); + + $newmenu->add(DOL_URL_ROOT."/admin/index.php?leftmenu=setup", $langs->trans("Setup")); + if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/index.php", $langs->trans("GlobalSetup")); + if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/ihm.php", $langs->trans("GUISetup")); + if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/dict.php", $langs->trans("DictionnarySetup")); + if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/modules.php", $langs->trans("Modules")); + if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/perms.php", $langs->trans("DefaultRights")); + if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/boxes.php", $langs->trans("Boxes")); + if ($leftmenu=="setup") $newmenu->add_submenu(DOL_URL_ROOT."/admin/const.php", $langs->trans("OtherSetup")); + + $newmenu->add(DOL_URL_ROOT."/admin/system/index.php?leftmenu=system", $langs->trans("System")); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/about.php", "Dolibarr"); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/constall.php", $langs->trans("AllParameters"),2); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/os.php", $langs->trans("OS")); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/web.php", $langs->trans("WebServer")); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/phpinfo.php", $langs->trans("Php")); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/phpinfo.php?what=conf", $langs->trans("PhpConf"),2); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/phpinfo.php?what=env", $langs->trans("PhpEnv"),2); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/phpinfo.php?what=modules", $langs->trans("PhpModules"),2); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/database.php", $langs->trans("Database")); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/database-tables.php", $langs->trans("Tables"),2); + if ($leftmenu=="system") $newmenu->add_submenu(DOL_URL_ROOT."/admin/system/database-tables-contraintes.php", $langs->trans("Constraints"),2); } } @@ -115,71 +144,62 @@ class MenuLeft { if ($mainmenu == 'commercial') { $langs->load("companies"); - // Clients - $newmenu->add(DOL_URL_ROOT."/comm/clients.php", $langs->trans("Customers")); - if ($user->rights->societe->creer) - { - $newmenu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&type=c", $langs->trans("MenuNewCustomer")); - } - $newmenu->add_submenu(DOL_URL_ROOT."/comm/contact.php?type=c", $langs->trans("Contacts")); - // Prospects - $newmenu->add(DOL_URL_ROOT."/comm/prospect/prospects.php", $langs->trans("Prospects")); + $newmenu->add(DOL_URL_ROOT."/comm/prospect/prospects.php?leftmenu=prospects", $langs->trans("Prospects")); if ($user->rights->societe->creer) { - $newmenu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&type=p", $langs->trans("MenuNewProspect")); + $newmenu->add_submenu(DOL_URL_ROOT."/soc.php?leftmenu=prospects&action=create&type=p", $langs->trans("MenuNewProspect")); } + $newmenu->add_submenu(DOL_URL_ROOT."/comm/contact.php?leftmenu=prospects&type=p", $langs->trans("Contacts")); + + // Clients + $newmenu->add(DOL_URL_ROOT."/comm/clients.php?leftmenu=customers", $langs->trans("Customers")); + if ($user->rights->societe->creer) + { + $newmenu->add_submenu(DOL_URL_ROOT."/soc.php?leftmenu=prospects&action=create&type=c", $langs->trans("MenuNewCustomer")); + } + $newmenu->add_submenu(DOL_URL_ROOT."/comm/contact.php?leftmenu=prospects&type=c", $langs->trans("Contacts")); - $newmenu->add_submenu(DOL_URL_ROOT."/comm/contact.php?type=p", $langs->trans("Contacts")); - - - - $newmenu->add(DOL_URL_ROOT."/comm/action/index.php", $langs->trans("Actions")); - $newmenu->add_submenu(DOL_URL_ROOT."/comm/action/index.php?time=today", $langs->trans("Today")); - $newmenu->add_submenu(DOL_URL_ROOT."/comm/action/rapport/index.php", $langs->trans("Reporting")); + // Actions + $newmenu->add(DOL_URL_ROOT."/comm/action/index.php?leftmenu=actions", $langs->trans("Actions")); + if ($leftmenu=="actions") $newmenu->add_submenu(DOL_URL_ROOT."/comm/action/index.php?time=today", $langs->trans("Today")); + if ($leftmenu=="actions") $newmenu->add_submenu(DOL_URL_ROOT."/comm/action/rapport/index.php", $langs->trans("Reporting")); // Propal if ($conf->propal->enabled && $user->rights->propale->lire) { $langs->load("propal"); - $newmenu->add(DOL_URL_ROOT."/comm/propal.php", $langs->trans("Prop")); - $newmenu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=0", $langs->trans("Drafts")); - $newmenu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=1", $langs->trans("Opened")); - $newmenu->add_submenu(DOL_URL_ROOT."/comm/propal/stats/", $langs->trans("Statistics")); + $newmenu->add(DOL_URL_ROOT."/comm/propal.php?leftmenu=propals", $langs->trans("Prop")); + if ($leftmenu=="propals") $newmenu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=0", $langs->trans("Drafts")); + if ($leftmenu=="propals") $newmenu->add_submenu(DOL_URL_ROOT."/comm/propal.php?viewstatut=1", $langs->trans("Opened")); + if ($leftmenu=="propals") $newmenu->add_submenu(DOL_URL_ROOT."/comm/propal/stats/", $langs->trans("Statistics")); } if ($conf->contrat->enabled) { $langs->load("contracts"); - $newmenu->add(DOL_URL_ROOT."/contrat/index.php", $langs->trans("Contracts")); - $newmenu->add_submenu(DOL_URL_ROOT."/contrat/liste.php", "Liste"); - $newmenu->add_submenu(DOL_URL_ROOT."/contrat/enservice.php", "En service"); + $newmenu->add(DOL_URL_ROOT."/contrat/index.php?leftmenu=contracts", $langs->trans("Contracts")); + if ($leftmenu=="contracts") $newmenu->add_submenu(DOL_URL_ROOT."/contrat/liste.php", "Liste"); + if ($leftmenu=="contracts") $newmenu->add_submenu(DOL_URL_ROOT."/contrat/enservice.php", "En service"); } if ($conf->commande->enabled ) { $langs->load("orders"); - $newmenu->add(DOL_URL_ROOT."/commande/index.php", $langs->trans("Orders")); - $newmenu->add_submenu(DOL_URL_ROOT."/commande/liste.php", $langs->trans("List")); - if ($conf->expedition->enabled) { - $newmenu->add(DOL_URL_ROOT."/expedition/", "Expeditions"); - } - $newmenu->add_submenu(DOL_URL_ROOT."/commande/stats/", $langs->trans("Statistics")); + $newmenu->add(DOL_URL_ROOT."/commande/index.php?leftmenu=orders", $langs->trans("Orders")); + if ($leftmenu=="orders") $newmenu->add_submenu(DOL_URL_ROOT."/commande/liste.php", $langs->trans("List")); + if ($conf->expedition->enabled) { + if ($leftmenu=="orders") $newmenu->add(DOL_URL_ROOT."/expedition/", "Expeditions"); + } + if ($leftmenu=="orders") $newmenu->add_submenu(DOL_URL_ROOT."/commande/stats/", $langs->trans("Statistics")); } if ($conf->fichinter->enabled ) { - $newmenu->add(DOL_URL_ROOT."/fichinter/index.php", "Fiches d'intervention"); + $newmenu->add(DOL_URL_ROOT."/fichinter/index.php?leftmenu=ficheinter", "Fiches d'intervention"); } - if ($conf->projet->enabled ) - { - $langs->load("projects"); - $newmenu->add(DOL_URL_ROOT."/projet/index.php", $langs->trans("Projects")); - } - - } @@ -190,112 +210,128 @@ class MenuLeft { $langs->load("companies"); // Fournisseurs - if ($conf->fournisseur->enabled) + if ($conf->societe->enabled && $conf->fournisseur->enabled) { $langs->load("suppliers"); - $newmenu->add(DOL_URL_ROOT."/fourn/index.php", $langs->trans("Suppliers")); + $newmenu->add(DOL_URL_ROOT."/fourn/index.php?leftmenu=suppliers", $langs->trans("Suppliers")); // Sécurité accés client if ($user->societe_id == 0) { - $newmenu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&type=f",$langs->trans("NewSupplier")); + $newmenu->add_submenu(DOL_URL_ROOT."/soc.php?leftmenu=suppliers&action=create&type=f",$langs->trans("NewSupplier"),1); } - } - - if ($conf->societe->enabled) - { - $newmenu->add_submenu(DOL_URL_ROOT."/fourn/contact.php",$langs->trans("Contacts")); + if ($conf->societe->enabled) + { + $newmenu->add_submenu(DOL_URL_ROOT."/fourn/contact.php?leftmenu=suppliers",$langs->trans("Contacts")); + } + } if ($conf->facture->enabled) { $langs->load("bills"); - $newmenu->add(DOL_URL_ROOT."/fourn/facture/index.php", $langs->trans("BillsSuppliers")); + $newmenu->add(DOL_URL_ROOT."/fourn/facture/index.php?leftmenu=suppliers_bills", $langs->trans("BillsSuppliers"),1); if ($user->societe_id == 0) { - $newmenu->add_submenu(DOL_URL_ROOT."/fourn/facture/fiche.php?action=create",$langs->trans("NewBill")); + if ($leftmenu=="suppliers_bills") $newmenu->add_submenu(DOL_URL_ROOT."/fourn/facture/fiche.php?action=create",$langs->trans("NewBill"),2); } - $newmenu->add_submenu(DOL_URL_ROOT."/fourn/facture/paiement.php", $langs->trans("Payments")); + if ($leftmenu=="suppliers_bills") $newmenu->add_submenu(DOL_URL_ROOT."/fourn/facture/paiement.php", $langs->trans("Payments"),2); } // Clients - $newmenu->add(DOL_URL_ROOT."/compta/clients.php", $langs->trans("Customers")); - if ($user->rights->societe->creer) - { - $newmenu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&type=c", $langs->trans("MenuNewCustomer")); + if ($conf->societe->enabled) { + $newmenu->add(DOL_URL_ROOT."/compta/clients.php?leftmenu=customers", $langs->trans("Customers")); + if ($user->rights->societe->creer) + { + $newmenu->add_submenu(DOL_URL_ROOT."/soc.php?leftmenu=customers&action=create&type=c", $langs->trans("MenuNewCustomer")); + } + $newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=customers&type=c", $langs->trans("Contacts")); } - $newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?type=c", $langs->trans("Contacts")); - + if ($conf->facture->enabled) { - $langs->load("bills"); - $newmenu->add(DOL_URL_ROOT."/compta/facture.php",$langs->trans("BillsCustomers")); - $newmenu->add_submenu(DOL_URL_ROOT."/compta/clients.php?action=facturer",$langs->trans("NewBill")); + $langs->load("customers_bills"); + $newmenu->add(DOL_URL_ROOT."/compta/facture.php?leftmenu=customers_bills",$langs->trans("BillsCustomers"),1); + if ($leftmenu=="customers_bills") $newmenu->add_submenu(DOL_URL_ROOT."/compta/facture/impayees.php",$langs->trans("Unpayed"),2); + if ($leftmenu=="customers_bills") $newmenu->add_submenu(DOL_URL_ROOT."/compta/clients.php?action=facturer",$langs->trans("NewBill"),2); if (! defined(FACTURE_DISABLE_RECUR) || ! FACTURE_DISABLE_RECUR) { - $newmenu->add_submenu(DOL_URL_ROOT."/compta/facture/fiche-rec.php","Récurrentes"); + if ($leftmenu=="customers_bills") $newmenu->add_submenu(DOL_URL_ROOT."/compta/facture/fiche-rec.php","Récurrentes",2); } - $newmenu->add_submenu(DOL_URL_ROOT."/compta/paiement/liste.php",$langs->trans("Payments")); - $newmenu->add_submenu(DOL_URL_ROOT."/compta/facture/stats/", $langs->trans("Statistics")); + if ($leftmenu=="customers_bills") $newmenu->add_submenu(DOL_URL_ROOT."/compta/paiement/liste.php",$langs->trans("Payments"),2); + if ($leftmenu=="customers_bills") $newmenu->add_submenu(DOL_URL_ROOT."/compta/facture/stats/", $langs->trans("Statistics"),2); } if ($conf->don->enabled) { $langs->load("donations"); - $newmenu->add(DOL_URL_ROOT."/compta/dons/",$langs->trans("Donations")); + $newmenu->add(DOL_URL_ROOT."/compta/dons/index.php?leftmenu=donations",$langs->trans("Donations")); } if ($conf->deplacement->enabled) { - $newmenu->add(DOL_URL_ROOT."/compta/deplacement/", "Déplacement"); + $newmenu->add(DOL_URL_ROOT."/compta/deplacement/index.php?leftmenu=deplacement", "Déplacement"); } if ($conf->compta->enabled) { - $newmenu->add(DOL_URL_ROOT."/compta/charges/index.php","Charges"); - $newmenu->add_submenu(DOL_URL_ROOT."/compta/sociales/index.php","Prest. Sociales"); + $newmenu->add(DOL_URL_ROOT."/compta/charges/index.php?leftmenu=charges","Charges"); + if ($leftmenu=="charges") $newmenu->add_submenu(DOL_URL_ROOT."/compta/sociales/index.php","Prest. Sociales"); } if ($conf->compta->enabled && $conf->compta->tva && $user->societe_id == 0) { - $newmenu->add(DOL_URL_ROOT."/compta/tva/index.php",$langs->trans("VAT")); - $newmenu->add_submenu(DOL_URL_ROOT."/compta/tva/reglement.php","Réglements"); - $newmenu->add_submenu(DOL_URL_ROOT."/compta/tva/fiche.php?action=create","Nouveau réglement"); + $newmenu->add(DOL_URL_ROOT."/compta/tva/index.php?leftmenu=vat",$langs->trans("VAT")); + if ($leftmenu=="vat") $newmenu->add_submenu(DOL_URL_ROOT."/compta/tva/reglement.php","Réglements",1); + if ($leftmenu=="vat") $newmenu->add_submenu(DOL_URL_ROOT."/compta/tva/fiche.php?action=create","Nouveau réglement",1); } - $newmenu->add(DOL_URL_ROOT."/compta/ventilation/",$langs->trans("Ventilations")); - $newmenu->add_submenu(DOL_URL_ROOT."/compta/ventilation/liste.php",$langs->trans("A ventiler")); - $newmenu->add_submenu(DOL_URL_ROOT."/compta/ventilation/lignes.php",$langs->trans("Ventilées")); - if ($user->rights->compta->ventilation->param) { - $newmenu->add_submenu(DOL_URL_ROOT."/compta/param/",$langs->trans("Param")); + if ($conf->compta->enabled) { + $newmenu->add(DOL_URL_ROOT."/compta/ventilation/index.php?leftmenu=ventil",$langs->trans("Ventilations")); + if ($leftmenu=="ventil") $newmenu->add_submenu(DOL_URL_ROOT."/compta/ventilation/liste.php",$langs->trans("A ventiler"),1); + if ($leftmenu=="ventil") $newmenu->add_submenu(DOL_URL_ROOT."/compta/ventilation/lignes.php",$langs->trans("Ventilées"),1); + if ($user->rights->compta->ventilation->param) { + if ($leftmenu=="ventil") $newmenu->add_submenu(DOL_URL_ROOT."/compta/param/",$langs->trans("Param"),1); + } } - + // Bank-Caisse if ($conf->banque->enabled && $user->rights->banque->lire) { $langs->load("banks"); - $newmenu->add(DOL_URL_ROOT."/compta/bank/index.php?mainmenu=banque",$langs->trans("Bank")); + $newmenu->add(DOL_URL_ROOT."/compta/bank/index.php?leftmenu=bank&mainmenu=bank",$langs->trans("Bank")); + + } - if ($conf->caisse->enabled) - { - $newmenu->add(DOL_URL_ROOT."/compta/caisse/index.php?mainmenu=cash",$langs->trans("Caisse")); - } - - // Bilan, résultats - $newmenu->add(DOL_URL_ROOT."/compta/stats/index.php?mainmenu=ca","CA / Résultats"); - - if ($conf->prelevement->enabled) { - $newmenu->add(DOL_URL_ROOT."/compta/prelevement/index.php","Prélèvements"); - $newmenu->add_submenu(DOL_URL_ROOT."/compta/prelevement/bons.php","Bons"); - $newmenu->add_submenu(DOL_URL_ROOT."/compta/prelevement/demandes.php","Demandes"); + $newmenu->add(DOL_URL_ROOT."/compta/prelevement/index.php?leftmenu=withdraw",$langs->trans("Withdrawls")); + if ($leftmenu=="withdraw") $newmenu->add_submenu(DOL_URL_ROOT."/compta/prelevement/bons.php","Bons"); + if ($leftmenu=="withdraw") $newmenu->add_submenu(DOL_URL_ROOT."/compta/prelevement/demandes.php","Demandes"); } + + // Bilan, résultats + $newmenu->add(DOL_URL_ROOT."/compta/stats/index.php?leftmenu=ca&mainmenu=accountancy","Résultats / CA"); + if ($leftmenu==ca) $newmenu->add(DOL_URL_ROOT."/compta/resultat/index.php?leftmenu=ca","Résultat / Exercice",1); + if ($leftmenu==ca) $newmenu->add_submenu(DOL_URL_ROOT."/compta/resultat/clientfourn.php?leftmenu=ca","Détail client/fourn.",2); + if ($leftmenu==ca) $newmenu->add_submenu(DOL_URL_ROOT."/compta/resultat/compteres.php?leftmenu=ca","Compte de résultat",2); + if ($leftmenu==ca) $newmenu->add_submenu(DOL_URL_ROOT."/compta/resultat/bilan.php?leftmenu=ca","Bilan",2); + + if ($leftmenu==ca) $newmenu->add(DOL_URL_ROOT."/compta/stats/index.php?leftmenu=ca","Chiffre d'affaire",1); + + if ($leftmenu==ca) $newmenu->add_submenu(DOL_URL_ROOT."/compta/stats/cumul.php?leftmenu=ca","Cumulé",2); + if ($conf->propal->enabled) { + if ($leftmenu==ca) $newmenu->add_submenu(DOL_URL_ROOT."/compta/stats/prev.php?leftmenu=ca","Prévisionnel",2); + if ($leftmenu==ca) $newmenu->add_submenu(DOL_URL_ROOT."/compta/stats/comp.php?leftmenu=ca","Transformé",2); + } + if ($leftmenu==ca) $newmenu->add_submenu(DOL_URL_ROOT."/compta/stats/exercices.php?leftmenu=ca",$langs->trans("Evolution"),2); + if ($leftmenu==ca) $newmenu->add_submenu(DOL_URL_ROOT."/compta/stats/casoc.php?leftmenu=ca",$langs->trans("ByCompanies"),2); + if ($leftmenu==ca) $newmenu->add_submenu(DOL_URL_ROOT."/compta/stats/cabyuser.php?leftmenu=ca",$langs->trans("ByUsers"),2); } @@ -334,7 +370,7 @@ class MenuLeft { if ($conf->stock->enabled) { $newmenu->add(DOL_URL_ROOT."/product/stock/", $langs->trans("Stock")); - $newmenu->add_submenu(DOL_URL_ROOT."/product/stock/fiche.php?action=create", "Nouvel entrepôt"); + $newmenu->add_submenu(DOL_URL_ROOT."/product/stock/fiche.php?action=create", $langs->trans("NewWarehouse")); $newmenu->add_submenu(DOL_URL_ROOT."/product/stock/mouvement.php", "Mouvements"); } } @@ -343,23 +379,24 @@ class MenuLeft { /* * Menu FOURNISSEURS */ - if ($mainmenu == 'supplier') { + if ($mainmenu == 'suppliers') { + + $langs->load("suppliers"); - if ($conf->fournisseur->enabled) + if ($conf->societe->enabled && $conf->fournisseur->enabled) { - $newmenu->add(DOL_URL_ROOT."/fourn/index.php", $langs->trans("Suppliers")); + $newmenu->add(DOL_URL_ROOT."/fourn/index.php?leftmenu=suppliers", $langs->trans("Suppliers")); // Sécurité accés client if ($user->societe_id == 0) { - $newmenu->add_submenu(DOL_URL_ROOT."/soc.php?action=create&type=f",$langs->trans("NewSupplier")); + $newmenu->add_submenu(DOL_URL_ROOT."/soc.php??leftmenu=suppliers&action=create&type=f",$langs->trans("NewSupplier"),1); } - } - - if ($conf->societe->enabled) - { - $newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?type=f",$langs->trans("Contacts")); - } + if ($conf->societe->enabled) + { + $newmenu->add_submenu(DOL_URL_ROOT."/contact/index.php?leftmenu=suppliers&type=f",$langs->trans("Contacts")); + } + } if ($conf->facture->enabled) { @@ -377,8 +414,8 @@ class MenuLeft { if ($conf->commande->enabled) { $langs->load("orders"); - $newmenu->add(DOL_URL_ROOT."/fourn/commande/",$langs->trans("Orders")); - $newmenu->add_submenu(DOL_URL_ROOT."/fourn/commande/liste.php", $langs->trans("List")); + $newmenu->add(DOL_URL_ROOT."/fourn/commande/index.php?leftmenu=suppliers",$langs->trans("Orders")); + $newmenu->add_submenu(DOL_URL_ROOT."/fourn/commande/liste.php?leftmenu=suppliers", $langs->trans("List")); } } @@ -388,13 +425,23 @@ class MenuLeft { * Menu OUTILS */ if ($mainmenu == 'tools') { + + $newmenu->add(DOL_URL_ROOT."/comm/mailing/index.php?leftmenu=mailing", $langs->trans("Mailings")); + if($user->admin) { $langs->load("admin"); - $newmenu->add(DOL_URL_ROOT."/comm/mailing/index.php?mainmenu=tools", $langs->trans("Mailings")); - $newmenu->add_submenu(DOL_URL_ROOT."/comm/mailing/fiche.php?action=create", $langs->trans("NewMailing")); + $langs->load("mails"); + $newmenu->add_submenu(DOL_URL_ROOT."/comm/mailing/fiche.php?leftmenu=mailing&action=create", $langs->trans("NewMailing")); } + + if ($conf->projet->enabled ) + { + $langs->load("projects"); + $newmenu->add(DOL_URL_ROOT."/projet/index.php?leftmenu=projects", $langs->trans("Projects")); + } + } @@ -402,6 +449,8 @@ class MenuLeft { if ($mainmenu && ! in_array($mainmenu,$overwritemenufor)) { $mainmenu=""; } } + + /** * Si on est sur un cas géré de surcharge du menu, on ecrase celui par defaut @@ -411,23 +460,34 @@ class MenuLeft { } + $alt=0; for ($i = 0 ; $i < sizeof($this->menu_array) ; $i++) { - if (($i%2==0)) - { - print '
'."\n"; - } - else - { - print '
'."\n"; - } - print ''.$this->menu_array[$i][1].'
'; - - for ($j = 2 ; $j < sizeof($this->menu_array[$i]) - 1 ; $j = $j +2) - { - print ''.$this->menu_array[$i][$j+1].'
'; - } - print '
'; + $alt++; + if ($this->menu_array[$i]['level']==0) { + if (($alt%2==0)) + { + print '
'."\n"; + } + else + { + print '
'."\n"; + } + } + + if ($this->menu_array[$i]['level']==0) { + print ''.$this->menu_array[$i]['titre'].'
'; + } + if ($this->menu_array[$i]['level']==1) { + print ''.$this->menu_array[$i]['titre'].'
'; + } + if ($this->menu_array[$i]['level']==2) { + print '    '.$this->menu_array[$i]['titre'].'
'; + } + + if ($i == (sizeof($this->menu_array)-1) || $this->menu_array[$i+1]['level']==0) { + print '
'; + } } diff --git a/htdocs/includes/menus/barre_top/default.php b/htdocs/includes/menus/barre_top/default.php index 7308877e4a7..e4503933391 100644 --- a/htdocs/includes/menus/barre_top/default.php +++ b/htdocs/includes/menus/barre_top/default.php @@ -41,6 +41,8 @@ class MenuTop { var $require_left=array(); // Si doit etre en phase avec un gestionnaire de menu gauche particulier + var $showhome=true; // Faut-il afficher le menu Accueil par le main.inc.php + /** * \brief Constructeur @@ -66,7 +68,7 @@ class MenuTop { $langs->load("members"); $class=""; - if ($_SESSION["topmenu"] && $_SESSION["topmenu"] == "adherent") + if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "adherent") { $class='class="tmenu" id="sel"'; } @@ -87,7 +89,7 @@ class MenuTop { $langs->load("commercial"); $class=""; - if ($_SESSION["topmenu"] && $_SESSION["topmenu"] == "commercial") + if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "commercial") { $class='class="tmenu" id="sel"'; } @@ -109,7 +111,7 @@ class MenuTop { $langs->load("compta"); $class=""; - if ($_SESSION["topmenu"] && $_SESSION["topmenu"] == "compta") + if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "compta") { $class='class="tmenu" id="sel"'; } @@ -131,7 +133,7 @@ class MenuTop { $langs->load("products"); $class=""; - if ($_SESSION["topmenu"] && $_SESSION["topmenu"] == "product") + if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "product") { $class='class="tmenu" id="sel"'; } @@ -159,7 +161,7 @@ class MenuTop { $langs->load("suppliers"); $class=""; - if ($_SESSION["topmenu"] && $_SESSION["topmenu"] == "supplier") + if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "supplier") { $class='class="tmenu" id="sel"'; } @@ -181,7 +183,7 @@ class MenuTop { $langs->load("other"); $class=""; - if ($_SESSION["topmenu"] && $_SESSION["topmenu"] == "webcalendar") + if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "webcalendar") { $class='class="tmenu" id="sel"'; } diff --git a/htdocs/includes/menus/barre_top/eldy.php b/htdocs/includes/menus/barre_top/eldy.php index 100093be975..55531ada489 100644 --- a/htdocs/includes/menus/barre_top/eldy.php +++ b/htdocs/includes/menus/barre_top/eldy.php @@ -39,6 +39,8 @@ class MenuTop { var $require_left=array("eldy"); // Si doit etre en phase avec un gestionnaire de menu gauche particulier + var $showhome=false; // Faut-il afficher le menu Accueil par le main.inc.php + /** * \brief Constructeur @@ -55,19 +57,45 @@ class MenuTop { */ function showmenu() { - - global $conf,$langs; + global $user, $conf, $langs; + session_start(); + + $user->getrights(""); + + // On récupère mainmenu + if (isset($_GET["mainmenu"])) { + // On sauve en session le menu principal choisi + $mainmenu=$_GET["mainmenu"]; + $_SESSION["mainmenu"]=$mainmenu; + $_SESSION["leftmenuopened"]=""; + } else { + // On va le chercher en session si non défini par le lien + $mainmenu=$_SESSION["mainmenu"]; + } + + + // Home + $class=""; + if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "home") + { + $class='class="tmenu" id="sel"'; + } + else + { + $class = 'class="tmenu"'; + } + + print ''.$langs->trans("Home").''; + + + // Members if ($conf->adherent->enabled) { $langs->load("members"); $class=""; - if ($_SESSION["topmenu"] && $_SESSION["topmenu"] == "adherent") - { - $class='class="tmenu" id="sel"'; - } - elseif (ereg("^".DOL_URL_ROOT."\/adherents\/",$_SERVER["PHP_SELF"])) + if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "adherent") { $class='class="tmenu" id="sel"'; } @@ -76,51 +104,7 @@ class MenuTop { $class = 'class="tmenu"'; } - print ''.$langs->trans("Members").''; - } - - if ($conf->commercial->enabled) - { - $langs->load("commercial"); - - $class=""; - if ($_SESSION["topmenu"] && $_SESSION["topmenu"] == "commercial") - { - $class='class="tmenu" id="sel"'; - } - elseif (ereg("^".DOL_URL_ROOT."\/comm\/",$_SERVER["PHP_SELF"]) && ! ereg("^".DOL_URL_ROOT."\/comm\/mailing\/",$_SERVER["PHP_SELF"])) - { - $class='class="tmenu" id="sel"'; - } - else - { - $class = 'class="tmenu"'; - } - - print ''.$langs->trans("Commercial").''; - - } - - if ($conf->compta->enabled || $conf->banque->enabled || $conf->caisse->enabled) - { - $langs->load("compta"); - - $class=""; - if ($_SESSION["topmenu"] && $_SESSION["topmenu"] == "compta") - { - $class='class="tmenu" id="sel"'; - } - elseif (ereg("^".DOL_URL_ROOT."\/compta\/",$_SERVER["PHP_SELF"])) - { - $class='class="tmenu" id="sel"'; - } - else - { - $class = 'class="tmenu"'; - } - - print ''.$langs->trans("Accountancy")."/".$langs->trans("Treasury").''; - + print ''.$langs->trans("Members").''; } if ($conf->produit->enabled || $conf->service->enabled) @@ -128,11 +112,7 @@ class MenuTop { $langs->load("products"); $class=""; - if ($_SESSION["topmenu"] && $_SESSION["topmenu"] == "product") - { - $class='class="tmenu" id="sel"'; - } - elseif (ereg("^".DOL_URL_ROOT."\/product\/",$_SERVER["PHP_SELF"])) + if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "products") { $class='class="tmenu" id="sel"'; } @@ -145,22 +125,16 @@ class MenuTop { if ($conf->produit->enabled && $conf->service->enabled) { $chaine.="/"; } if ($conf->service->enabled) { $chaine.="Services"; } - - print ''.$chaine.''; + print ''.$chaine.''; } - - + if ($conf->fournisseur->enabled) { $langs->load("suppliers"); $class=""; - if ($_SESSION["topmenu"] && $_SESSION["topmenu"] == "supplier") - { - $class='class="tmenu" id="sel"'; - } - elseif (ereg("^".DOL_URL_ROOT."\/fourn\/",$_SERVER["PHP_SELF"])) + if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "suppliers") { $class='class="tmenu" id="sel"'; } @@ -169,20 +143,71 @@ class MenuTop { $class = 'class="tmenu"'; } - print ''.$langs->trans("Suppliers").''; + print ''.$langs->trans("Suppliers").''; + } + + if ($conf->commercial->enabled) + { + $langs->load("commercial"); + + $class=""; + if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "commercial") + { + $class='class="tmenu" id="sel"'; + } + else + { + $class = 'class="tmenu"'; + } + + print ''.$langs->trans("Commercial").''; + } + if ($conf->compta->enabled || $conf->banque->enabled || $conf->caisse->enabled) + { + $langs->load("compta"); + + $class=""; + if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "accountancy") + { + $class='class="tmenu" id="sel"'; + } + else + { + $class = 'class="tmenu"'; + } + + print ''.$langs->trans("Accountancy")."/".$langs->trans("Treasury").''; + + } + + if (1 == 1) { + $langs->load("other"); + + $class=""; + if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "tools") + { + $class='class="tmenu" id="sel"'; + } + else + { + $class = 'class="tmenu"'; + } + + print ''.$langs->trans("Tools").''; + } if ($conf->webcal->enabled) { $langs->load("other"); $class=""; - if ($_SESSION["topmenu"] && $_SESSION["topmenu"] == "webcalendar") + if ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "webcalendar") { $class='class="tmenu" id="sel"'; } - elseif (ereg("^".DOL_URL_ROOT."\/projet\/",$_SERVER["PHP_SELF"]) || ereg("^".DOL_URL_ROOT."\/webcalendar\/",$_SERVER["PHP_SELF"])) + elseif (ereg("^".DOL_URL_ROOT."\/projet\/webcal",$_SERVER["PHP_SELF"]) || ereg("^".DOL_URL_ROOT."\/webcalendar\/",$_SERVER["PHP_SELF"])) { $class='class="tmenu" id="sel"'; } @@ -191,28 +216,9 @@ class MenuTop { $class = 'class="tmenu"'; } - print ''.$langs->trans("Calendar").''; + print ''.$langs->trans("Calendar").''; }; - - - $langs->load("other"); - - $class=""; - if ($_SESSION["topmenu"] && $_SESSION["topmenu"] == "tools") - { - $class='class="tmenu" id="sel"'; - } - elseif (ereg("^".DOL_URL_ROOT."\/comm\/mailing\/",$_SERVER["PHP_SELF"]) || ereg("^".DOL_URL_ROOT."\/comm\/mailing\/",$_SERVER["PHP_SELF"])) - { - $class='class="tmenu" id="sel"'; - } - else - { - $class = 'class="tmenu"'; - } - - print ''.$langs->trans("Tools").''; - + } } diff --git a/htdocs/includes/menus/barre_top/esprit.php b/htdocs/includes/menus/barre_top/esprit.php index a6aa7ca6dff..d7b4c354968 100644 --- a/htdocs/includes/menus/barre_top/esprit.php +++ b/htdocs/includes/menus/barre_top/esprit.php @@ -40,6 +40,8 @@ class MenuTop { var $require_left=array(); // Si doit etre en phase avec un gestionnaire de menu gauche particulier + var $showhome=true; // Faut-il afficher le menu Accueil par le main.inc.php + /** * \brief Constructeur @@ -56,7 +58,6 @@ class MenuTop { */ function showmenu() { - global $conf,$langs; $langs->load("commercial"); $langs->load("other"); @@ -65,7 +66,6 @@ class MenuTop { print ''.$langs->trans("Customers").''; print ''.$langs->trans("Criticals").''; print ''.$langs->trans("Categories").''; - } } diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index ac18fc77f15..317ee6bea45 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -183,18 +183,15 @@ function top_menu($head, $title="", $target="") */ print '
'."\n"; - // Entrée Home/Accueil du menu - $id=""; - if ($_SESSION["topmenu"] && $_SESSION["topmenu"] == "accueil") { $id="sel"; } - elseif (ereg("^".DOL_URL_ROOT."\/[^\\\/]+$",$_SERVER["PHP_SELF"]) || ereg("^".DOL_URL_ROOT."\/user\/",$_SERVER["PHP_SELF"]) || ereg("^".DOL_URL_ROOT."\/admin\/",$_SERVER["PHP_SELF"])) { $id="sel"; } - print ''.$langs->trans("Home").''; - - // Autres entrées du menu par le gestionnaire require_once(DOL_DOCUMENT_ROOT ."/includes/menus/barre_top/".$conf->top_menu); $menutop = new MenuTop($db); + if (! isset($menutop->showhome) || $menutop->showhome) { // Entrée Home/Accueil du menu + $id=""; + if ($_GET["mainmenu"] == "home" || ($_SESSION["mainmenu"] && $_SESSION["mainmenu"] == "home")) { $id="sel"; } + print ''.$langs->trans("Home").''; + } $menutop->showmenu(); - // Lien sur fiche du login print '' ; diff --git a/htdocs/menu.class.php b/htdocs/menu.class.php index 8603922dd3d..04f2f4ac18b 100644 --- a/htdocs/menu.class.php +++ b/htdocs/menu.class.php @@ -1,5 +1,6 @@ + * Copyright (C) 2005 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,46 +21,62 @@ * */ -/*! - \file htdocs/menu.class.php - \brief Fichier de la classe de gestion du menu gauche - \version $Revision$ +/** \file htdocs/menu.class.php + \brief Fichier de la classe de gestion du menu gauche + \version $Revision$ */ -/*! - \class Menu - \brief Classe de gestion du menu gauche +/** + \class Menu + \brief Classe de gestion du menu gauche */ class Menu { - var $liste; - function Menu() { - $this->liste = array(); - } - - function clear() { - $this->liste = array(); - } + var $liste; - function add($url, $titre) { + /** + * \brief Constructeur classe menu + */ + function Menu() + { + $this->liste = array(); + } - $i = sizeof($this->liste); + /** + * \brief Vide l'objet menu de ces entrées + */ + function clear() + { + $this->liste = array(); + } - $this->liste[$i][0] = $url; - $this->liste[$i][1] = $titre; + /** + * \brief Ajoute une entrée de menu + * \param url Url a suivre sur le clic + * \param titre Libelle menu à afficher + * \level niveau Niveau du menu à ajouter + */ + function add($url, $titre, $level=0) + { + $i = sizeof($this->liste); + $this->liste[$i]['url'] = $url; + $this->liste[$i]['titre'] = $titre; + $this->liste[$i]['level'] = $level; + } - } - - function add_submenu($url, $titre) { - - $i = sizeof($this->liste) - 1; - $j = sizeof($this->liste[$i]); - - $this->liste[$i][$j] = $url; - $this->liste[$i][$j+1] = $titre; - } + /** + * \brief Ajoute une entrée de menu de niveau inférieur + * \param url Url a suivre sur le clic + * \param titre Libelle menu à afficher + * \level niveau Niveau du menu à ajouter + */ + function add_submenu($url, $titre, $level=1) + { + $i = sizeof($this->liste) - 1; + $this->add($url,$titre,$level); + } }