簡體   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