Tôi là người dùng Magento front-end, đã xây dựng khá nhiều chủ đề của riêng mình và tôi muốn hiểu định dạng khối XML của Magento tốt hơn ...Magento XML sử dụng trước/sau để đặt khối hầu như không bao giờ hoạt động
tôi thường sử dụng một tập tin local.xml
để thao tác tất cả mọi thứ, tôi có thể xác định một khối như sau:
<cms_index_index>
<reference name="root">
<block type="core/template" name="example_block" as="exampleBlock" template="page/html/example-block.phtml"/>
</reference>
</cms_index_index>
Điều này sẽ tạo ra một khối trên trang chủ (cms_index_index
) và kể từ khi khối được tạo ra một cấp dưới root
, tôi thường sẽ gọi khối bằng cách thêm:
<?php echo $this->getChildHtml('exampleBlock') ?>
... đến 1column.phtml
(hoặc 2columns-left
/right.phtml
, 3columns.phtml
v.v.). Khối có thể được đặt trên bất kỳ trang nào bằng cách thay thế cms_index_index
cho thẻ trang thích hợp.
tôi xem công cụ như sau suốt các tập tin XML lõi, và trong hướng dẫn:
<reference name="root">
<block type="core/template" name="example_block" before="content" template="page/html/example-block.phtml"/>
</reference>
content
là một khối là một phần của cấu trúc trang chung magento và, từ những gì tôi hiểu, before="content"
nên đặt nó nơi bạn mong đợi, mà không cần phải sử dụng getChildHtml('exampleBlock')
, cho đến nay rất tốt ... tuy nhiên, trước/sau khi hầu như không bao giờ có vẻ làm việc cho tôi, và tôi thường xuyên tìm thấy bản thân mình để phương pháp getChildHtml như sao lưu, mà không phải luôn luôn lý tưởng và có nghĩa là chỉnh sửa nhiều tệp .phtml hơn mức cần thiết.
Tôi đã thử:
<reference name="root">
<block type="core/template" name="example_block" before="content" template="page/html/example-block.phtml"/>
</reference>
Không có gì xuất hiện ...
<reference name="root">
<block type="core/template" name="example_block" after="header" template="page/html/example-block.phtml"/>
</reference>
Vẫn không có gì .... Tôi cũng ý thức được sử dụng before="-"
hoặc after="-"
để đặt một cái gì đó trước khi tất cả mọi thứ trong vòng đó là khối cha. Tôi thỉnh thoảng có một số may mắn với điều đó, nhưng nói chung chỉ bị lẫn lộn và thất vọng.
Tôi đã googled tất cả các nơi cho 'magento xml trước/sau khi không làm việc' và bắt đầu tự hỏi nếu nó chỉ cho tôi điều này xảy ra ... bất cứ ai có thể giải thích khi tôi có thể và không thể sử dụng trước/sau vị trí khối? Có gì sai với các ví dụ trên?
Tôi đang ở magento 1.7.0.2 (mới nhất có sẵn tại thời điểm niêm yết)
Động lực chính của việc này là để giảm số lượng các tập tin lõi .phtml tôi cần phải chỉnh sửa chỉ để thêm một getChildHtml()
, vì vậy nếu có cách khác (XML) để giải quyết vấn đề này, tôi muốn biết ...
tất cả bộ nhớ cache bị tắt:/ –