2015-09-05 4 views
0

Я пытаюсь сделать пример переопределения блока. Я думал, что правильно слежу за инструкциями, но ничего не происходит. Есть ошибка где-то?Magento - блок переопределения

Блок, подлежащий перезаписыванию, - Mage_Page_Block_Html_Head. Делаю рерайт блока в config.xml:

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

Затем я создаю Head.php в: приложение - код - местный - Привет - MyModule - Block - Head.php.

скопировать метод GetTitle из исходного Head.php в мой новый Head.php, то я просто положить в «фильеры()», чтобы увидеть, если он работает:

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

Вы должны переписать блок 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> 
+0

Фантастический, спасибо! Я не думал, что «Страница» - это блок, так как он содержит папку «blocks». Вы знаете логику этого? Является ли «Страница» блоком, даже если он находится за пределами папки с папками? – Galivan

+1

Страница - это имя модуля, и вы переписываете заголовок блока, который находится под папкой html. – rajatsaurastri

Смежные вопросы