Tóm tắc
- Sự khác biệt giữa
getChildHtml
và làgetBlockHtml
gì? - Làm thế nào tôi có thể có được tiêu đề cms / khối trong mẫu?
Về cơ bản, tôi đã thay thế chân trang bằng chân trang của mình và tự đặt chân <?= $this->getChildHtml('...') ?>
này Điều này không hoạt động cho đến khi tôi sử dụng : <?= $this->getBlockHtml('...') ?>
.
Bố cục XML:
<layout>
<default>
<block type="core/template" name="custom_footer" as="footer" template="page/html/footer.phtml">
<block type="cms/block" name="child_1">
<action method="setBlockId"><block_id>footer_child_1</block_id></action>
</block>
</block>
</layout>
</default>
Mẫu (không hoạt động):
<footer>
<div class="row">
<div class="col-sp4"><?= $this->getChildHtml('child_1') ?></div>
</div>
</footer>
Mẫu (Hoạt động):
<footer>
<div class="row">
<div class="col-sp4"><?= $this->getBlockHtml('child_1') ?></div>
</div>
</footer>
Giải pháp:
Trước hết tôi phải ghi đè chân trang bên trong local.xml
bằng cách:
<default>
<block type="core/template" template="page/html/custom_footer.phtml" name ="custom_footer" as "footer" />
</default>
Tôi phải thêm con (để getChildHtml()
đi làm):
<reference name="footer">
<block type="cms/block" name="child_1">
<action method="setBlockId"><block_id>footer_child_1</block_id></action>
</block>
</reference>
<block type="cms/block" name="child_1">
có phải là một đứa trẻ củafooter
khối không? Trong trường hợp nào tại sao `getChildHtml ('child_1') không hoạt động?