J'ai un problème où je n'arrive pas à ajouter un bloc enfant dans un fichier XML de mise en page. Qu'est-ce que je fais mal mylayout.xml
parce que je ne peux pas charger abc
? J'ai les fichiers suivants.
onestepcheckout.xml
<onestepcheckout_index_index>
...
<reference name="content">
<block type="onestepcheckout/checkout" name="onestepcheckout.checkout" template="onestepcheckout/checkout.phtml">
...
<!-- this child block can be loaded -->
<block type="block/class" template="path/to/template/template.phtml" name="qwe" as="qwe" />
...
</block>
</reference>
...
</onestepcheckout_index_index>
mylayout.xml
<onestepcheckout_index_index>
<reference name="onestepcheckout.checkout">
<!-- this child block can not be loaded -->
<block type="block/class" template="path/to/template/template.phtml" name="abc" as="abc" />
</reference>
</onestepcheckout_index_index>
checkout.phtml
...
<?php echo $this->getChildHtml('abc') // doesn't work ?>
<?php echo $this->getChildHtml('qwer') // works ?>
...
la source
my layout.xml
qui utilisent la même méthode, et elles fonctionnent toutes.onestepcheckout_index_index
est chargée après la mienne. Par conséquent, ma mise à jour de la mise en page faisait référence à une poignée qui n'existe pas encore ..Si vous souhaitez ajouter un nouveau bloc, vous devez référencer les blocs structurels, pas les blocs de contenu. Essayez plutôt quelque chose comme ceci:
la source
content
charge mon bloc, mais je ne peux pas contrôler où le bloc est placé si je me réfère au `contenu.<?php echo $this->getChildHtml('abc') ?>
content
place automatiquement le bloc etecho $this->getChildHtml('abc')
n'a aucun effet. Corrige moi si je me trompe.