2012-03-05 40 views
6

我嘗試從magento重寫核心文件。 不知何故,它不會覆蓋代碼。我嘗試覆蓋函數getProduct()。Magento:重寫塊不起作用

Tipfix /座/產品/ 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> 

我知道知道我做錯了。

Gr。 Lex

+0

僅供參考,除非您創建塊類,否則類羣「」是不必要的。 – benmarks 2012-03-05 13:06:19

回答

9

您的課程是WP_Tipfix_Block_Catalog_Product_View這意味着它必須位於文件夾WP/Tipfix/Block/Catalog/Product/View.php中。您必須將您的產品目錄移動到一個名爲Catalog的新目錄中,或將您的類(類和XML)重命名爲WP_Tipfix_Block_Product_View。我建議移動文件。

+0

感謝您的信息! – Lexperts 2012-03-05 12:32:44

3

請​​3210內容的模塊改變這一點,我相信它應該工作: -

<?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> 

希望它能幫助。


更新: -的評論,我覺得我應該提到的是,OP也必須使用該解決方案由在他answer提到最多。所以OP將需要聯合努力來解決他的問題。

+1

謝謝你解決了這個問題。大! – Lexperts 2012-03-05 12:30:27

+0

歡呼聲,最歡迎! – 2012-03-05 12:33:19

+0

此解決方案*無法*已根據OP的原始代碼解決了問題。 – benmarks 2012-03-05 13:07:15