简体   繁体   English

Magento产品目录ProductController重写

[英]Magento Catalog ProductController rewrite

I try to override the magento Mage\\Catalog\\controllers\\ProductController.php with a module. 我尝试用模块覆盖magento Mage \\ Catalog \\ controllers \\ ProductController.php。 In my module i try this: 在我的模块中我试试这个:

\\etc\\config.xml \\等\\ 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>

\\controllers\\Catalog\\ProductController.php \\控制器\\目录\\ ProductController.php

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

class Aion_FbPage_Catalog_ProductController extends Mage_Catalog_ProductController
{
    // My override stuff
}

And when i try to reach my product, to see what the rewrite does, i get this error: 当我尝试访问我的产品时,看看重写的内容,我收到此错误:

Fatal error: Call to a member function getMetaTitle() on a non-object in C:\\xampp\\htdocs\\igneum\\app\\code\\core\\Mage\\Catalog\\Block\\Product\\View.php on line 56 致命错误:在第56行的C:\\ xampp \\ htdocs \\ igneum \\ app \\ code \\ core \\ Mage \\ Catalog \\ Block \\ Product \\ View.php中的非对象上调用成员函数getMetaTitle()

I get the same error message, if i do nothing in my class 如果我在课堂上什么也没做,我会得到同样的错误信息

you can use like below 你可以使用如下

Edit you Package/Module/etc/config.xml 编辑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>

Now your controller already ready. 现在您的控制器已准备就绪

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM