Como criar um menu no painel administrativo do Magento 2

Código para criar um menu

Para a criação de novos menus no painel administrativo do Magento é necessário criar um arquivo chamado menu.xml que deve seguir a estrutura de pasta \{Vendor}\{Module}\etc\adminhtml\menu.xml. A estrutura do menu é separada pelos níveis tab, group_items e item.

  • tab: são botões adicionados na barra lateral esquerda do menu do painel administrativo;
  • group_items: é um título secundário que não redireciona a nenhuma página e pertence a uma tab específica, porém agrupa os itens que contém o redirecionamento por funcionalidades;
  • item: é um link que redireciona para a página e pode pertencer ou não a um group_items.
<?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>
        <add id="{Vendor}_{Module}::{tab_id}" title="{Tab Title}" translate="title" module="{Vendor}_{Module}" sortOrder="{integer}" resource="{Vendor}_{Module}::{aclResourceId}" />
        <add id="{Vendor}_{Module}::{group_items_id}" title="{Group Items Title}" translate="title" module="{Vendor}_{Module}" sortOrder="{integer}" resource="{Vendor}_{Module}::{aclResourceId}" parent="{Vendor}_{Module}::{tab_id}" />
        <add id="{Vendor}_{Module}::{item_id}" title="{Item Title}" translate="title" module="{Vendor}_{Module}" sortOrder="{integer}" resource="{Vendor}_{Module}::{aclResourceId}" parent="{Vendor}_{Module}::{group_items_id}" action="{route_frontend_name}/{controller_directory}/{controller_name}" />
    </menu>
</config>

Atributos do Menu

Atributos Descrição
id Define o identificador único que é utilizado no menu.
title Texto que será exibido na barra de menu.
module Define o módulo no qual o menu pertence.
sortOrder Define a ordem de classificação dos menus. A ordem é determinada por números crescente, então números menores aparecerão primeiro.
parent Atributo id de outro módulo, especificando qual o pai do nó atual.
action Define a URL da página que será redirecionada. Deve obedecer o formato {route_frontend_name}/{controller_directory}/{controller_name}.
resource Define o id do ACL na qual o usuário administrador terá acesso.

Finalizando

Valores entre chaves ({test}) devem ser alterados na implementação do código.

Habilitando as alterações

Execute o comando PHP para limpar todos os caches de armazenamento em cache do processos.

php bin/magento cache:clean
php bin/magento flush

Diretórios e Arquivos

Segue a a lista de diretórios e arquivos que devem ser criados.

- app/
  - code/
    - {Vendor}/
        - {Module}/
          - etc/
            - adminhtml/
              - menu.xml
            - module.xml
          - registration.php
          - composer.json

18