Cách ghi đè tệp mẫu trong tạo mô-đun trong Magento2


8

Tôi muốn ghi đè:

/opt/lampp/htdocs/magento_composer/vendor/magento/module-catalog/view/frontend/templates/product/view/addtocart.phtml

tôi đã sao chép và dán nó trong mô-đun tùy chỉnh của mình tại:

/opt/lampp/htdocs/magento_composer/app/code/Hello/Custom/view/frontend/templates/product/view/addtocart.phtml

Đây là tập tin Bố cục của tôi:

<?xml version="1.0"?>
<page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>

        <referenceBlock name="product.info.addtocart" template="Hello_Custom::product/view/addtocart.phtml" after="alert.urls">

        </referenceBlock>

    </body>
</page>

tại:

/opt/lampp/htdocs/magento_composer/app/code/Hello/Custom/view/frontend/layout/catalog_product_view.xml

mô-đun:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
    <module name="Hello_Custom" setup_version="1.0.0" schema_version="1.0.0">
    </module>
</config>
  • Mô-đun đang hoạt động cho thế giới xin chào đơn giản để đăng ký chính xác ...

Vấn đề nằm ở tệp gợi ý đường dẫn mẫu đến từ nhà cung cấp .. nhưng nó chỉ xuất phát từ mô-đun tùy chỉnh của tôi (không phải từ chủ đề)


là danh mục catalog_product_view.xml là cần thiết hoặc chúng tôi có thể đặt bất kỳ tên nào cho tệp. thực sự tôi cần sự giúp đỡ về việc ghi đè lên mẫu
siddhesh

Nói cách đặt tên của tập tin đó là chắc chắn cần thiết. Nó xác định nơi tập tin bố trí được tải. Ví dụ default.xmlđược tải trên mỗi trang nhưng catalog_product_view.xmlchỉ được tải trên catalog/product/viewhành động.
Jacques

Câu trả lời:


17

bạn có thể thử với mã dưới đây trong tệp xml,

<?xml version="1.0"?>
<page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="content">
            <referenceBlock name="product.info.addtocart">
                <action method="setTemplate">
                    <argument name="template" xsi:type="string">Hello_Custom::product/view/addtocart.phtml</argument>
                </action>
            </referenceBlock>
         </referenceContainer>
    </body>
</page>

Có chắc chắn ..
Narendra.vyas

Làm thế nào để kiểm tra xem tập tin xml có được sử dụng hay không? tôi đã cố gắng viết xml không hợp lệ và trang của tôi vẫn được hiển thị chính xác. vì vậy tôi đã kết luận tệp bố cục xml của tôi không được thực thi, bạn có cho tôi biết cách giải quyết vấn đề này không
siddhesh

hoặc chúng ta cần chạy một số loại lệnh sau khi cập nhật tệp xml
siddhesh

1
Trên thực tế, trong tài liệu dev của magento 2, bạn có thể đọc "bằng cách sử dụng hướng dẫn <hành động>. Cách này không được khuyến khích , nhưng có thể được sử dụng cho ...". Tôi sẽ khuyên bạn nên sử dụng phương pháp được đề xuất trên trang đó trong Đặt mẫu khối . Vì vậy, sử dụng hành động để thay đổi mẫu không phải là một giải pháp tốt.
vẽ7721

10

Có ba phương thức có sẵn để ghi đè tệp mẫu trong Magento

Ví dụ: Ở đây chúng tôi ghi đè tệp addtocart.phtml cho sản phẩm đơn giản.

Cách 1:

<referenceContainer name="content">
    <referenceBlock name="product.info.addtocart">
        <action method="setTemplate">
            <argument name="template" xsi:type="string">Vendor_Module::product/view/addtocart.phtml</argument>
        </action>
    </referenceBlock>
</referenceContainer>

Cách 2:

<referenceContainer name="content">
    <referenceBlock name="product.info.addtocart" template="Vendor_Module::product/view/addtocart.phtml"/>
</referenceContainer>

Cách 3:

<referenceContainer name="product.info.form.content">
    <block class="Magento\Catalog\Block\Product\View" name="product.info.addtocart" as="addtocart" template="Vendor_Module::product/view/addtocart.phtml"/>
</referenceContainer>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.