En primer lugar, analizaremos la estructura del menú de administración y cómo funciona la acción en cada menú. La estructura del menú está separada por niveles. Verás el nivel 0 en la barra izquierda y los niveles superiores se agrupan y se muestran cuando haces clic en el menú de nivel 0. Por ejemplo, Store (Tiendas). Verás que Tiendas es un nivel 0 y se muestra en la barra izquierda. Cuando haces clic en él, se mostrará el submenú, como Configuración, Atributos, Impuestos... y ese submenú también tiene algunos sub-submenús (Configuración tiene Todas las Tiendas, Configuración, Términos y Condiciones, Estado del Pedido).
Al igual que en el frontend, tendremos este formato {nombre_del_router}_{carpeta_del_controlador}_{nombre_de_la_acción}. Pero en el menú de administración, tendremos un nombre de router de administración (esto se puede personalizar) antes de que Magento sepa que esto es un área de Backend.
Entonces, ¿cómo se crea el menú? Utilizaremos un módulo para crear un menú.
En Magento 2, utilizamos el archivo menu.xml para agregar este menú. Vamos a crearlo:
Crear menu.xml
Al igual que en el frontend, tendremos este formato {nombre_del_router}_{carpeta_del_controlador}_{nombre_de_la_acción}. Pero en el menú de administración, tendremos un nombre de router de administración (esto se puede personalizar) antes de que Magento sepa que esto es un área de Backend.
Entonces, ¿cómo se crea el menú? Utilizaremos el módulo "Actecnology_Blog" para crear un menú.
En Magento 2, utilizamos el archivo menu.xml para agregar este menú. Vamos a crearlo:
app/code/Actecnology/Blog/etc/adminhtml/menu.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Backend:etc/menu.xsd">
<menu>
<!-- agregar menu en la seccion principal -->
<add id="Actecnology_Blog::actecnology" title="AC Tecnology" module="Actecnology_Blog" sortOrder="10" resource="Actecnology_Blog::actecnology"/>
<add id="Actecnology_Blog::post" title="Manage Posts" module="Actecnology_Blog" sortOrder="10" action="mageplaza_actecnology/post" resource="Actecnology_Blog::post" parent="Actecnology_Blog::actecnology"/>
<add id="Actecnology_Blog::configuration" title="Configuration" module="Actecnology_Blog" sortOrder="99" parent="Actecnology_Blog::actecnology" action="adminhtml/system_config/edit/section/actecnology" resource="Actecnology_Blog::actecnology_configuration"/>
</menu>
</config>
En este ejemplo, crearemos un menú de nivel 0 llamado "AC Tecnology" y dos submenús llamados "Manage Posts" y "Configuration". El archivo menu.xml definirá una colección de notas 'add' que agregará un elemento de menú al backend de Magento. Veremos su estructura:
<add id="Actecnology_Blog::post" title="Manage Posts" module="Actecnology_Blog" sortOrder="10" action="actecnology_blog/post" resource="Actecnology_Blog::post" parent="Actecnology_Blog::actecnology"/>
Permíteme explicarte algunos atributos:
• El atributo "id" es el identificador de esta nota. Es una cadena única y debe seguir el formato: {Proveedor_NombreDelMódulo}::{descripción_del_menú}.
• El atributo "title" es el texto que se mostrará en la barra de menú.
• El atributo "module" define el módulo al que pertenece este menú.
• El atributo "sortOrder" define la posición del menú. Un valor más bajo se mostrará en la parte superior del menú.
• El atributo "parent" es el ID de otro nodo de menú. Esto le indicará a Magento que este menú es un submenú de otro menú. En este ejemplo, tenemos parent="Actecnology_Blog::actecnology", por lo que sabemos que este menú "Manage Posts" es un submenú del menú "AC Tecnology" y se mostrará dentro de él.
• El atributo "action" define la URL de la página a la que enlaza este menú. Como mencionamos anteriormente, la URL seguirá este formato {nombre_del_router}{carpeta_del_controlador}{nombre_de_la_acción}. En este ejemplo, este menú enlazará al módulo Blog, controlador Post y acción Index (para otro post).
• El atributo "resource" se utiliza para definir la regla ACL que el usuario administrador debe tener para ver y acceder a este menú. Encontrarás más detalles sobre ACL en otro tema.
También puedes crear más menús secundarios.
Podriamos agregar a una seccion ya existente como en el caso mas conveniente, ejemplo “Content”, de la siguiente manera:
<!-- agregar menu en la seccion content -->
<add id="Actecnology_Blog::actecnology_blog" title="AC Tecnology" module="Actecnology_Blog" parent="Magento_Backend::content" sortOrder="10" resource="Actecnology_Blog::actecnology_blog"/>
<add id="Actecnology_Blog::blog" title="Blog" module="Actecnology_Blog" parent="Actecnology_Blog::actecnology_blog" sortOrder="10" action="actecnology_blog/post/index" resource="Actecnology_Blog::blog"/>
seguido de eso limpiamos la cache con:
php bin/magento cache:clean
debería verse de las siguiente manera:
En este Post aprenderemos a personalizar la tienda Magento 2. Descubre cómo incorporar JavaScript personalizado para mejorar la funcionalidad y ...
Leer más...Current version of RDBMS is not supported. Used Version: 10.6.17-MariaDB-1:10.6.17+maria~ubu2004. Supported versions: MySQL-8, MySQL-5....
Leer más...Los principales motivos para aprenderLa motivación es uno de los pilares fundamentales en el proceso de aprendizaje del desarrollo web....
Leer más...✨ Dominando el Estilo: Un Viaje al Mundo de CSSEn el universo del desarrollo web, CSS (Cascading Style Sheets) desempeña un papel funda...
Leer más...