`
天梯梦
  • 浏览: 13763345 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

magento 模块重写

 
阅读更多

以重写 app/code/core/Mage/Catalog/Block/Navigation.php 为例

 

1. 复制Mage (不推荐使用 )

 

First add a new Navigation.php file you can edit to your local folder that Magento will reference instead of the original.

 

Copy the original found here:  app/code/core/Mage/Catalog/Block/Navigation.php

Recreate this folder structure in your app/code/local folder. So go to app/code/local, make a Mage folder, inside it make a Catalog folder, inside that make a Block folder, and inside that place your copy of Navigation.php, eg:  app/code/local/Mage/Catalog/Block/Navigation.php

 

Second, add some code to the app/etc/local.xml file, inside of the global tags.

<blocks> 
    <catalog>
        <rewrite>
            <navigation>Mage_Catalog_Block_Navigation</navigation>                
        </rewrite>
    </catalog>
</blocks> 
 

2. 重写 (推荐 )

 

If you want to override a core controller on Magento in order to add other customActions, it is really quick and easy to do so. Here are the files that you have to take into account:

  • The block you want to override : /app/code/core/Mage/Catalog/Block/Navigation.php
  • The xml file to enable the module: /app/etc/modules/[namespace] _All.xml
  • The block xml file definition : /app/code/local/[namespace] /Catalog/etc/config.xml
  • The overridden block : /app/code/local/[namespace] /Catalog/Block/Navigation.php

本文中所有 [namespace] 将被取代为我自己实例的名称 “App”,如果你想要用其他命名空间,可以替换 [namespace]

 

First of all, you have to enable the module on the /app/etc/modules/ directory. This file would be App _All.xml and inside that:  

<?xml version="1.0"?>
<config>
     <modules>
        <App_Catalog>
            <active>true</active>
            <codePool>local</codePool>
            <!--depends>
                <Mage_Core/>
            </depends-->
        </App_Catalog>
     </modules>
</config>
 

开启depends的话,表示依靠core class,

 

Now it’s time to create the /app/code/local/App /Catalog/etc/config.xml file that will override the core block:

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <App_Catalog>
            <version>0.1.0</version>
        </App_Catalog>
    </modules>
    <global>
        <blocks>
            <catalog>
                <rewrite>
                        <navigation>App_Catalog_Block_Navigation</navigation>
                </rewrite>
            </catalog>
        </blocks>
    </global>
</config>

 

注意:<navigation>App_Catalog_Block_Navigation</navigation> 中 App_Catalog_Block_Navigation 不能随便起名,一定要形成正确完整的路径, [namespace] _Catalog_Block_Navigation => [namespace]/Catalog/Block/Navigation.php

 

Finally, we can create the class that will add/change actions to the core block: app/code/local/App/Catalog/Block/Navigation.php

<?php
class App_Catalog_Block_Navigation extends Mage_Catalog_Block_Navigation
{
    protected function _renderCategoryMenuItemHtml($category, $level = 0, $isLast = false, $isFirst = false,
        $isOutermost = false, $outermostItemClass = '', $childrenWrapClass = '', $noEventAttributes = false, $showText = false)
    {
       /* .... */
    }
}
 

注意: class是继承了原来的Mage_Catalog_Block_Navigation

 

注意:如果要看效果,要清理cache先,或者在后台 disable cache

 

 

 

 

分享到:
评论

相关推荐

    magento2-urlrewriteimporter:一个简单的Magento模块,将允许您使用CSV文件将自定义URL重写导入到管理员

    Turiknox URL重写导入器概述一个简单的Magento模块,将允许您使用CSV文件将自定义URL重写导入管理员。要求Magento 2.1.x安装n 将模块的内容复制到您的Magento根目录中。 通过命令行启用模块: / path / to / ...

    Magento-中文开发教程

    深入理解Magento-第九章 – 修改、扩展、重写Magento代码 深入理解Magento-第十章 – 数据操作&数据收集器 在Magento教程中用到的模块 Configviewer Layoutviewer Helloworld with Custom System Config 其他...

    magento结构和原理

    magento结构和原理 magento结构和原理是magento...通过了解magento的文件目录结构、URL路由与分发器、模板调用对应的JS、CSS、图片、重写核心模块等知识点,可以更好地理解magento的工作机理和开发magento模块和主题。

    magento footer no cache,不缓存页面底部footer部分

    6. **第三方扩展**:市场上有一些专门处理这类问题的第三方模块,它们提供了更灵活的缓存控制选项。 无论选择哪种方法,都需要确保在不影响网站性能的前提下进行。同时,为了保持良好的用户体验,应该只对确实需要...

    magento学习重点

    首先,调整Magento模块的位置是一项基本操作。在示例中,`newsletter.xml`文件用于定义订阅邮件窗口在页面中的位置。`&lt;reference&gt;`标签指示模块应插入的容器,如`left`或`right`。要移动模块,只需更改`name`属性...

    magento 中文开发手册

    要理解这一系统,你需要创建并查看一个简单的模块(Magento 中称为 module),这将帮助你直观感受配置文件的工作方式。 模块是 Magento 的基本构建单元,它们由 PHP 和 XML 文件构成,用于扩展或修改系统功能。例如...

    Magento 常用方法和插件

    关于插件,Magento 1.x中的“重写”机制和Magento 2.x中的“插件(Interceptors)”允许开发者在不修改核心代码的情况下改变系统行为。例如,如果你想要改变默认的结账流程,你可以创建一个新的控制器或服务合同插件...

    Magento Category Filter Url静态化插件

    这通常涉及到Magento的URL重写管理模块,插件可能需要监听或扩展Magento的重写过程,添加自定义规则。 2. **路由处理**:静态URL需要被正确解析回实际的筛选条件。插件需要设置自定义控制器和动作来处理这些静态URL...

    magento中文开发教程

    1. **Magento架构与组件**:Magento采用模块化架构,由多个相互独立的模块组成,每个模块负责特定的功能。了解模块结构、布局更新、事件观察者模式以及依赖注入等核心概念,是开发Magento应用的基础。 2. **Magento...

    magento-finder:Magento Finder 扩展了 Symfony Finder 组件并查找 Magento 模块; 模型、控制器、助手等; 重写、cron 作业和事件声明等等

    magento-finder ##注意:此工具目前正在开发中 Magento Finder 扩展了 Symfony Finder 组件并查找特殊的 Magento 文件... 更进一步,它会在模块或应用程序级别找到重写、cron 作业和声明的事件等。 它使用来处理 AST。

    magento入门文档

    Magento的配置系统是其核心组成部分之一,通过一套复杂的机制管理着系统的各个部分,包括模块、模型、类、模板等。配置系统的核心在于能够通过配置文件的方式对系统进行高度定制。 为了创建一个新的模块,你需要先...

    magento使用和开发

    库存管理是电子商务的一个重要方面,Magento允许建立库存管理默认选项,进行产品批量更新,以及通过URL重写来优化搜索引擎的表现。 为了使在线商店做好销售准备,Magento提供了详细的结账流程设置,包括本地化设置...

    Magento-中文开发教程(技术重点2)

    通过在模块的配置文件中指定类和方法的重写规则,可以覆盖 Magento 的默认行为。这种方法非常强大,但也需要谨慎使用,以免引入难以追踪的问题。 #### 数据操作与数据收集器 在 Magento 中,数据操作是一个常见的...

    30天通过magento认证考试

    - **URL重写机制**:探讨了Magento如何管理和重写URL。 - **请求路由**:解析了请求是如何被路由到正确的控制器和动作的。 - **模块初始化步骤**:描述了模块加载的过程及其初始化阶段的工作原理。 - **设计和...

    magento 1.4稳定版下载

    对于开发者来说,Magento 1.4提供了丰富的API和模块化结构,使得扩展和定制变得容易。你可以开发自定义模块来实现特定功能,或者利用已有的社区扩展来增强商城的功能。同时,Magento有一套强大的主题和模板系统,让...

    Magento-URLCaseInsensitive:覆盖核心 URL 区分大小写功能的 magento 模块

    4. **代码兼容性**:考虑到Magento的更新和版本兼容性,模块的代码需要遵循Magento的开发最佳实践,如使用Magento的依赖注入(Dependency Injection)和模块化结构,以确保与不同版本的Magento协同工作。 5. **测试...

    magento外贸商城系统源码(含支付插件)

    9. **SEO友好**: Magento 针对搜索引擎优化进行了深思熟虑的设计,支持元标签编辑、URL重写、友好的URL结构等功能,有助于提升商品在搜索结果中的排名。 10. **安全性**: 作为一款专业的电子商务平台,Magento重视...

    magento模板 仿focalprice-King115

    4. **模块化设计**:Magento支持模块化开发,每个功能模块都有自己的控制器、模型、视图和模板。模板中的内容可能涉及到多个模块的配合,如产品展示、购物车、结账等。 5. **响应式设计**:考虑到现代用户多设备...

    magento环境检测

    4. **Web服务器配置**:检查Apache或Nginx的配置文件,确保正确设置了Magento所需的模块和重写规则。 5. **权限检查**:确保Magento的根目录和子目录具有正确的文件权限(通常为755)和所有权(通常为web服务器用户...

    Magento2开发者指南

    - **Apache**:配置Apache以支持Magento 2所需的特性,如URL重写、SSL等。 **生产环境设置**:生产环境通常需要更高的稳定性和安全性。推荐使用Amazon Web Services (AWS)来部署Magento 2。 - **介绍AWS**:AWS...

Global site tag (gtag.js) - Google Analytics