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 umatab
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 umgroup_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