Могу ли я добавить в заголовок статический блок в Magento только по xml? - PullRequest
4 голосов
/ 04 августа 2011

Я пытаюсь настроить тему, используя только local.xml, когда это возможно. Я хочу добавить статический блок в заголовок без изменения header.phtml. Этот код отлично работает для области содержимого, но не для заголовка:

<default>
    <reference name="content">
        <block type="cms/block" name="how-it-works-button">
            <action method="setBlockId"><block_id>how-it-works</block_id></action>
        </block>
    </reference>
</default>

Кто-нибудь знает почему? Я думал, что все, что мне нужно, это поменять «контент» на «заголовок», но при этом ничего не появляется.

Спасибо за вашу помощь!

Ответы [ 3 ]

4 голосов
/ 06 августа 2011

Блок content - это специальный блок, известный как блок core/text_list (класс PHP Mage_Core_Block_Text_List).Эти блоки будут автоматически выводить любые дочерние блоки, добавленные к ним.

Блок header, с другой стороны, является блоком page/html_header (класс PHP Mage_Page_Block_Html_Header).Этот класс блоков наследуется от Mage_Core_Block_Template, что делает его блоком core/template.Шаблонные блоки будут только отображать субблоки, если их соответствующий шаблон phtml запрашивает блок.Таким образом, добавляя свой блок в заголовок, вы делаете только половину работы, которая вам нужна. Вам нужно будет создать собственный phtml шаблон .

Самый простой способ сделать это (пост 1.4.1.1 - создать в вашей собственной теме файл на * 1020).*

template/page/html/header.phtml

И затем в конце этого файла добавьте

<?php echo $this->getChildHtml('how-it-works-button'); ?>

Предполагая, что вы добавили блок в блок заголовка через макет xml, это должно привести к визуализации вашего шаблона.

1 голос
/ 31 октября 2012

Пожалуйста, попробуйте это

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('how-it-works')->toHtml() ?>

И этот код в header.phtml

0 голосов
/ 05 августа 2011

add output = "toHtml" в теге блока. Я думаю, что это только то.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...