2012-03-05 16 views
6

Próbuję przepisać plik core z Magento. W jakiś sposób nie zastępuje kodu. Próbuję nadpisać funkcję getProduct().Magento: Block Rewrite nie działa

Tipfix/pustak/Produkt/view.php

<?php 

class WP_Tipfix_Block_Catalog_Product_View extends Mage_Catalog_Block_Product_View 
{ 

    public function getProduct() 
    { 

     if (!Mage::registry('product') && $this->getProductId()) { 
      $product = Mage::getModel('catalog/product')->load($this->getProductId()); 
      Mage::register('product', $product); 
     } 

     //return Mage::registry('product'); 
    } 
} 

Tipfix/etc/config.xml

<blocks> 
    <WP_Tipfix> 
     <class>WP_Tipfix_Block</class> 
    </WP_Tipfix> 
    <catalog> 
     <rewrite> 
      <product_view>WP_Tipfix_Block_Catalog_Product_View</product_view> 
     </rewrite> 
    </catalog> 
</blocks> 

muszę znać pojęcia co robię źle.

Gr. Lex

+0

FYI grupa "" jest niepotrzebna, chyba że tworzysz klasy bloków. – benmarks

Odpowiedz

9

Twoja klasa to WP_Tipfix_Block_Catalog_Product_View, co oznacza, że ​​musi znajdować się w folderze WP/Tipfix/Block/Catalog/Product/View.php. Musisz albo przenieść katalog Product do nowego katalogu o nazwie Catalog w tym miejscu, albo zmienić nazwę klasy (zarówno klasy, jak i XML) na WP_Tipfix_Block_Product_View. Zalecam przeniesienie pliku.

+0

Dziękujemy za informacje! – Lexperts

3

Proszę zmienić zawartość config.xml swojego modułu do tego, a jestem pewien, że to powinno działać: -

<?xml version="1.0" encoding="UTF-8"?> 
<config> 
    <modules> 
     <WP_Tipfix> 
      <version>1.0.0</version> 
     </WP_Tipfix> 
    </modules> 

    <global> 
     <blocks> 
      <wptipfix> 
       <class>WP_Tipfix_Block</class> 
      </wptipfix> 

      <catalog> 
       <rewrite> 
        <product_view>WP_Tipfix_Block_Catalog_Product_View</product_view> 
       </rewrite> 
      </catalog> 
     </blocks> 
    </global> 
</config> 

Nadzieję, że to pomaga.


UPDATE: - Po komentarzu Ben „s, czuję, że powinienem wspomnieć, że PO musi również skorzystać z rozwiązania, jak wspomniano przez Max w jego answer. W związku z tym OP będzie wymagał połączonego wysiłku, aby rozwiązać problem.

+1

Dziękuję, że naprawili problem. Wspaniały! – Lexperts

+0

Pozdrowienia i bardzo mile widziane! –

+0

To rozwiązanie * nie mogło * rozwiązać problemu na podstawie oryginalnego kodu OP. – benmarks

Powiązane problemy