У меня проблема, когда я не могу добавить дочерний блок в XML-файл макета. Что я делаю не так в mylayout.xml
том, что не могу загрузить abc
? У меня есть следующие файлы.
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 ?>
...
источник
my layout.xml
которых используется тот же метод, и все они работают.onestepcheckout_index_index
загружается после моего. Поэтому в моем обновлении макета использовался дескриптор, которого еще не существует.Если вы хотите добавить новый блок, вы должны ссылаться на структурные блоки, а не на блоки контента. Попробуйте что-то вроде этого:
источник
content
загрузки моего блока, но я не могу контролировать, где размещается блок, если я ссылаюсь на `content.<?php echo $this->getChildHtml('abc') ?>
content
размещает блок автоматически и неecho $this->getChildHtml('abc')
имеет никакого эффекта. Поправьте меня если я ошибаюсь.