Referencias:
Este archivo permite gestionar los elementos del menú de Magento (<menu></menu>) y el control de acceso a ellos por parte de los usuarios (<acl></acl>). El acceso a los elementos por parte de los usuarios se hace según roles que se gestionan en Panel > System > Permissions > Roles
Ejemplo:
<?xml version=”1.0” ?> <config> <menu> <item menu translate=”title” module=”[module_name]”> <title>My Custom Menu Item</title> <sort_order>300</sort_order> <children> <!—child items go here <subitem translate=”title” module=”[module_name]”> <title>Subitem</title> <sort_order>10</sort_order> <action>adminhtml/mycustom_controller/</action> </subitem> </children> </item> </menu> <acl> <resources> <admin> <children> <item translate=”title” module=”[module_name]”> <title>My Custom Menu Item</title> <sort_order>300</sort_order> <children> <!—child items go here <subitem translate=”title” module=”[module_name]”> <title>Subitem</title> <sort_order>10</sort_order> </subitem> </children> </item> </children> </admin> </resources> </acl> </config>
- menu – permite añadir elementos al menú de navegación
- item – identificador del elemento a añadir al menú, debe ser un identificador único.
- module – específica el módulo desde el que se obtendrán las traducciones.
- translate – específica los nodos hijo que serán traducibles (si existen multiples valores se separan por comas)
- Hijos del nodo:
- title – es el texto que será mostrado en el renderizado
- sort_order – orden del elemento dentro del menú
- action – determina el route del controlador al que se quiere enlazar el elemento.
- children – determina elementos del menú hijos al que se está definiendo (submenú). A su vez, cualquier nodo de children, como <subitem> tendrá las mimas propiedades que ítem.
** action y children no coexisten, un elemento del menú o tiene un action o tiene children - resource – permite definir un resource ACL distinto al generado por el resource general para controlar el acceso. El resource general en un menú con path “menu_item1/submenu_item1” generá un control de acceso “admin/menu_item1/submenu_item1”.
- disabled – valor booleano que indica si un elemento se oculta o no (1 se oculta, 0 se muestra). Si el valor no se define el elemento es visible. Puede ser utilizado para ocultar elementos del menú si se define dentro del mismo path que el elemento.
- depends – este nodo se utiliza para ocultar el elemento cuando este desactivado un módulo o cuando el valor de un campo de la configuración es 0.
- module – define el nombre del módulo de la dependencia (Ej: Mage_Customer). Si el módulo no se carga el elemento del menú no será mostrado.
<depends> <module>Mage_Customer</module> </depends>
- config – define el config_path del field de la configuración. Si el valor del campo es 0 el elemento no será mostrado. En este ejemplo el campo no se mostrará si no esta permitido introducir opiniones a los invitados:
<depends> <config>catalog/review/allow_guest</config> </depends>
- acl – indica que es un nodo de configuración de permisos
- resources – indica que se controla el acceso a recursos
- resource – indica el recurso al que se accede, en la mayoría de los casos “admin”
- children – permite profundizar hasta la ruta del nodo/s que queremos dotar de control de acceso.
- Ítem o subitem – nombre del nodo que se incorpora al ACL
- module – específica el módulo desde el que se obtendrán las traducciones.
- translate – específica los nodos hijo que serán traducibles (si existen multiples valores se separan por comas)
- Hijos del nodo:
- title – es el texto que será mostrado en el renderizado
- sort_order – orden del elemento dentro del menú acl.
- Ítem o subitem – nombre del nodo que se incorpora al ACL
- resources – indica que se controla el acceso a recursos
En system.xml indicábamos que era necesario añadir los elementos section creados en la configuración al control de acceso. Siguiendo el ejemplo:
<?xml version="1.0" ?> <config> <acl> <resources> <admin> <children> <system> <children> <config> <children> <mycustom_section translate="title" module="[module_name]"> <title>My Custom Section</title> <sort_order>100</sort_order> </mycustom_section> </children> </config> </children> </system> </children> </admin> </resources> </acl> </config>
- acl – indica que es un nodo de configuración de permisos
- config – define el config_path del field de la configuración. Si el valor del campo es 0 el elemento no será mostrado. En este ejemplo el campo no se mostrará si no esta permitido introducir opiniones a los invitados:
- module – define el nombre del módulo de la dependencia (Ej: Mage_Customer). Si el módulo no se carga el elemento del menú no será mostrado.