मुझे व्यवस्थापक मेनू में फ़ॉन्ट आइकन जोड़ने की आवश्यकता है।
सभी मुख्य Magento 2 मेनू की तरह, डिफ़ॉल्ट रूप से यह कस्टम मॉड्यूल मेनू के लिए हेक्सागोनल आइकन दिखाता है, मैं इसे कैसे बदल सकता हूं?
मुझे व्यवस्थापक मेनू में फ़ॉन्ट आइकन जोड़ने की आवश्यकता है।
सभी मुख्य Magento 2 मेनू की तरह, डिफ़ॉल्ट रूप से यह कस्टम मॉड्यूल मेनू के लिए हेक्सागोनल आइकन दिखाता है, मैं इसे कैसे बदल सकता हूं?
जवाबों:
1. आइकॉन बनाएं
डिफ़ॉल्ट Magento 2 द्वारा आप मॉड्यूल के लिए कस्टम डिफ़ॉल्ट आइकन जोड़ें।
लेकिन आप अपने कस्टम आइकन को अपने कस्टम व्यवस्थापक मॉड्यूल मेनू में जोड़ सकते हैं।
कस्टम आइकन .svg inkscape सॉफ़्टवेयर के लिए बनाएं (ओपन सोर्स सॉफ्ट फॉर
वेक्टर बनाने की कोशिश आदमी!)।
IcoMoon.io की मदद से उस .svg आइकन का फ़ॉन्ट आइकन बनाएं
के लिए जाओ lib/web/fonts
अपना मॉड्यूल फ़ोल्डर बनाएँ। उदाहरण Package
और IcoMoon.io से प्राप्त / निर्यात की गई सभी फ़ाइलों को पेस्ट करें।
Package_Modulename
app / design / adminhtml / Magento / backend पर जाएं
पैकेज_मॉडलनेम / वेब / सीएसएस / स्रोत / नाम के साथ फ़ोल्डर बनाएँ
_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: यहाँ modulename
से आता हैetc/adminhtml/menu.xml
<menu>
<add id="Package_Modulename::modulename" title="Modulename" module="Package_Modulename" sortOrder="40" resource="Package_Modulename::modulename"/>
</menu>
देखिए कि मैगेंटो '::' के बाद अंतिम शब्द लेता है modulename
और कक्षा के परिणाम li
के a
टैग के html माता-पिता का नाम इसमें जोड़ देता है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-bffault संदर्भित कर सकते हैं -font आइकन
मैंने उपरोक्त समाधान की कोशिश की लेकिन यह मेरे लिए काम नहीं किया। इसलिए मैंने _module.less
फ़ाइल डालने की कोशिश की
vendor/magento/theme-adminhtml-backend/Your_Module/web/css/source
Direcrtory। और यह मेरे लिए काम करता है।
यह अनुशंसित नहीं है, लेकिन मुझे इसके लिए कोई अन्य समाधान नहीं मिला। तो मैं इस समाधान की कोशिश करो। और यह काम करता है। यह सुनिश्चित करने के लिए निम्न फ़ाइल की जाँच करें कि यह काम करता है:
pub/static/adminhtml/Magento/backend/en_US/css/styles.less
आपको इस तरह की एक लाइन कहां मिलनी चाहिए:
@import '../Your_Module/css/source/_module.less';
उपर्युक्त उत्तर को विभिन्न फ़ोल्डरों की तरह काम किया जाता है lib
, जैसे design
।
इसलिए हमने केवल कस्टम एक्सटेंशन फ़ाइलों पर काम किया है। कदम हैं:
1) आपने menu.xml
फ़ाइल बना ली है Package_Modulename/etc/adminhtml
। कोड हैं
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Backend:etc/menu.xsd">
<menu>
<add id="Package_Modulename::package_menu" title="package name" module="Package_Modulename" sortOrder="70" resource="Package_Modulename::package_menu"/>
<add id="Package_Modulename::menu_config" title="Configuration" translate="title" module="Package_Modulename" sortOrder="1" parent="Package_Modulename::package_menu" resource="Package_Modulename::menu_config"/>
</menu>
</config>
2) IcoMoon.io की मदद से उस .svg आइकन का फ़ॉन्ट आइकन बनाएं । अधिक विवरण दस्तावेज़
3) के लिए default.xml
फ़ाइल बनाएँ Package_Modulename/view/adminhtml/layout
। कोडिंग हैं:
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<head>
<css src="Package_Modulename::css/icon.css"/>
</head>
</page>
4) fonts
फ़ोल्डर बनाएँ Package_Modulename/view/adminhtml/web
और आइकन फ़ाइलों को चिपकाएँ। फाइलें हैं
icon.eot
icon.svg
icon.ttf
icon.woff
5) के लिए icon.css
फ़ाइल बनाएँ Package_Modulename/view/adminhtml/web/css
। कोड हैं
@font-face {
font-family:'Packagename';
src:url('../fonts/icon.eot');
src:url('../fonts/icon.eot?#iefix') format('embedded-opentype'),url('../fonts/icon.woff') format('woff'),url('../fonts/icon.ttf') format('truetype'),url('../fonts/icon.svg') format('svg');font-weight:normal;font-style:normal
}
.admin__menu .level-0.item-package_menu > a::before {
content: '\e900';
font-size: 3.0rem;
padding-top: 0.1rem;
font-family:'Packagename';
}
नोट: ऊपर कोडिंग
content: '\e900';
मान की जाँच करें। कृपया फ़ॉन्ट पैकेज फ़ाइल (demo.html
) देखें। स्क्रीन शॉट देखें:
यह करने के लिए एक और "हैकिश" तरीका है, जिसमें vendor/modulename/view/adminhtml/web/images/icon.png
और कुछ सीएसएस लाइनों में एक पारदर्शी पीएनजी छवि जोड़ना है vendor/modulename/view/adminhtml/web/css/styles.css
:
/* you may have to adjust the selector a bit*/
.admin__menu .item-{modulename}-menu.last.level-0 > a:before {
background: url("../images/icon.png") center center no-repeat;
content: "";
background-size: auto 95%;
}
.admin__data-grid-wrap .data-grid .data-grid-draggable .data-row .data-grid-thumbnail-cell .admin__control-thumbnail > img:before {
border:none;
}
मुझे व्यक्तिगत रूप से वेबफोन्स बनाने में कठिनाइयाँ हुईं और ईमानदार होने के लिए मुझे लगता है कि एक व्यवस्थापक आइकन (1kb छवि) के लिए थोड़ा बहुत दृष्टिकोण है।
आप एक ऐसे व्यवस्थापक आइकन को भी देख सकते हैं जो पहले से मौजूद है और Magento के व्यवस्थापन पैटर्न लाइब्रेरी में आइकनोग्राफी के अंदर आपकी आवश्यकताओं से मेल खाता है और फिर vendor/magento/theme-adminhtml-backend/web/css/source/variables/_icons.less
फ़ाइल में संबंधित LESS चर की तलाश करें ।
यदि आपको इस लाइब्रेरी में कुछ उपयोगी लगता है, तो अपने मॉड्यूल के अंदर सीधे अपनी LESS फ़ाइल बनाएं (व्यवस्थापन थीम की कोई आवश्यकता नहीं) Vendor/ModuleName/view/adminhtml/web/css/source/_module.less
और निम्न सामग्री से भरें:
.admin__menu .item-modulename.parent.level-0 > a:before {
content: @icon-tool__content; // Or whatever icon variable you want
}
उसके बाद, आपको pub/static/adminhtml/Magento/backend/en_US/css/styles.css
फ़ाइल को निकालना होगा , और व्यवस्थापक पृष्ठ को फिर से लोड करना होगा