Magento产品目录ProductController重写

时间:2013-09-11 10:26:47

标签: php magento magento-1.7

我尝试用模块覆盖magento Mage \ Catalog \ controllers \ ProductController.php。在我的模块中,我试试这个:

\等\ config.xml中

<global>
    <rewrite>        
        <aion_fbpage_catalog_productcontroller>
            <from><![CDATA[#^catalog/product/#]]></from> <!-- Mage_Catalog_ProductController  -->
            <to>fbpage/catalog_product/</to> <!-- Aion_FbPage_Catalog_ProductController  -->
        </aion_fbpage_catalog_productcontroller>
    </rewrite>
</global>
<frontend>
    <routers>
        <fbpage>
            <use>standard</use>
            <args>
                <module>Aion_FbPage</module>
                <frontName>fbPage</frontName>
            </args>
        </fbpage>
    </routers>
</frontend>

\控制器\目录\ ProductController.php

<?php
require_once "Mage/Catalog/controllers/ProductController.php";

class Aion_FbPage_Catalog_ProductController extends Mage_Catalog_ProductController
{
    // My override stuff
}

当我尝试访问我的产品时,看看重写的内容,我收到了这个错误:

  

致命错误:在非对象上调用成员函数getMetaTitle()   在   C:\ XAMPP \ htdocs中\ igneum \程序\代码\核心\法师\目录\块\产品\ View.php   在第56行

如果我在课堂上什么都不做的话,我会得到同样的错误信息

1 个答案:

答案 0 :(得分:4)

你可以使用如下

编辑您Package/Module/etc/config.xml

<?xml version="1.0"?>
<config>
... Your Other config here ....
   <frontend> 
        <routers> 
          <catalog> 
             <args> 
             <modules> 
                <Package_Catalog before="Mage_Catalog">Package_Catalog</Package_Catalog>
             </modules> 
             </args> 
         </catalog> 
       </routers> 
   </frontend> 
</config>

现在您的控制器已准备就绪。

include(Mage::getBaseDir()."/app/code/core/Mage/Catalog/controllers/ProductController.php");
class Package_Catalog_ProductController extends Mage_Catalog_ProductController
{
      public function viewAction(){
             echo __METHOD__;
      }
}
?>