【问题标题】:Newsletter module not overriding in magento通讯模块在magento中没有覆盖
【发布时间】:2014-01-10 06:43:40
【问题描述】:

试图覆盖本地 coodPool 中的 magento 通讯模块,但它不起作用。

app/etc/modules/Ebiz_Newsletter.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Ebiz_Newsletter>
            <active>true</active>
            <codePool>local</codePool>
        </Ebiz_Newsletter>
    </modules>
</config> 

app\code\local\Ebiz\Newsletter\etc\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>

app\code\local\Ebiz\Newsletter\controllers\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;
    }

 }

你们能否请让我知道这个问题,因为无法找到问题。

【问题讨论】:

    标签: php magento magento-1.7


    【解决方案1】:

    缺少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 中删除缓存并清除浏览器缓存。

    【讨论】:

    • 谢谢,但仍然无法正常工作可能是模块之间存在一些冲突..有什么方法可以识别问题。
    • 是的,感谢它的工作,但无法获得如何..请您解释一下或提供有关此的任何指导..
    • 有些时候magento上版本rewrite因为一些系统问题一直没有工作。那么这种情况,我们使用了magento old rewrite编码。
    猜你喜欢
    • 2019-01-19
    • 1970-01-01
    • 2011-05-15
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多