Замена иконок в меню админки
Не знаю согласитесь ли вы или нет, но всё же как то уныло выглядят иконки в меню админки для пунктов Панель управления и CMS.
А вот как у меня выглядит главное меню в бекед-части сайта:
На скрине выше вы можете видеть что у меня в пунктах меню переопределены иконки для стандартных пунктов меню, а так же заменена иконка для плагина Winter.User.
Так же вы можете заметить что в меню отсутствует пункт Медиафайлы. Ранее я уже писал как удалить пункт меню из Winter CMS. Можете в коде плагина который написан ниже, так же удалить этот пункт если он вам не нужен. Просто добавьте слушатель из статьи по ссылке в функцию boot()
.
Переопределение иконок
Сделать переопределение иконок можно в любом плагине. написать свой маленький плагин который будет называться Override. Это слово переводится как Переопределение, что логично в нашем случае.
- Заходим в корень сайта и в папке plugins создаём новую папку название которой носит имя разработчика. У меня это будет acme, у себя вы можете называть как вам вздумается.
- В этой папке создаём папку
override
. Это будет папка нашего плагина. - В папке
override
создаём файлPlugin.php
- Так же в папке
override
создаём папкуassets
в которой папкаimg
. В эту папку складываем svg-иконки (файлы с расширением.svg
).
Получится такой путь к файлу Plugin.php
:
Код файла Plugin.php
<?php namespace Acme\Override;
use System\Classes\PluginBase;
use Event;
class Plugin extends PluginBase
{
public function pluginDetails()
{
return [
'name' => 'Переопределения',
'description' => 'Переопределения опций системы и других плагинов',
'author' => 'Моё Имя',
'icon' => 'icon-map-signs'
];
}
public function boot()
{
Event::listen('backend.menu.extendItems', function($manager) {
$manager->addMainMenuItems('Winter.Backend', [
'dashboard' => ['iconSvg' => 'plugins/acme/override/assets/img/home.svg'],
'media' => ['iconSvg' => 'plugins/acme/override/assets/img/media.svg']
]);
$manager->addMainMenuItems('Winter.Cms', [
'cms' => ['iconSvg' => 'plugins/acme/override/assets/img/cms.svg']
]);
$manager->addMainMenuItems('Winter.System', [
'system' => ['iconSvg' => 'plugins/acme/override/assets/img/cms.svg']
]);
$manager->addMainMenuItems('Winter.User', [
'user' => ['iconSvg' => 'plugins/acme/override/assets/img/users.svg']
]);
});
}
}
Замените в первой строчке кода Acme
на ваше имя разработчика и в путях для svg замените acme
на ваше название папки разработчика плагина.
В коде переопределены иконки для 5 пунктов меню. Это:
- dashboard - Панель управления
- media - Медиафайлы
- cms - CMS
- system - Настройки
- user - Пользователи
Удалите или закоментируйте в коде те пункты которые вам не нужны.
Теперь чтобы всё заработало, просто добавьте в папку img новые svg-иконки. А так наш плагин готов и будет работать.
Сортировка пунктов меню
Так же покажу как можно поменять порядок пунктов меню. Тут всё просто - применяем теже настройки что обычно для меню плагина.
Покажу на примере одного пункта, а именно пункту Настройки. Остальным можно так же добавлять необходимые нам параметры:
$manager->addMainMenuItems('Winter.System', [
'system' => [
'label' => 'Настроечка',
'iconSvg' => 'plugins/acme/override/assets/img/cms.svg'
'order' => 101
]
]);
Здесь:
- label - название пункта меню
- iconSvg - иконка
- order - порядковый номер пункта меню
*** Войдите чтобы писать комментарии.