使用模块

时间:2015-07-05 14:10:43

标签: php magento

不确定我在这里做错了什么..但我正在尝试使用自定义模块重写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();

没有返回任何内容。它看起来不像我有权访问该功能。想法?谢谢你的帮助。

1 个答案:

答案 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";
     }
}

现在您可以访问您的测试方法。