繁体   English   中英

Magento-覆盖块

[英]Magento - override block

我试图做一个覆盖块的例子。 我以为我正确地遵循了说明,但是什么也没有发生。 哪里有错误?

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

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

然后在以下位置创建Head.php:应用-代码-本地-你好-Mymodule-块-Head.php。

我将getTitle方法从原始的Head.php复制到新的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')));
}}      

什么也没有发生,而且我不知道如何搜索错误。 我的模块处于活动状态并且正在工作(它显示在admin中)

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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