Synopsis
- Quelle est la difference entre
getChildHtml
etgetBlockHtml
? - Comment puis-je obtenir le titre cms / block dans le modèle?
Je l' ai essentiellement remplacé le pied avec mon pied de page et mettre ma propre <?= $this->getChildHtml('...') ?>
Cela n'a pas fonctionné jusqu'à ce que je: <?= $this->getBlockHtml('...') ?>
.
Disposition 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>
Modèle (ne fonctionne pas):
<footer>
<div class="row">
<div class="col-sp4"><?= $this->getChildHtml('child_1') ?></div>
</div>
</footer>
Modèle (travaux):
<footer>
<div class="row">
<div class="col-sp4"><?= $this->getBlockHtml('child_1') ?></div>
</div>
</footer>
Solution:
Tout d'abord, j'ai dû remplacer le pied de page à l'intérieur de mon local.xml
par:
<default>
<block type="core/template" template="page/html/custom_footer.phtml" name ="custom_footer" as "footer" />
</default>
J'ai dû ajouter mes enfants (pour getChildHtml()
pouvoir travailler):
<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">
est-ce un enfant dufooter
bloc? Dans ce cas, pourquoi `getChildHtml ('child_1') ne fonctionne-t-il pas?getChildHtml
ne fonctionne pas parce que la page de mise en page (3columns.phtml par exemple) affiche toujours le bloc de pied de page par défaut<?php echo $this->getChildHtml('footer') ?>
. Ai-je raison? Je tire dans le noir ici parce que je ne sais pas à quoi ressemble votre page de mise en page, mais c'est la première chose que je vérifierais. Essayez de le changer<?php echo $this->getChildHtml('custom_footer') ?>
et voyez si vous pouvez l'utilisergetChildHtml
.