Мне нужно добавить значок шрифта в меню администратора.
Как и во всех основных меню magento 2, по умолчанию на нем отображается шестиугольная иконка для меню пользовательского модуля, как я могу его изменить?
1. Создать иконку
По умолчанию magento 2 добавляет пользовательский значок по умолчанию для вашего модуля.
Но вы можете добавить свой собственный значок в меню пользовательского модуля администратора.
Создайте пользовательский значок .svg с помощью программного обеспечения inkscape (программа с открытым исходным кодом для
создание вектора попробуй человек!)
Создайте значок шрифта этого значка .svg с помощью IcoMoon.io
Перейти к lib/web/fonts
создайте папку вашего модуля. Пример Package
и вставьте все файлы, которые были получены / экспортированы из IcoMoon.io.
Package_Modulename
перейти к app / design / adminhtml / Magento / backend
создать папку с именем Package_Modulename / web / css / source /
Создать _module.less
файл в исходной папке
Будет казаться Package_Modulename/web/css/source/_module.less
Теперь внутри вашего файла _module.less добавьте следующие строки:
@modulename-icons-admin__font-name-path: '@{baseDir}fonts/modulename/icomoon';
@modulename-icons-admin__font-name : 'modulename';
.font-face(
@family-name:@modulename-icons-admin__font-name,
@font-path: @modulename-icons-admin__font-name-path,
@font-weight: normal,
@font-style: normal
);
.admin__menu .item-modulename.parent.level-0 > a:before {
font-family: @modulename-icons-admin__font-name;
content: "\e800";
}
Товар-по модулю: вот modulename
родомetc/adminhtml/menu.xml
<menu>
<add id="Package_Modulename::modulename" title="Modulename" module="Package_Modulename" sortOrder="40" resource="Package_Modulename::modulename"/>
</menu>
посмотрите id Magento, возьмите последнее слово после '::' здесь modulename
и добавьте имя в li
html родительский a
тег для результата классаclass='item-modulename parent level-0'
Для более детального понимания вы можете обратиться по ссылке http://ibnab.com/en/blog/magento-2/magento-2-backend-how-to-create-custom-menu-in-admin-and-change-default -font-значок
Я попробовал вышеуказанное решение, но оно не сработало для меня. поэтому я попытался положить
_module.less
файл вDirecrtory. и это работает для меня.
Это не рекомендуется, но я не нашел другого решения для этого. поэтому я попробую это решение. и это работает. проверьте следующий файл, чтобы убедиться, что он работает:
Где вы должны найти такую строку:
источник
Выше ответ разработаны различные папки , как
lib
,design
.Поэтому мы работали только с файлами пользовательских расширений. Шаг являются:
1) у вас есть
menu.xml
файл дляPackage_Modulename/etc/adminhtml
. Кодекс2) Создайте значок шрифта этого значка .svg с помощью IcoMoon.io . Подробнее документы
3) Создайте
default.xml
файл дляPackage_Modulename/view/adminhtml/layout
. Кодирование это:4) Создайте
fonts
папкуPackage_Modulename/view/adminhtml/web
и вставьте файлы значков. Файлы5) Создайте
icon.css
файл дляPackage_Modulename/view/adminhtml/web/css
. Кодексисточник
Другой «хакерский» способ сделать это - добавить прозрачное изображение PNG в
vendor/modulename/view/adminhtml/web/images/icon.png
и несколько строк CSS вvendor/modulename/view/adminhtml/web/css/styles.css
:Лично у меня были трудности с генерацией веб-шрифтов, и, честно говоря, я считаю, что этот подход слишком сложен для значка администратора (изображение 1 КБ).
источник
Вы также можете найти значок администратора, который уже существует и соответствует вашим потребностям, внутри Iconography в Magento Admin Pattern Library, а затем найти соответствующую переменную LESS в
vendor/magento/theme-adminhtml-backend/web/css/source/variables/_icons.less
файле.Если вы найдете что-то полезное в этой библиотеке, создайте свой файл LESS непосредственно внутри вашего модуля (без необходимости в теме adminhtml)
Vendor/ModuleName/view/adminhtml/web/css/source/_module.less
и заполните его следующим содержимым:Затем вы должны удалить
pub/static/adminhtml/Magento/backend/en_US/css/styles.css
файл и перезагрузить страницу администратораисточник