我在before_body_end中添加了一个自定义块。为什么不显示?

时间:2012-11-21 14:38:37

标签: magento-1.7

我创建了一个新的自定义块并将其添加到before_body_end块。 当我查看我的页面的源代码时,我的自定义块中没有任何内容。 你能帮我调试吗?

在我的模块布局XML文件中:

<layout version="0.1.0">
    <default>
        <reference name="before_body_end">
            <block type="tankchat/js_view" name="tankchat.js.view" as="tankchat" template="tankchat/js/view.phtml" />
        </reference>
    </default>
</layout>

我的Company_Tankchat_Block_Js_View类没有什么特别的,只有一些“getData”函数。

我的phtml位于app/design/frontend/company/default/template/tankchat/js/view.phtml,是的,它是好的包装和主题等。

我是否需要在echo $this->getChildHtml('tankchat')处添加?我想我没有,因为我的自定义块被传递给before_body_end,但也许我错了?

任何帮助都将受到高度赞赏!

1 个答案:

答案 0 :(得分:0)

好的,我终于发现了什么问题:

我在声明布局文件时犯了一个错误,需要在frontend节点中完成,而不是在global中完成! :

<config>
    <frontend>
        <layout>
            <updates>
                <tankchat>
                    <file>tankchat.xml</file>
                </tankchat>
            </updates>
        </layout>
    </frontend>
</config>

该应用程序甚至没有打开该文件......

但我也忘了在模块配置文件中声明块前缀:

<config>
    <global>
        <blocks>
            <tankchat>
                <class>Company_Tankchat_Block</class>
            </tankchat>
        </blocks>
    </global>
</config>

autoloader找不到块类...

希望这将有助于将来的某个人......