Tôi sẽ cố gắng đưa ra một câu trả lời chung chung.
Cách thay đổi mẫu
Trong chủ đề của bạn, bạn có thể ghi đè bất kỳ phtml
tệp nào từ chủ đề mặc định hoặc chủ đề gốc. Sao chép tệp gốc vào app/design/frontend/[package]/[theme]/template/[path/to/phtml]
và thực hiện các thay đổi của bạn.
Nếu bạn chưa có chủ đề tùy chỉnh cụ thể cho dự án, ví dụ vì bạn vừa mua một chủ đề, hãy đảm bảo tạo một chủ đề tại
app/design/frontend/[original-package]/[project-name]
Nó sẽ kế thừa từ [original-package]/[default]
, bạn không cần phải sao chép mọi thứ từ mặc định, chỉ là các tệp mà bạn cần thực hiện thay đổi.
Thay đổi cụ thể mô-đun
Một cách khác để ghi đè phtml
tệp, là thay đổi đường dẫn mẫu. Điều này thường có thể được thực hiện trong bố cục XML như thế này:
<reference name="the-block-name">
<action method="setTemplate"><name>path/to/new/template.phtml</name></action>
</reference>
Nhưng điều này được dự định sẽ được sử dụng bởi các mô-đun, những người cần chuyển đổi một mẫu, không phải cho các thay đổi cụ thể của chủ đề. Các mẫu mới nên được trong base/default
đó.
Cách sử dụng local.xml / theme.xml
Các local.xml
tập tin phải nằm trong danh mục các chủ đề thực tế mà bạn đang sử dụng, ví dụ:
app/design/frontend/[package]/[theme]/layout
Nhiều local.xml
tệp trong hệ thống phân cấp dự phòng không được tính đến. Cái đầu tiên có thể được tìm thấy, được sử dụng:
app/design/frontend/[package]/[theme]/layout/local.xml
app/design/frontend/[package]/default/layout/local.xml
app/design/frontend/base/default/layout/local.xml
(giả sử phân cấp mặc định và không có phân cấp được xác định tùy chỉnh)
Cách thay đổi
Bạn chỉ nên có các sửa đổi trong local.xml, không lặp lại các định nghĩa đã có trong các tệp XML gốc. Điều đó cũng có nghĩa là, tránh sao chép các tệp XML từ chủ đề mặc định để thay đổi trực tiếp trong các tệp. Giữ thư mục của chủ đề của bạn layout
sạch sẽ!
Các yếu tố điển hình local.xml
là <remove>
loại bỏ hoàn toàn các khối hiện có <action method="unsetChild">
và <action method="append">
để di chuyển một khối từ cha mẹ này sang cha mẹ khác hoặc gọi bất kỳ phương thức nào khác trên các khối hiện có để sửa đổi hành vi của chúng.
Magento 1.9
Bắt đầu với Magento 1.9, thực tế tốt nhất là không sử dụng layout/local.xml
cho những thay đổi này, nhưngetc/theme.xml
Nói tóm lại, bạn có thể thêm một bản cập nhật bố cục trong app / design / frontend / yourpackage / etc / theme.xml. Ưu điểm là bạn có quyền kiểm soát thứ tự tải của các cập nhật bố cục của bạn. Trước khi Magento 1.9 local.xml luôn được tải lần cuối và không thể thực hiện các chỉ thị bố cục sau nó.
Tôi không sử dụng local.xml nữa để sửa đổi chủ đề dành riêng cho dự án. Tôi nghĩ local.xml chỉ được sử dụng vì lý do tương thích ngược (trong 1.9 trở lên) vì không còn sử dụng nó nữa. Local.xml cũng bị loại bỏ trong Magento 2 ( https://github.com/magento/magento2/issues/1037 ).
Nguồn: https://erfanimani.com/dont-use-local-xml/