Для управління меню адмін-панелі Magento 2 (додавання нових пунктів) служить файл etc/adminhtml/menu.xml.
Створіть файл у папці вашого модуля, щоб додати новий елемент меню:
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>
<add id="VendorName_ModuleName::key1" title="Title 1" module="VendorName_ModuleName" parent="OtherVendorName_OtherModuleName::content" sortOrder="10" resource="VendorName_ModuleName::key1"/>
<add id="VendorName_ModuleName::key2" title="Title 2" module="VendorName_ModuleName" parent="VendorName_ModuleName::key1" sortOrder="10" action="path/controllerName" resource="VendorName_ModuleName::key2"/>
</menu>
</config>
id - унікальний ідентифікатор елемента меню;
title - текс елемента;
module - вказує до якого модуля відносится елемент;
parent - ідентифікатор батьківського елемента меню;
sortOrder - позиція серед інших елементів;
action - вказує шлях, на який посилатимется елемент;
resource - ідентифікатор acl (Access Control List), служить для розмежування прав доступу (хто може бачити цей пункт меню). Більше інформації про розмежування прав можна знайти у цій статті.
Після збереження змін у menu.xml очистіть кеш, виконавши CLI команду:
php bin/magento cache:clean
Перевірте результат.
У прикладах ми створюємо модуль для FAQ. Змінений код модуля можна переглянути на GitHub.