Gần đây tôi đã bắt đầu sử dụng local.xmlnhư sân chơi của mình để bố trí. Trước khi tôi nghi ngờ sử dụng nó vì ... lý do.
Tôi đã thấy lợi thế của nó, nhưng bây giờ tôi đã va phải một bức tường gạch.
Trong catalog.xmltệp bố cục mặc định có một khối nhất định (tên không quan trọng). Sử dụng layout.xmltôi đã thêm một khối con chung vào nó nơi tôi muốn đặt các khối khác.
<reference name="not.important">
<block type="core/text_list" name="extra.left.menu" as="extra" />
</reference>
Càng xa càng tốt.
Nhưng bây giờ, tôi có một tiện ích mở rộng nên thêm khối con vào một phần mở rộng ở trên.
Nếu tôi thêm khối mới này bằng cách sử dụng local.xmlnó hoạt động độc đáo.
<block type="core/text_list" name="extra.left.menu" as="extra">
<block type="myextension/some_block" template="some/template.phtml" as="some_name" name="some_name" />
</block>
Nhưng tôi không muốn thực hiện thông qua local.xmlvì tiện ích mở rộng mới này có thể bị vô hiệu hóa trong tương lai. Nếu tôi thực hiện thông qua local.xmlvà vô hiệu hóa tiện ích mở rộng, nó sẽ tràn vào các tệp nhật ký của tôi vì khối này không còn tồn tại nữa.
Vì vậy, trong tập tin bố trí mở rộng của tôi, tôi thêm điều này:
<reference name="extra.left.menu">
<block type="myextension/some_block" template="some/template.phtml" as="some_name" name="some_name" />
</reference>
Nhưng cách này không hiệu quả. Tôi cảm thấy điều này xảy ra vì local.xmltệp được tải sau cùng và tôi không thể thêm phụ thuộc mô-đun để tệp bố cục tiện ích mở rộng của tôi sẽ được tải sau layout.xml.
Làm thế nào tôi nên giải quyết điều này? Tôi đã nhận được một cái gì đó sai?
Hoặc nếu tôi muốn nó như thế này, tôi phải sử dụng "cách cũ tốt" nhân bản catalog.xmltrong chủ đề của mình và thêm khối mới này vào catalog.xmlchủ đề của tôi?