不确定我在这里做错了什么..但我正在尝试使用自定义模块重写Magento核心目录产品模型(app / code / Mage / Catalog / Model / Product)。请参阅以下代码:
app / code / local / James / Catalog / etc / config.xml:
<?xml version="1.0"?>
<config>
<modules>
<James_Catalog>
<version>1.0.1</version>
</James_Catalog>
</modules>
<global>
<models>
<catalog>
<rewrite>
<product>James_Catalog_Model_Product</product>
</rewrite>
</catalog>
</models>
</global>
</config>
app / code / local / James / Catalog / Model / Product.php:
<?php
require_once('Mage/Catalog/Model/Product.php');
class James_Catalog_Model_Product extends Mage_Catalog_Model_Product {
public function Test() {
return "Function Called";
}
}
app / etc / modules / James_Catalog.xml:
<?xml version="1.0"?>
<config>
<modules>
<James_Catalog>
<active>true</active>
<codePool>local</codePool>
</James_Catalog>
</modules>
</config>
然后,访问该功能:
$_product = Mage::getSingleton('catalog/product');
echo $_product->Test();
没有返回任何内容。它看起来不像我有权访问该功能。想法?谢谢你的帮助。
答案 0 :(得分:2)
你的模块应该如下......
配置文件app / code / local / James / TestCatalog / etc / config.etc
<?xml version="1.0"?>
<config>
<modules>
<James_TestCatalog>
<version>1.0.0</version>
</James_TestCatalog>
</modules>
<global>
<models>
<catalog>
<rewrite>
<product>James_TestCatalog_Model_Catalog_Product</product>
</rewrite>
</catalog>
</models>
</global>
</config>
使用此路径的模型文件:app / code / local / James / TestCatalog / Model / Catalog / Product.php
class James_TestCatalog_Model_Catalog_Product extends Mage_Catalog_Model_Product
{
//your code here ...
public function Test() {
return "Function Called";
}
}
现在您可以访问您的测试方法。