[英]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.