php – 覆盖Magento动作

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 覆盖Magento动作脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
有很多次我想要做的就是覆盖控制器上的特定动作,但不是整个事情.在大多数情况下,我只是覆盖整个控制器,但我想知道是否有更好的方法? Magento有没有办法只是覆盖控制器中的单个动作,而原始控制器和其他动作一样?

例:

class Mage_Core_AwesomeController extends Mage_Core_Controller_Front_Action {

    //has url of awesome/index
    public function indexAction(){
        //Some Awesome code
    }

    //has url of awesome/torewrITe
    public function torewriteAction(){
        //Some Awesome code
    }

}

class Local_Core_AwesomeController extends Mage_Core_AwesomeController {

    //has url of awesome/torewrite
    public function torewriteAction(){
        //Some Awesome override code
    }

}

所以url awesome / torewrite将转到Local_Core_AwesomeController,但url awesome / index将转到Mage_Core_AwesomeController.

这个例子显然是捏造的,它只是为了展示我理论上想要的东西.所以请不要试图纠正这个例子,只是展示一下覆盖一个动作的最佳方法.

我认为重要的是要注意我不想重写网址,只是覆盖操作.如果没有重写网址,这可能是不可能的?只是当重写url时,布局中的标签会发生变化,我宁愿保持相同.

在Local / Core / etc / config.XMl中,在路由器中定义要覆盖的控制器.
<config>
    ...
    <frontend> // Use <admin> for backend routers
        <routers>
            <core> // <-- this is the router name
                <args>
                    <;modules>
                        <local_core before="Mage_Core">Local_Core</local_core>
                    </modules>
                </args>
            </core>
        </routers>
    </frontend>
    ...
</config>

Magento现在将检查Mage / Core / controllers之前的本地/核心/控制器,以查找以core(路由器名称)开头的URL路径.您上面的PHP类已经正确了.

这只是在this page中左右轻轻暗示,它说:

脚本宝典总结

以上是脚本宝典为你收集整理的php – 覆盖Magento动作全部内容,希望文章能够帮你解决php – 覆盖Magento动作所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。