Magento - 覆盖块

时间:2015-09-05 20:51:14

标签: php magento override

我试图做一个覆盖一个块的例子。我以为我正确地遵循了说明,但没有任何反应。某处有错误吗?

要覆盖的块是 Mage_Page_Block_Html_Head 。 我在config.xml中重写了块:

<config>
   <blocks>
        <html>
            <rewrite>
                <head>Hello_Mymodule_Block_Head</head>
            </rewrite>
        </html>
    </blocks>    
 </config>

然后我创建了Head.php:app - code - local - Hello - Mymodule - Block - Head.php。

我将原始Head.php中的getTitle方法复制到我的新Head.php中,然后我只是输入“die()”来查看它是否有效:

class Hello_Mymodule_Block_Head extends Mage_Page_Block_Html_Head {
public function getTitle()
{
    die();
    if (empty($this->_data['title'])) {
        $this->_data['title'] = $this->getDefaultTitle();
    }
    return strtoupper(htmlspecialchars(html_entity_decode(trim($this->_data['title']), ENT_QUOTES, 'UTF-8')));
}}      

什么都没发生,我不知道如何搜索错误。我的模块处于活动状态并正常工作(它显示在管理员中)

1 个答案:

答案 0 :(得分:1)

您必须重写块Mage_Page_Block_Html_Head,但您要重写的是Mage_Block_Html_Head,它根本不存在。 将confix xml更改为

<config>
   <blocks>
        <page>
            <rewrite>
                <html_head>Hello_Mymodule_Block_Head</html_head>
            </rewrite>
        </page>
    </blocks>    
 </config>