วิธีสร้างธีมผู้ดูแลระบบสำหรับ Magento2


คำตอบ:


12

กระบวนการค่อนข้างคล้ายกับการสร้างชุดรูปแบบสำหรับส่วนหน้า

1.สร้าง theme.xml ใน

app/design/adminhtml/<yourpackage>/<yourtheme>/theme.xml

<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
    <title>Magento 2 backend</title>
    <parent>Magento/backend</parent> // set parent theme
 </theme>

2.ลงทะเบียนชุดรูปแบบใน

app/design/adminhtml/<yourpackage>/<yourtheme>/registration.php

3.เปิดใช้งานชุดรูปแบบ

you can enable frontend theme in admin, but for backend you need to enable the theme through di.xml 

ใน app/code/Magento/Theme/etc/di.xmlคุณสามารถค้นหาบล็อกของรหัสด้านล่าง เพิ่มบล็อคโค้ดนี้ลงในโมดูลของคุณและเปลี่ยน adminhtml เป็นแพ็คเกจผู้ดูแลระบบและชื่อธีม

    <type name="Magento\Theme\Model\View\Design">
       <arguments>
          <argument name="themes" xsi:type="array">
            <item name="frontend" xsi:type="string">Magento/luma</item>
            <item name="adminhtml" xsi:type="string">Magento/backend</item>
         </argument>
      </arguments>
    </type>

ตอนนี้คุณสามารถเขียนทับสิ่งที่อยู่ในชุดรูปแบบผู้ดูแลระบบของคุณเพื่อดูว่ามันทำงาน


ขอบคุณมากที่มีประโยชน์!
LucScu

2
ขั้นตอนที่ 3 ได้รับการปรับปรุงที่นี่magento.stackexchange.com/a/120960/23344
LucScu

1
หลังการติดตั้ง: เนื้อหาสแตติก: ปรับใช้ไม่มีอะไรถูกสร้างขึ้นกับธีม adminhtml ใหม่ของฉันสิ่งที่ฉันหายไป? ฉันลองตั้งค่าหลายอย่างบน composer.json แต่ก็ยังไม่สร้างอะไรเลยภายใต้เนื้อหาคงที่ ข้อเสนอแนะใด ๆ
AleGrinGo

2
ธีมผู้ดูแลระบบที่กำหนดเองของฉันไม่มีไฟล์สแตติกที่สร้างขึ้นหลังจากทำงานsetup:static-content:deploy
Vasilii Burlacu

ฉันด้วย! คุณจะแก้ไขมันได้อย่างไร
LucScu

2

ระบบชุดรูปแบบมีการเปลี่ยนแปลงเล็กน้อยใน Magento 2 แต่มีความคล้ายคลึงกัน แรกที่คุณต้องสร้างโฟลเดอร์ธีมใน
app/design/frontendโครงสร้างโฟลเดอร์คล้ายกับโครงสร้างโมดูล คุณต้องมีชื่อผู้ขาย (ใน Magento 1 ถูกเรียกว่า package) และโฟลเดอร์ธีม

app/design/frontend/Vendor/themeดังนั้นการสร้าง
จากนั้นคุณต้องประกาศธีมของคุณ
คุณต้องสร้างไฟล์ภายในเนื้อหาของโฟลเดอร์ที่theme.xmlมีเนื้อหาดังต่อไปนี้:

<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Config/etc/theme.xsd">
    <title>Your theme name</title>
    <parent>Magento/blank</parent><!-- or any other parent theme similar to Magento 1.9 -->
    <media>
        <preview_image>media/preview.jpg</preview_image>
    </media>
</theme>

จากนั้นสร้างภาพตัวอย่างของชุดรูปแบบของคุณภายในชุดรูปแบบในmediaโฟลเดอร์ (สร้างด้วย) และเรียกภาพตัวอย่างpreview.jpg(ตามที่ประกาศใน XML ด้านบน)

ตอนนี้ชุดรูปแบบของคุณมีการตั้งค่า
หากคุณต้องการเปลี่ยนบางสิ่งจากธีมผู้ปกครองสิ่งที่คุณต้องทำคือคัดลอกไฟล์ที่คุณต้องการเปลี่ยน (เลย์เอาต์เทมเพลต) ไปยังธีมของคุณจากโมดูลเฉพาะและทำเวทย์มนตร์ของคุณ

ตัวอย่างเช่นถ้าคุณต้องการที่จะเปลี่ยนวิธีการที่มุมมองสินค้าลักษณะหน้าต้องการคัดลอกไฟล์app/code/Magento/Catalog/view/frontend/layout/catalog_product_view.xmlไปapp/design/frontend/Vendor/theme/Magento_Catalog/layout/catalog_product_view.xmlและการเปลี่ยนแปลงสิ่งที่คุณต้องการ

รายละเอียดเพิ่มเติมเกี่ยวกับการสร้างรูปแบบที่สามารถพบได้ที่นี่
ฉันยังพบชุดรูปแบบตัวอย่างที่คุณสามารถใช้เป็นแนวทางได้
คุณยังสามารถติดตั้งข้อมูลตัวอย่างอย่างเป็นทางการและคุณจะได้รับชุดรูปแบบlumaที่คุณสามารถดูโครงสร้างโฟลเดอร์


ขอบคุณสำหรับคำตอบ! แต่ฉันคิดว่าฉันต้องแปลความไม่ดีขอโทษ
Mathieu

ฉันต้องการเอาชนะธีมแบ็กเอนด์ (ธีมผู้ดูแลระบบ) ไม่ใช่ส่วนหน้า
Mathieu

นั่นไม่ใช่ปัญหา ขั้นตอนเหมือนกัน แต่แทนที่จะfrontendใช้adminhtmlในโครงสร้างโฟลเดอร์ หลักการเดียวกัน
Marius

โอเคขอบคุณ. แต่ฉันไม่เข้าใจวิธีประกาศธีมใหม่สำหรับผู้ดูแลระบบ มี: "แอพ / รหัส / วีโอไอพี / แบ็กเอนด์ / etc / config.xml" หรือไม่
Mathieu

<stores> <admin> <design> <package> <name> ค่าเริ่มต้น </name> </package> <theme> <default> แบ็กเอนด์ </default> </theme> </theme> </deme> </admin> </ stores >
Mathieu

2

ในกรณีที่บางคนมีปัญหากับการสร้างไฟล์สแตติกสำหรับธีมผู้ดูแลระบบที่สร้างขึ้นใหม่ เพื่อให้วีโอไอพีสร้างไฟล์สำหรับธีมแบ็กเอนด์ในการตั้งค่า: เนื้อหาคงที่: ปรับใช้ app/design/adminhtml/<yourpackage>/<yourtheme>/web/ โฟลเดอร์ควรมีไฟล์ ไฟล์ดัมมี่ใด ๆ ที่จะทำงาน


ฉันสร้าง main.css ว่างเปล่าในโฟลเดอร์เว็บและฉันยังคงไม่ได้รับไฟล์คงสร้าง
สกอตต์

@Scott คุณได้ทำตามขั้นตอนทั้งหมดที่ Marius แนะนำไว้ในคำตอบของเขาแล้วหรือยัง? และเส้นทางที่สัมพันธ์กับ main.css นั้นเป็นอย่างไรในโอกาสของคุณ?
drevidchuck

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.