Magento:阻止覆盖阻止phtml显示

时间:2014-08-11 22:14:07

标签: php xml magento override

我正在开发一个Magento项目并且我已经覆盖了Page Html Header块,因为我需要更改getLogoSrc()函数(我在app / code / core / Mage中找到的函数) /Page/Block/Html/Header.php)。但是,由于header.phtml不再被绘制,我似乎做错了。

应用程序/代码/本地/名称空间/定制/块/ HTML / header.php文件

class NameSpace_Page_Block_Html_Header extends Mage_Page_Block_Html_Header
{
    ...Code...
}

应用程序/代码/本地/名称空间/定制的/ etc / config.xml中

<config>
    <modules>
        <NameSpace_Customize>
            <version>0.1.0</version>
        </NameSpace_Customize>
    </modules>
    <helpers>
        <customize>
            <class>NameSpace_Customize_Helper</class>
        </customize>
    </helpers>
    <global>
        <blocks>
            <page>
                <rewrite>
                    <html_header>NameSpace_Page_Block_Html_Header</html_header>
                </rewrite>
            </page>
        </blocks>
    </global>
</config>

应用程序的/ etc /模块/ NameSpace_Customize.xml

<config>
    <modules>
        <NameSpace_Customize>
            <active>true</active>
            <codePool>local</codePool>
        </NameSpace_Customize>
    </modules>
</config> 

当我删除config.xml中<global>标记内的所有内容时,标题会正确显示。

这是我的第一个Magento项目,所以我可能以错误的方式解决了这个问题。任何输入将不胜感激。

由于

1 个答案:

答案 0 :(得分:3)

块类名必须与它所在的文件夹匹配。

class NameSpace_Customize_Block_Html_Header extends Mage_Page_Block_Html_Header
{
    // do not write any more in here until you've tested at least once
}

在config.xml中进行等效更改。此外,<helpers>节点必须位于<global>节点内。

<config>
    <modules>
        <NameSpace_Customize>
            <version>0.1.0</version>
        </NameSpace_Customize>
    </modules>
    <global>
        <helpers>
            <customize>
                <class>NameSpace_Customize_Helper</class>
            </customize>
        </helpers>
        <blocks>
            <page>
                <rewrite>
                    <html_header>NameSpace_Customize_Block_Html_Header</html_header>
                </rewrite>
            </page>
        </blocks>
    </global>
</config>