สรุป
- ความแตกต่างระหว่าง
getChildHtml
และgetBlockHtml
คืออะไร? - ฉันจะรับชื่อ cms / block ในเทมเพลตได้อย่างไร
ฉันได้แทนที่ส่วนท้ายด้วยส่วนท้ายของฉันและตั้งค่าของฉันเอง<?= $this->getChildHtml('...') ?>
สิ่งนี้ไม่ทำงานจนกว่าฉันจะใช้: <?= $this->getBlockHtml('...') ?>
.
โครงร่าง 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>
เทมเพลต (ใช้งานไม่ได้):
<footer>
<div class="row">
<div class="col-sp4"><?= $this->getChildHtml('child_1') ?></div>
</div>
</footer>
แม่แบบ (งาน):
<footer>
<div class="row">
<div class="col-sp4"><?= $this->getBlockHtml('child_1') ?></div>
</div>
</footer>
สารละลาย:
ก่อนอื่นฉันต้องลบล้างส่วนท้ายข้างในlocal.xml
โดย:
<default>
<block type="core/template" template="page/html/custom_footer.phtml" name ="custom_footer" as "footer" />
</default>
ฉันต้องเพิ่มลูก ๆ ของฉัน (เพื่อgetChildHtml()
การทำงาน):
<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">
เป็นลูกของfooter
บล็อกหรือไม่ ในกรณีใดเหตุใด `getChildHtml ('child_1') ไม่ทำงาน