I'm working on a Magento project and I've overridden the Page Html Header block because I need to change how the getLogoSrc()
function (which I found in app/code/core/Mage/Page/Block/Html/Header.php). However I seem to have done something incorrectly as header.phtml is no longer being drawn.
app/code/local/NameSpace/Customize/Block/Html/Header.php
class NameSpace_Page_Block_Html_Header extends Mage_Page_Block_Html_Header
{
...Code...
}
app/code/local/NameSpace/Customize/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>
app/etc/modules/NameSpace_Customize.xml
<config>
<modules>
<NameSpace_Customize>
<active>true</active>
<codePool>local</codePool>
</NameSpace_Customize>
</modules>
</config>
When I remove everything inside of the <global>
tags in config.xml the header is displayed correctly.
This is my first Magento project so I may have gone about this the wrong way. Any input would be appreciated.
Thanks
The block class name must match the folder it is in.
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
}
Make the equivalent change in config.xml too. Also the <helpers>
node must be inside the <global>
node.
<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>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.