简体   繁体   中英

Magento: Block override stops phtml from displaying

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM