Замена иконок в меню админки

Не знаю согласитесь ли вы или нет, но всё же как то уныло выглядят иконки в меню админки для пунктов Панель управления и CMS.

А вот как у меня выглядит главное меню в бекед-части сайта:

Меню админки

На скрине выше вы можете видеть что у меня в пунктах меню переопределены иконки для стандартных пунктов меню, а так же заменена иконка для плагина Winter.User.

Так же вы можете заметить что в меню отсутствует пункт Медиафайлы. Ранее я уже писал как удалить пункт меню из Winter CMS. Можете в коде плагина который написан ниже, так же удалить этот пункт если он вам не нужен. Просто добавьте слушатель из статьи по ссылке в функцию boot().

Переопределение иконок

Сделать переопределение иконок можно в любом плагине. написать свой маленький плагин который будет называться Override. Это слово переводится как Переопределение, что логично в нашем случае.

  1. Заходим в корень сайта и в папке plugins создаём новую папку название которой носит имя разработчика. У меня это будет acme, у себя вы можете называть как вам вздумается.
  2. В этой папке создаём папку override. Это будет папка нашего плагина.
  3. В папке override создаём файл Plugin.php
  4. Так же в папке override создаём папку assets в которой папка img. В эту папку складываем svg-иконки (файлы с расширением .svg).

Получится такой путь к файлу Plugin.php:

\plugins\acme\override\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 - порядковый номер пункта меню
Панель быстрых действий в меню бэкенда
Панель быстрых действий в меню бэкенда Управление элементами в панели быстрых действий в основной навигации бэкенда Winter CMS. Методы и события для управления, свойства для генерации элементов.
Пункт Медиафайлы в меню бекенда
Пункт Медиафайлы в меню бекенда Как удалить пункт меню Медиафайлы из основного меню в бекенд части сайта и как затем при необходимости вывести Медиафайлы подпунктом бокового меню плагина.
Сделать бэкенд всем приложением
Сделать бэкенд всем приложением Для того, чтобы у приложения Winter CMS убрать полностью фронтенд часть, а вместо этого сделать бэкенд всем приложением, достаточно выполнить следующие действия...
Комментарии 0

*** чтобы писать комментарии.