page.xml中定义的块不会呈现

时间:2010-12-02 15:57:35

标签: php xml layout magento

我在Magento中创建了一个包含一些JS的自定义块。我希望将它放在输出HTML中的<head>之后。 Block看起来像这样:


<?php if($this->isHomePage()): ?>
<script language='JavaScript1.1' type='text/javascript'>ns_loadingtime1=(new Date()).getTime()</script>
<?php endif ?>

在我的模板的page.xml文件中,我有这个:


(...)
<block type="page/html" name="root" output="toHtml" template="page/2columns-left.phtml">
            <block type="baobaz_tags/widget_nedstattag_metadata" name="baobaz_nedstattag_head" as="nedstattagHead" before="head" template="baobaz/tags/widget/nedstattag/homepage/meta.phtml" />
            <block type="page/html_head" name="head" as="head">

在输出HTML中,我的自定义块(baobaz_nedstattag_head)不存在。你知道我能做什么来按照我的意愿来渲染它吗?

编辑感谢Fabrizio的评论,我能够做对。因为在他的方法中我得到了我的块的双重输入。所以我按照上面的说明离开了page.xml,并在调用$this->getChildHtml('nedstattagHead')块之前添加了1column.phtml head

1 个答案:

答案 0 :(得分:1)

您可以尝试在头部块定义中移动块定义:

<block type="page/html_head" name="head" as="head">
     <block type="baobaz_tags/widget_nedstattag_metadata" name="baobaz_nedstattag_head" as="nedstattagHead" template="baobaz/tags/widget/nedstattag/homepage/meta.phtml"  before="-" />

 ... missing code of head block definition ...
</block>

确保在echo $this->getChildHtml('nedstattagHead')文件中添加page/html/head.phtml