2015-01-11 39 views
0

我想重寫Mage_Catalog_Block_Product_View塊。如何用擴展名重寫Magento塊?

我創建這個文件:config.xml中

<?xml version="1.0" encoding="UTF-8"?> 
<config> 
    <modules> 
    <JB_CustomPrice> 
     <version>0.1.0</version> 
    </JB_CustomPrice> 
    </modules> 
    <global> 

<blocks> 
     <customprice> 
     <class>JB_CustomPrice_Block</class> 
     </customprice> 
     <catalog> 
     <rewrite> 
      <product_view>JB_CustomPrice_Block_Catalog_Product_View</product_view> 
     </rewrite> 
     </catalog> 
</blocks> 
</config> 

然後我在 創建塊/app/code/local/JB/CustomPrice/Block/Catalog/Product/View.php

<?php 
class JB_CustomPrice_Block_Catalog_Product_View extends Mage_Catalog_Block_Product_View 
{ 
    public function getJsonConfig() 
    { 
     return 'test'; 
    } 
} 
?> 

雖然產品視圖不會改變,甚至在我調用getProduct()方法時也不會改變。出了什麼問題?

+1

你重寫看起來很好。 您的模塊是否處於活動狀態? - 檢查是否在*系統 - >配置 - >高級 - >禁用模塊輸出中看到它* 是否有任何其他模塊擴展相同的塊? - 您可以在產品的view.phtml模板中啓用來自* System - > Configuration - > Developer - > Debug *的模板路徑提示和模塊名稱提示(或者將Mage :: log(get_class($ this))' –

+0

另外,正如我所看到的,您沒有「全局」節點的結束標記。 –

+0

全局錯誤是一個錯字,感謝Mage :: log(get_class($ this)),它修復了它。問題是另一個插件已經擴展了Mage_Catalog_Block_Product_View。這是一箇舊的Yoast_MetaRobots插件,已棄用。我禁用了它,一切都被修復了。感謝你的回答! –

回答

0

全局錯誤是一個錯字,通過使用Mage::log(get_class($this))解決,解決了它。問題是另一個插件已經擴展了Mage_Catalog_Block_Product_View。這是一箇舊的Yoast_MetaRobots插件,已棄用。我禁用了它,一切都被修復了。感謝你的回答!

+0

不客氣。 –