我想重寫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()方法時也不會改變。出了什麼問題?
你重寫看起來很好。 您的模塊是否處於活動狀態? - 檢查是否在*系統 - >配置 - >高級 - >禁用模塊輸出中看到它* 是否有任何其他模塊擴展相同的塊? - 您可以在產品的view.phtml模板中啓用來自* System - > Configuration - > Developer - > Debug *的模板路徑提示和模塊名稱提示(或者將Mage :: log(get_class($ this))' –
另外,正如我所看到的,您沒有「全局」節點的結束標記。 –
全局錯誤是一個錯字,感謝Mage :: log(get_class($ this)),它修復了它。問題是另一個插件已經擴展了Mage_Catalog_Block_Product_View。這是一箇舊的Yoast_MetaRobots插件,已棄用。我禁用了它,一切都被修復了。感謝你的回答! –