我在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
答案 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
。