Sistema de menús

= El sistema de menús Dolibarr =

Existen en Dolibarr 2 sistemas de menú. El superior y el izquierdo, que pueden ser dependientes el uno del otro o no. (así pués uno puede imaginarse fácilmente un gestor de menús superior que gestionará el menú con todos las entradas de los submenús mediante menús desplegables y nada en el menú de la izquierda). Por lo que llamaremos a estos dos sistemas: "menú izquierdo" y "menú superior".

Es posible desarrollar su propio gestor de menús (izquierdo y/o superior), que reemplazaría completamente el menú por defecto. Usted decide como guardar su menú (en la base de datos, tal y como lo hace el gestor de menús auguria, centralizado en un fichero, como el gestor de menús eldy, ...). Como puede ver, puede ofrecer un gestor de menús con el comportamiento que usted necesite y la tecnología que desee...

= Cambiar el sistema de menús =

Cambiar el sistema de menús es posible a través de la página Configuración - Interface. Tomemos, por ejemplo, los gestores de menú "eldybackoffice", suministrado como estándar (Activar el gestor de menú izquierdo eldybackoffice al mismo tiempo que el gestor de menú superior eldybackoffice, los 2 están diseñados para trabajar juntos). Estos gestores de menú (izquierdo y superior) son totalmente operativos y ofrecen diversas alternativas de menú.

Y si no le convence, nada le impide que realice su propio desarrollo. Consulte el siguiente apartado...

= Desarrollar su propio sistema de menús =

El propósito de este artículo es describir cómo crear un nuevo sistema de menús en su totalidad (remplazando la totalidad de las entradas de menús, desbarajustando completamente el concepto de navegación).

No se trata sólo de añadir entradas de menús. Si ese no es el caso y sólo quiere saber cómo añadir entradas de menú en un gestor de menús existente para, por ejemplo, el desarrollo de una extensión o un nuevo módulo, mejor vea la página Desarrollo de un módulo.

Si desea remplazar en su totalidad un sistema de menús con el suyo, lo más simple es tomar como ejemplo el gestor de menú "eldy_backoffice".

Para desarrollar su sistema de menú superior
Debe $user contiene las información relacionada con el usuario usuario. $conf contiene la información relacionada con la configuración (módulos activos, permisos activos, etc...) $langs contie la información relacionada con el idioma activo.
 * 1) Copiar el archivo htdocs/core/menus/standard/eldy_backoffice.php bajo otro nombre, como por ejemplo: htdocs/core/menus/standard/mimenu.php
 * 2) Editar seguidamente el fichero mimenu.php. La función showmenu de la clase MenuTop es la función llamada por Dolibarr para generar una página para mostrar este menú superior. Podemos crear el código que queramos, esta función no modifica ninguna variable exterior, teniendo únicamente la funcialidad de mostrar por "impresión" el menú que queramos ver. Podemos también recuperar el menú a mostrar desde un fichero de configuración o una base de datos, y personalizarlo en relación al entorno. El entorno Dolibarr se guarda en los 3 objetos globales siguientes: $user, $conf, $langs.

Ejemplo de función showmenu del fichero htdocs/core/menus/standard/mimenu.php ';   }

Para desarrollar su sistema de menú izquierdo
El principio es igualmente simple.
 * 1) Seguidamente modificar la función showmenu de MenuLeft para construtir su menú izquierdo. Si desea visualizar el menú o simplemente modificarlo ligeramente sin llegar a recrearlo completamente, simplemente recorra el contenido de la colección $menu->liste. Si desea mostrar un menú completamente diferente y controlado totalmente por usted, deberá crear un objeto $newmenu=new Menu en la función showmenu y utilizar los métodos $newmenu->add y $newmenu->add_submenu para definir el listado de entradaas del menú izquierdo a mostrar. Al final del código, mostraremos por impresión el contenido de la colección $newmenu->liste (que acaba de ser construida) en lugar de $menu->liste.

Ejemplo de fichero htdocs/core/menus/standard/mimenu.php

= Forzar el uso de su gestor de menú =

También puede forzar el uso de su gestor de menú en la creación de un módulo. Para ello, simplemente hay que añadir las siguientes 4 constantes en la tabla $this->const de su descriptor del módulo (Ver la página Desarrollo de un módulo). Cuando se active el módulo, se utilizará su gestor de menú, cualquiera que sea la configuración.