尝试在本地coodPool中覆盖magento新闻稿模块,但它无效。
应用的/ etc /模块/ Ebiz_Newsletter.xml
<?xml version="1.0"?>
<config>
<modules>
<Ebiz_Newsletter>
<active>true</active>
<codePool>local</codePool>
</Ebiz_Newsletter>
</modules>
</config>
应用\代码\本地\ EBIZ \通讯\等\ config.xml中
<config>
<modules>
<Ebiz_Newsletter> <!--Change Ebiz To Your Module NameSpace and Override to Your Module name-->
<version>0.1.0</version>
</Ebiz_Newsletter>
</modules>
<frontend>
<routers>
<newsletter>
<args>
<modules>
<Ebiz_Newsletter before="Mage_Newsletter">Ebiz_Newsletter</Ebiz_Newsletter><!--Change Ebiz To Your Module NameSpace and Override to Your Module name-->
</modules>
</args>
</newsletter>
</routers>
</frontend>
</config>
应用\代码\本地\ EBIZ \通讯\控制器\ SubscriberController.php
<?php
require_once 'Mage/Newsletter/controllers/SubscriberController.php';
class Ebiz_Newsletter_SubscriberController extends Mage_Newsletter_SubscriberController
{
/**
* New subscription action
*/
public function newAction()
{
echo 'In local codePool';
die;
}
}
你们能不能让我知道这个问题,因为我们无法找到问题。
答案 0 :(得分:4)
缺少xml版本和xml注释问题。
<?xml version="1.0" encoding="utf-8"?>
<config>
<modules>
<Ebiz_Newsletter>
<version>1.0.0</version>
</Ebiz_Newsletter>
</modules>
<frontend>
<routers>
<customnewsletter>
<use>standard</use>
<args>
<module>Ebiz_Newsletter</module>
<frontName>customnewsletter</frontName>
</args>
</customnewsletter>
</routers>
</frontend>
<global>
<rewrite>
<customnewsletter>
<from><![CDATA[#^/newsletter/subscriber/#]]></from>
<to>/customnewsletter/subscriber/</to>
</customnewsletter>
</rewrite>
</global>
</config>
请完全删除明文magento缓存。
控制器编码
<?php
require_once Mage::getModuleDir('controllers','Mage_Newsletter').DS.'SubscriberController.php';
class Ebiz_Newsletter_SubscriberController extends Mage_Newsletter_SubscriberController
{
public function newAction()
{
echo "test";
}
}
这个编码已经在我的系统上进行了测试。让我知道你有任何疑问。 同时从magento dir / var / cachea中删除缓存并清除浏览器缓存。