Cách ghi đè tệp .phtml trong Magento 2


15

Tôi muốn tùy chỉnh trang chi tiết sản phẩm, vì vậy cần phải ghi đè một số tệp .phtml ở các vị trí sau.

Vì vậy, tôi muốn biết, làm thế nào để ghi đè các tệp .phtml trong vendor\magento\module-catalog\view\frontend\templates\producthoặcvendor\magento\module-theme\view

Câu trả lời:


23

Đôi khi chúng ta cần sửa đổi các mẫu hiện có. Thay vì thực hiện thay đổi trực tiếp cho các tệp mẫu hiện có, chúng ta nên ghi đè chúng trong chủ đề của riêng mình. Chúng ta hãy giả sử rằng chúng ta muốn cập nhật trang danh sách danh mục ( list.phtml). Để làm như vậy, tạo cấu trúc thư mục sau:

app/design/frontend/Mycompany/Basic/Magento_Catalog/templates/product

Ở đây tôi giả định rằng chủ đề hiện tại của chúng tôi là Cơ bản. Bây giờ sao chép tệp list.phtml vào thư mục sản phẩm từ vị trí sau:

app/vendor/magento/module-catalog/view/frontend/templates/product/list.phtml

Bây giờ bạn có thể thực hiện bất kỳ sửa đổi nào bạn muốn cho tập tin bị ghi đè của bạn.

Để biết chi tiết xin vui lòng đọc hướng dẫn này, nó sẽ giúp bạn rất nhiều.


2
Xin chào, tôi chỉ ghi đè tệp list.phtml trong đường dẫn sau, \ app \ design \ frontend \ Magento \ luma \ Magento_Catalog \ samples \ sản phẩm \ list.phtml. Nhưng nó đã không làm việc. Tôi có thể biết tôi đã làm sai ở đâu không?
Vigna S

Cùng một vấn đề, bất kể bao nhiêu lần tôi nhấn refresh, mặc định một lần được tải qua tùy chỉnh của tôi. Và CÓ, tôi có đường dẫn chính xác trước khi có ai hỏi, nhưng tôi đang sử dụng trình soạn thảo để cài đặt magento để mặc định ở các vị trí khác nhau nếu điều đó quan trọng.
Dustin Poissant

Tôi đã phải xóa bộ đệm ẩn html và sau đó nó hoạt động hoàn hảo với tôi! (Tôi xóa bộ nhớ cache như blog này.gardenhouse.io/2018/05/29/ trên mạng )
paul

Làm thế nào để ghi đè lên mẫu từ mô-đun của bạn?
Đen

8

Tôi đang trả lời câu hỏi của riêng tôi,

Tôi đã tìm ra cách ghi đè các tệp .phtml vào các vị trí được đề cập trong câu hỏi của tôi,

Bạn phải đặt chúng ở các vị trí sau để ghi đè các tệp gốc

app\design\frontend\<VENDOR_NAME>\<THEME_NAME>\Magento_Catalog\templates\product\view

Và tôi tin rằng lý thuyết này giống nhau khi ghi đè bất kỳ tệp .phtml nào khác trong Magento 2


Bạn có thể vui lòng tóm tắt thêm ... Giống như tôi phải sao chép tệp phtml tùy chỉnh của mình vào thư mục chủ đề không? thích vào ứng dụng \ design \ frontend \ <VENDOR_NAME> \ luma \ Magento_Catalog \ Tôi có nên tạo thư mục Nhà cung cấp của mình và sao chép tệp phtml lõi vào đó không? Nếu làm như vậy, không cần mẫu trong thư mục xem?
Sushivam

Xin chào, tôi đang cố gắng ghi đè tệp phtml cho một tiện ích và tôi không chắc đường dẫn tôi đã sử dụng là chính xác. Phần Magento_Catalog của đường dẫn của bạn có dành riêng cho thư mục mô-đun bạn đang ghi đè không? Vì vậy, nếu tôi ghi đè nhà cung cấp \ magento \ module-catalog-widget \ view \ frontend \ samples \ product \ widget \ content, tôi có thể thay thế Magento_Catalog trong ví dụ của bạn bằng Magento_Catalog_Widget trong ví dụ của tôi không? Hơi bối rối vì nó chưa rõ ràng với tôi.
cướp

6

Để ghi đè phtml, bố cục và tệp web để sở hữu chủ đề tùy chỉnh

1) Để ghi đè tệp mẫu:

nhà cung cấp / magento / mô-đun-danh mục / xem / frontend / mẫu / sản phẩm / list.phtml

Theo con đường này

ứng dụng / thiết kế / frontend / Nhà cung cấp / chủ đề / Magento_Catalog / mẫu / sản phẩm / list.phtml

2) Để ghi đè tập tin bố cục:

nhà cung cấp / magento / mô-đun-danh mục / xem / frontend / layout / catalog_product_view.xml

Theo con đường này

ứng dụng / thiết kế / frontend / Nhà cung cấp / chủ đề / Magento_Catalog / layout / catalog_product_view.xml


Làm cách nào để ghi đè / tùy chỉnh các tệp mô-đun khác như Observer, Trình điều khiển, v.v.?
Tahir Yasin

6

Để ghi đè tệp pthml và bố cục từ

vendor/magento/module-catalog/view/frontend/templates/product/list.phtml

vào

app/Mycompany/OverideCatalog/view/frontend/templates/product/list.phtml

Bố trí:

vendor/magento/module-catalog/view/frontend/layout/catalog_category_view.xml

vào

app/Mycompany/OverideCatalog/view/frontend/layout/catalog_category_view.xml

<block class="Magento\Catalog\Block\Product\ListProduct" name="category.products.list" as="product_list" template="Mycompnay_OverideCatalog::product/list.phtml">

3

ghi đè mẫu (phtml) theo chủ đề tùy chỉnh

Nếu bạn muốn ghi đè vendor\magento\module-catalog\view\frontend\templates\product\some.phtmltrước tiên, bạn cần tạo chủ đề tùy chỉnh của mình, vui lòng tham khảo liên kết này để biết cách tạo chủ đề tùy chỉnh.

sau đó tạo tệp phtml trong chủ đề tùy chỉnh của bạn để ghi đè mặc định

 app/design/frontend/vendor-name/theme-name/Magento_Catalog/templates/product/some.phtml

Cuối cùng nó cũng xóa bộ nhớ cache của magento cũng như trình duyệt, sau đó kiểm tra trang của bạn, tệp phtml mới chỉ được phản ánh.

cùng một cách bạn có thể làm cho tất cả các mẫu ghi đè.

chúc may mắn


Cảm ơn, tôi chỉ cần tìm ra nó và trả lời phát hiện trong câu hỏi của riêng tôi, câu trả lời của bạn rất giống với phát hiện của tôi.
nuwaus

2

Mở thư mục: /vendor/magento/theme-frontend-luma/và sao chép các mẫu mô-đun và tệp bố cục từ thư mục xem.

Sau đó tạo thư mục: /app/design/frontend/spacename/Theme/

Sau đó tạo thư mục mô-đun và sau đó tạo mẫu và thư mục bố trí.

Chèn các mẫu và tập tin bố trí từ thư mục xem mô-đun.


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.