在Magento中,是否可以仅通过xml向标头添加静态块?
我试图尽可能只使用local.xml自定义一个主题。我想在不修改header.phtml的情况下向标头添加一个静态块。此代码适用于内容区域,但不适用于标题:在Magento中,是否可以仅通过xml向标头添加静态块?,magento,Magento,我试图尽可能只使用local.xml自定义一个主题。我想在不修改header.phtml的情况下向标头添加一个静态块。此代码适用于内容区域,但不适用于标题: <default> <reference name="content"> <block type="cms/block" name="how-it-works-button"> <action method="setBlockId"><bl
<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>
工作原理
有人知道为什么吗?我以为我所需要的只是将“内容”改为“标题”,但当我这样做时,什么都没有显示
谢谢你的帮助 在块标记中添加output=“toHtml”。我认为只是这样。内容块是一个特殊的块,称为
核心/文本列表
块(PHP类Mage\u核心/文本列表
)。这些块将自动渲染添加到其中的所有子块
另一方面,头
块是页面/html\u头
块(PHP类Mage\u页面\u块\u html\u头
)。此块类继承自Mage\u Core\u block\u Template
,使其成为Core/Template
块。如果相应的phtml
Template请求块,则模板块将仅渲染子块。因此,通过将块添加到标题,您只完成了所需工作量的一半您需要创建一个自定义phtml
模板
最简单的方法(post1.4.1.1
是在您自己的主题中,在
template/page/html/header.phtml
然后在这个文件的末尾添加
<?php echo $this->getChildHtml('how-it-works-button'); ?>
假设您已通过布局xml将块添加到标题块,这将呈现您的模板。请尝试此操作
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('how-it-works')->toHtml() ?>
在header.phtml
这正是我一直在寻找的东西。然而,当我使用它时,静态块出现在页面底部,甚至在页脚下方。Alan Storm的评论向我解释了原因,但感谢您的有用实验!谢谢,我现在明白了。正如另一条评论所建议的,我尝试添加output=“toHtml”但这只会导致内容出现在页面的最底部。我现在看到这是因为Magento没有模板来锚定html。感谢您的详细解释。