Magento 2: วิธีการแทนที่หน้าแรกของธีม Luma


9

ฉันใช้ Magento 2 CE เวอร์ชั่น 2.1.0 บน WAMP Windows 10

ฉันเรียกแล้ว

Magento 2: วิธีการแทนที่ไฟล์ html แม่แบบเริ่มต้นของรถเข็นขนาดเล็ก?

ต้องการแทนที่ Magento 2 Default Luma Theme

ฉันมีโครงสร้างโฟลเดอร์ด้านล่าง

magento2
 |_ app
   |_ design
      |_ frontend
        |_ Custom
            |_Theme
              |_Magento_Theme
                |_templates
                  |_root.phtml     - Copy of Luma
                registration.php
                theme.xml

แอปพลิเคออกแบบ \ \ ส่วนหน้า \ กำหนดเอง \ ธีม \ Magento_Theme \ registration.php

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::THEME,
    'frontend/Custom/Theme',
    __DIR__
);

แอปพลิเคออกแบบ \ \ ส่วนหน้า \ กำหนดเอง \ ธีม \ Magento_Theme \ theme.xml

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

ฉันเรียกใช้php bin/magento setup:static-content:deploy& ล้างแคชเช่นกัน Admin -> Content -> Design -> Configurationมันไม่ได้แสดงรูปแบบที่สร้างขึ้นใหม่ของฉันใน แก้ไขรายการแบบเลื่อนลง

สิ่งที่ฉันยังคงหายไป?


นี่จะเป็นประโยชน์สำหรับdevdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/ ......
Ankit Shah

คำตอบ:


6

เมื่อสร้างชุดรูปแบบหรือโมดูลใหม่คุณจำเป็นต้องกำหนดไฟล์ register.php ที่รูทของโมดูลหรือโฟลเดอร์ธีมของคุณ

ใช้ชื่อชุดรูปแบบเป็นตัวพิมพ์เล็กเสมอเนื่องจาก Magento ใช้มาตรฐานนี้สำหรับการประกาศชื่อชุดรูปแบบ

คุณไม่มีปัญหาใด ๆ สำหรับการรักษาชื่อชุดรูปแบบใน camelcase แต่ใช้วิธีมาตรฐานชื่นชมมาก

คุณต้องกำหนดไฟล์ register.php ภายในโฟลเดอร์ Magento_Theme ซึ่งอยู่ผิดที่

แผนผังของชุดรูปแบบที่ถูกต้องจะอยู่ด้านล่าง

magento2
 |_ app
   |_ design
      |_ frontend
        |_ Custom
            |_theme
              |_Magento_Theme
                |_templates
                  |_root.phtml     - Copy of Luma
              |_registration.php
              |_theme.xml

เส้นทางของคุณสำหรับ register.php คือ app\design\frontend\Custom\theme\registration.php

register.phpไฟล์:

<?php
   \Magento\Framework\Component\ComponentRegistrar::register(
     \Magento\Framework\Component\ComponentRegistrar::THEME,
      'frontend/Custom/theme',
      __DIR__
);

เส้นทางไฟล์ theme.xml ของคุณจะเป็น

app\design\frontend\Custom\theme\theme.xml

ไฟล์theme.xml :

<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
   <title>Custom Theme</title>
   <parent>Magento/luma</parent>
   <media>
      <preview_image>media/preview.jpg</preview_image>
   </media>
</theme>

หลังจากการตั้งค่าทั้งหมดเสร็จสมบูรณ์อย่าลืมเรียกใช้คำสั่ง deploy สำหรับธีม

php bin/magento setup:static-content:deploy

ตรวจสอบภายในแผงผู้ดูแลระบบของคุณContent -> Design -> Configurationเพื่อกำหนดธีมที่กำหนดเอง

ลบแคชและตรวจสอบในส่วนหน้า


Bijal Usean & SH Patel ยอมรับคำตอบของ @Rakesh เพราะก่อนหน้านี้ฉันกำลังพูดคุยกับเขาเกี่ยวกับปัญหานี้
Ankit Shah

Cannot read contents from file "D:/wamp/www/magento2/" Warning!file_get_contents(D:/wamp/www/magento2/): failed to open stream: No such file or directoryมันทำให้เกิดข้อผิดพลาดในขณะที่ประหยัดจากผู้ดูแลระบบ ไม่สามารถบันทึก & เปิดใช้งานชุดรูปแบบใหม่ได้
Ankit Shah

กรุณาเรียกใช้คำสั่งอัพเกรดแล้วเรียกใช้คำสั่งปรับใช้ลบโฟลเดอร์ var จากรากและตรวจสอบ
Rakesh Jesadiya

Nope ปัญหายังคงอยู่
Ankit Shah

ติดตามได้ที่นี่magento.stackexchange.com/questions/138381/…
Ankit Shah

1

คุณวางtheme.xmlและregistration.phpในตำแหน่งที่ผิดตำแหน่งที่แท้จริงคือ

app/design/frontend/<vendor>/<theme>/registration.php

<?php
/**
 * Copyright © 2016 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::THEME,
    'frontend/<vendor>/<theme>',
    __DIR__
);

app/design/frontend/<vendor>/<theme>/theme.xml

<!--
/**
 * Copyright © 2016 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
    <title>Vendor Theme</title>
    <parent>Magento/luma</parent>
    <media>
        <preview_image>media/preview.jpg</preview_image>
    </media>
</theme>

หมายเหตุ: place preview.jpg ในapp/design/frontend/<vendor>/<theme>/media/preview.jpg

สองไฟล์นี้เพียงพอที่จะรับรายการธีมของคุณใน Admin จากนั้นใช้ธีมของคุณ

หากคุณต้องการแทนที่เทมเพลต luma app/code/Magento/Catalog/view/frontend/templates/product/view/addtocart.phtmlคุณสามารถทำการเปลี่ยนแปลงเทมเพลตนั้นได้app/design/frontend/<vendor>/<theme>/Magento_Catalog/templates/product/view/addtocart.phtml


ข้อผิดพลาดขณะกำลังบันทึกจากผู้ดูแลระบบCannot read contents from file "D:/wamp/www/magento2/" Warning!file_get_contents(D:/wamp/www/magento2/): failed to open stream: No such file or directory.ดังนั้นจึงไม่สามารถบันทึก & เปิดใช้งานธีมใหม่
Ankit Shah

ดูเหมือนว่าปัญหาการอนุญาตไฟล์ให้คุณตรวจสอบว่าคุณตั้งสิทธิ์ที่ถูกต้องตามมาตรฐานวีโอไอพี
Bilal Usean

ดังที่กล่าวไว้ในคำถามI'm using Magento 2 CE Version 2.1.0 on WAMP Windows 10
Ankit Shah

ติดตามได้ที่นี่magento.stackexchange.com/questions/138381/…
Ankit Shah

โปรดตรวจสอบผู้ใช้รูทไดเรกทอรี root ของคุณและกลุ่มผู้ใช้ควรเป็นผู้ใช้เว็บเซิร์ฟเวอร์และกลุ่มรวมถึงตรวจสอบสิทธิ์การอ่าน / เขียนของไดเรกทอรีนั้น อ้างอิงสองลิงก์นี้คุณจะได้รับแนวคิดเพิ่มเติมdevdocs.magento.com/guides/v2.0/install-gde/prereq/… magento.stackexchange.com/q/91870/36463
Bilal Usean

1

เส้นทางที่คุณใช้ไม่ถูกต้อง

ทำตามคำแนะนำด้านล่างเพื่อสร้างธีมที่กำหนดเองใหม่

สร้างไฟล์ theme.xml/app/design/frontend/Custom/Theme/theme.xmlด้วยรหัสด้านล่าง

<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
    <title>Custom Theme</title>
    <parent>Magento/luma</parent>
    <media>
        <preview_image>media/preview.jpg</preview_image>
    </media>
</theme>

สร้างไฟล์ register.php app/design/frontend/Custom/Theme/registration.phpด้วยรหัสด้านล่าง

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::THEME,
    'frontend/Custom/theme',
    __DIR__
);

คัดลอก preview.jpg จาก

vendor/magento/theme-frontend-luma/media/preview.jpg 

เพิ่ม

app/design/frontend/Custom/Theme/media/preview.jpg

ตอนนี้คุณสามารถดูชุดรูปแบบที่กำหนดเองในผู้ดูแลระบบเลือกชุดรูปแบบที่กำหนดเองจากผู้ดูแลระบบและบันทึก


ข้อผิดพลาดขณะกำลังบันทึกจากผู้ดูแลระบบCannot read contents from file "D:/wamp/www/magento2/" Warning!file_get_contents(D:/wamp/www/magento2/): failed to open stream: No such file or directory.ดังนั้นจึงไม่สามารถบันทึก & เปิดใช้งานธีมใหม่
Ankit Shah

ชุดรูปแบบ Luma บันทึกทำงานอย่างถูกต้องหรือไม่
Suresh Chikani

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