`
cgzhang
  • 浏览: 73870 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Magento重载Controller的方法

阅读更多
重载购物车页
Mage_Checkout_CartController::indexAction().

第一步:建立相应的文件
app/code/local/MyNameSpace/MyModule/etc/config.xml
app/code/local/MyNameSpace/MyModule/controllers/Checkout/CartController.php
app/etc/modules/MyNameSpace_All.xml

第二步:编辑刚才新建的配置文件 etc/config.xml
写入如下的内容:
<?xml version="1.0"?>
<config>
    <modules>
        <MyNameSpace_MyModule>
            <version>0.1.0</version>
        </MyNameSpace_MyModule>
    </modules>
    <global>
        <!-- This rewrite rule could be added to the database instead -->
        <rewrite>
            <!-- This is an identifier for your rewrite that should be unique -->
            <!-- THIS IS THE CLASSNAME IN YOUR OWN CONTROLLER -->
            <mynamespace_mymodule_checkout_cart>
                <from><![CDATA[#^/checkout/cart/#]]></from>
                <!-- 
                    - mymodule matches the router frontname below 
                    - checkout_cart matches the path to your controller
                    
                    Considering the router below, "/mymodule/checkout_cart/" will be 
                    "translated" to "/MyNameSpace/MyModule/controllers/Checkout/CartController.php" (?)
                -->
                <to>/mymodule/checkout_cart/</to>
            </mynamespace_mymodule_checkout_cart>
        </rewrite>
    </global>
    <!-- 
    If you want to overload an admin-controller this tag should be <admin> instead,
    or <adminhtml> if youre overloading such stuff (?)
    -->
    <frontend>
        <routers>
            <mynamespace_mymodule>
                <!-- should be set to "admin" when overloading admin stuff (?) -->
                <use>standard</use>
                <args>
                    <module>MyNameSpace_MyModule</module>
                    <!-- This is used when "catching" the rewrite above -->
                    <frontName>mymodule</frontName>
                </args>
            </mynamespace_mymodule>
        </routers>
    </frontend>
</config>



第三步:编辑controllers/Checkout/CartController.php
写入如下:
<?php
# Controllers are not autoloaded so we will have to do it manually: 
//require_once 'Mage/Checkout/controllers/CartController.php';
//don’t break the magento compiler functionality and magento can find your class from compiled folder,better
require_once Mage::getModuleDir('controllers','Mage_Checkout').DS.'CartController.php';
class MyNameSpace_MyModule_Checkout_CartController extends Mage_Checkout_CartController
{
    # Overloaded indexAction
    public function indexAction()
    {
        # Just to make sure
        error_log('Yes, I did it!');
        parent::indexAction();
    }
}


第四步:编辑模块配置文件 app/etc/modules/MyNameSpace_All.xml
写入:
<?xml version="1.0"?>
<config>
    <modules>
        <MyNameSpace_MyModule>
            <active>true</active>
            <codePool>local</codePool>
        </MyNameSpace_MyModule>
    </modules>
</config>


第五步,编辑app/design/frontend/[myinterface]/[mytheme]/layout/checkout.xml
写入:
<mynamespace_mymodule_checkout_cart_index>
    <update handle="checkout_cart_index"/>
</mynamespace_mymodule_checkout_cart_index>


分享到:
评论

相关推荐

    magento 常用的方法总结

    magento 常用的方法总结 Magento 是一个功能强大且灵活的电子商务平台,提供了许多实用的方法和函数来帮助开发者快速开发电子商务网站。以下是 Magento 中的一些常用方法总结: 一、获取设计目录路径 在 Magento ...

    Magento 常用方法和插件

    在Magento中,常用方法主要包括模型(Model)、视图(View)、控制器(Controller)和模板(Template)等核心组件的交互。模型用于处理业务逻辑,视图负责展示数据,控制器接收并处理用户请求,而模板则包含HTML和...

    Magento-SMTP-Email

    Magento是开源的电子商务平台,广泛用于在线商店的建设。SMTP(Simple Mail Transfer Protocol)是用于发送电子邮件的标准协议。在Magento中,SMTP插件扮演着关键角色,它允许商家通过更安全、可靠的SMTP服务器发送...

    magento学习重点

    这涉及到Magento的事件观察者和插件机制,以及Controller类的重载。例如,如果要修改某个Controller的动作,可以创建一个新的Controller类,继承自原Controller,并覆盖需要修改的方法。这样, Magento的依赖注入会...

    magento结构和原理

    3.接着查找第三个login参数,系统会调用customer模块下的controller/AccountController.php文件的loginAction方法。 模板调用对应的JS、CSS、图片 模板是如何加载这些文件的呢?JS和CSS文件是通过app/design/...

    Laravel开发-magento

    5. **调用API方法**:现在可以使用PHP客户端调用Magento的API方法。例如,你可以获取所有产品信息,创建新订单,或者更新顾客数据。 6. **处理响应**:接收到API的响应后,通常是以XML格式返回,需要解析这些数据并...

    magento二次开发大全

    1. **MVC架构**:Magento基于Model-View-Controller(MVC)设计模式,这有助于将业务逻辑、数据处理和用户界面分离开来,提高代码的可维护性和可扩展性。`mvc流程.png`可能详细解释了模型、视图和控制器在Magento中...

    magento快速复制网站_magento_magento快速复制站_

    在电商领域,经常会有需求将一个已经建立并运行良好的Magento站点快速复制到另一个服务器,用于测试、备份或者创建一个新的独立站点。这个过程涉及到数据库的备份与还原、文件系统的复制以及配置的调整等多个步骤。 ...

    The Definitive Guide to Magento (Apress出品 Magento权威指南)

    - Magento采用了MVC(Model-View-Controller)架构模式,这种模式有助于提高代码的可读性和可维护性。 - 使用ZEND Framework作为底层框架,提供了强大的功能支持。 2. **模块化设计** - Magento的设计理念之一...

    深入学习Magento必读

    MVC,即Model-View-Controller,是软件设计模式中的经典架构,广泛应用于Web应用开发,包括Magento。在Magento中,MVC架构起到了组织代码、分离职责、提高可维护性和可扩展性的作用。 **Model(模型)**:模型层是...

    Magento深入理解Magento

    ### Magento深入理解——强大配置系统解析 #### 一、引言 Magento是一款极其灵活且功能丰富的电子商务平台,其核心竞争力之一在于其强大的配置系统。这一系统不仅为开发者提供了极高的定制化能力,还确保了平台的...

    Magento系统请求响应流程图

    Controller 根据 Layout 配置信息使用相应的 Layouts,Layout 是 Magento 的页面布局模板,负责将数据呈现给用户。 步骤 6:Layout 使用 Blocks Layout 使用 Blocks,Blocks 是 Layout 的骨架,负责将数据呈现给...

    magento-java-master.zip_magento

    你需要熟悉每个资源的端点、方法(GET、POST、PUT、DELETE)以及它们所需的参数。 5. **异常处理**:在与任何远程服务交互时,错误处理都是必不可少的。你需要捕获并处理可能的网络异常、认证异常、API调用异常等,...

    magento数据结构分析

    标题:“Magento数据结构分析” 描述:“Magento数据字典”提供了对Magento系统中各种数据库表的深入理解,这对于理解和优化Magento的性能至关重要。 一、Magento数据结构解析 Magento是一款功能强大的电子商务...

    开源网店系统 Magento

    1. **技术栈**:Magento基于PHP编程语言,使用MySQL数据库存储数据,采用Zend Framework作为基础架构,遵循MVC(Model-View-Controller)设计模式。 2. **性能优化**:Magento支持缓存管理,如页面缓存、块缓存等,...

    magento2 developers cookbook

    本书详细介绍了各种类型的产品(如简单产品、可配置产品、捆绑产品、分组产品、虚拟产品和可下载产品)的处理方法。除此之外,还包括了如何在产品页面上添加社交媒体按钮、嵌入HTML对象等更高级的技术。 在主题开发...

    magento模块组件或插件开发教程

    Magento采用的是MVC(Model-View-Controller)架构,这种设计模式在Web开发中广泛使用,它将业务逻辑、数据处理和用户界面分离,提高了代码的可维护性和复用性。此外,Magento还基于Zend Framework构建,利用其强大...

    最漂亮的magento模板1

    此外,还有Controller、Model、Block、Helper等子目录,它们分别对应了MVC(模型-视图-控制器)架构的不同部分。修改这里的代码可以深度定制Magento的功能。 "skin"目录则包含了所有前端展示相关的静态资源,如CSS...

Global site tag (gtag.js) - Google Analytics