Типичная ситуация — установили кучу плагинов и меню в админке стало настолько огромное, что пользоваться им тяжело. Особенно когда нужные пункты в самом конце.
Вот тут и пригодится знание, как изменить порядок пунктов меню. Можно конечно зайти в файл plugin.yaml каждого плагина и изменить order, но это плохой вариант — при обновлении плагина, наши правки слетят.
Чтобы сделать сортировку корректно, мы будем изменять порядок пунктов меню через наш плагин (если его нет, то надо создать).
Код очень простой:
use Event;
...
public function boot()
{
// слушаем событие, благодаря которому можем изменять пункты меню
Event::listen('backend.menu.extendItems', function ($manager) {
// для October.Backend делаем пункт `dashboard` первым
$manager->addMainMenuItems('October.Backend', [
'dashboard' => [
'order' => '1'
]
]);
// для October.Cms делаем пункт меню `cms` вторым
$manager->addMainMenuItems('October.Cms', [
'cms' => [
'order' => '2'
]
]);
// Для плагина Lovata.Shopaholic делаем пункт меню `shopaholic-menu-main` третьим
$manager->addMainMenuItems('Lovata.Shopaholic', [
'shopaholic-menu-main' => [
'order' => '3'
]
]);
});
}
Логичный вопрос — откуда мы знаем, что надо писать October.Cms
или Lovata.Shopaholic
? Это namespace плагина (Автор.НазваниеПлагина), посмотреть это можно перейдя в папку нужного плагина и открыв файл Plugin.php
. И там вверху мы увидим <?php namespace Lovata/Shopaholic;
это и есть нужные нам Автор/НазваниеПлагина.
Следующий вопрос как узнать название пункта меню (по примеру шопоголика 'shopaholic-menu-main'
). Тоже не сложно — переходим в папку плагина шопоголика, открываем файл plugin.yaml
и смотрим внимательно:
plugin:
name: 'lovata.shopaholic::lang.plugin.name'
description: 'lovata.shopaholic::lang.plugin.description'
author: Lovata
icon: oc-icon-book
homepage: ''
navigation:
shopaholic-menu-main:
label: 'lovata.shopaholic::lang.menu.main'
url: lovata/shopaholic/products
icon: icon-th-large
permissions:
- 'shopaholic-menu-*'
...
Название пункта меню в секции navigation
.