我尝试用模块覆盖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行
如果我在课堂上什么都不做的话,我会得到同样的错误信息
答案 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__;
}
}
?>