Ich habe ein Problem, bei dem ich scheinbar keinen untergeordneten Block in eine Layout-XML-Datei einfügen kann. Was mache ich falsch, mylayout.xml
weil ich nicht laden kann abc
? Ich habe die folgenden Dateien.
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 ?>
...
quelle
my layout.xml
, die dieselbe Methode verwenden und alle funktionieren.onestepcheckout_index_index
geladen , und die Erweiterung, die geladen wird, wird nach meiner geladen. Daher bezog sich mein Layout-Update auf ein Handle, das noch nicht existiert.Wenn Sie einen neuen Block hinzufügen möchten, sollten Sie auf Strukturblöcke verweisen, nicht auf Inhaltsblöcke. Probieren Sie stattdessen so etwas aus:
quelle
content
Laden meines Blocks, aber ich kann nicht steuern, wo der Block platziert wird, wenn ich auf `content verweise.<?php echo $this->getChildHtml('abc') ?>
content
der Block durch Referenzieren automatisch platziert undecho $this->getChildHtml('abc')
hat keine Auswirkung. Korrigiere mich, wenn ich falsch liege.