Cách ghi đè mẫu qua mô-đun trong Magento2


9

Tôi đang tạo một mô-đun và muốn ghi đè lên mẫu app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options.phtml.

Điều này có thể có trong một mô-đun (không phải là một chủ đề)

Thật không may, việc thay đổi tên mô-đun thông qua bố cục XML dường như không dễ dàng vì điều này được đặt mã hóa cứng trong https://github.com/magento/magento2/blob/develop/app/code/Magento/Catalog/Block /Adminhtml/Sản phẩm / Edit / Rab / Options.php # L21


Vui lòng tham khảo liên kết này để biết câu trả lời magento.stackexchange.com/questions/76434/ Khăn
Divya Muralidharan

Vui lòng tham khảo liên kết này để trả lời magento.stackexchange.com/questions/76434/ Kẻ
Divya Muralidharan

Câu trả lời:


10

Thêm thư mục bố trí của tệp mô-đun [Nhà cung cấp] / [Tên mô-đun] /view/adminhtml/layout/catalog_product_options.xml

<?xml version="1.0"?>
<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/layout_generic.xsd">
    <referenceBlock name="admin.product.options">
        <arguments>
            <argument name="template" xsd:type="string">[Vendor]/[ModuleName]::product_options.phtml</argument>
        </arguments>
    </referenceBlock>
</layout>

Cũng cần thêm vào mô-đun xml dòng này, để tải bố cục của bạn sau danh mục

<sequence>
        <module name="Magento_Catalog"/>
</sequence>

Bạn lấy tên admin.product.optionstừ đâu?
Alex

Chỉ cần tìm kiếm \ Magento \ Catalog \ Block \ adminhtml \ Product \ Edit \ Tab \ Tùy chọn theo tệp bố cục và tìm ra khai báo trong Magento / Catalog / view / adminhtml / layout / catalog_product_options.xml
KAndy

1
Có nên không Vendor_ModuleName::product_options.phtml?
Giel Berkers

Vâng, cảm ơn vì đã cho điểm
KAndy

2
Giải pháp này chỉ hoạt động, nếu mẫu ban đầu được đặt trong tệp Block.php. Nếu mẫu ban đầu được đặt trên layout.xml, giải pháp này sẽ không hoạt động. Một cách tiếp cận tốt hơn là luôn luôn sử dụng <action method="setTemplate">thay vì <arguments>. Giải pháp này hoạt động trong mọi trường hợp.
Jalogut

3
  1. Tạo tập tin bố trí tương ứng trong mô-đun của bạn:

[Nhà cung cấp] / [Tên mô-đun] /view/adminhtml/layout/catalog_product_options.xml

  1. Đặt cấu hình mẫu tùy chỉnh của bạn
<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/layout_generic.xsd">
    <referenceBlock name="admin.product.options">
        <action method="setTemplate">
            <argument name="template" xsi:type="string">[Vendor]_[ModuleName]::product_options.phtml</argument>
        </action>
    </referenceBlock>
</layout>

LƯU Ý: nó rất quan trọng để sử dụng <action method="setTemplate">thay vì <arguments>. <arguments>sẽ chỉ hoạt động nếu khối không có mẫu khác được chỉ định trên khai báo xml. Trong mọi trường hợp khác, bạn cần <action method="setTemplate">ghi đè lên mẫu hiện có. Nó là tốt hơn để sử dụng <action method="setTemplate">bởi vì nó luôn hoạt động.


0

Có, bạn có thể ghi đè lên các tệp mẫu từ ứng dụng / mã của mô-đun tùy chỉnh của bạn. Tuy nhiên, hãy nhớ rằng trong khái niệm kế thừa của Magento, các tệp (mẫu, bố cục, tệp tĩnh) từ ứng dụng / thiết kế ghi đè giống nhau trong ứng dụng / mã. Cũng như chủ đề con ghi đè lên chủ đề phụ huynh.

Vì vậy, tôi cho rằng tốt nhất là tạo một chủ đề tùy chỉnh cho mô-đun tùy chỉnh của mình và thêm tất cả các tệp phtml, xml, css, js, phông chữ và hình ảnh trong ứng dụng / thiết kế.

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.