以重写 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

magento 模块重写相关推荐

  1. Magento模块解析

    Magento 模块 模块( module )是 Magento 的核心.站点上的任何一个动作( action ),无论是在前台和还是在后台的每一个操作都是通过模块来实现的.模块是可以视为一个容器,它 ...

  2. Magento 模块详解

    模块(module)是Magento的核心.站点上的任何 一个动作(action),无论是在前台和还是在后台的每一个操作都是通过模块来实现的.模块是可以视为一个容器,它可包 含下面这几项:设置(set ...

  3. Magento模块开发之数据库SQL操作方法说明

    今天主要来看Magento中的Mysql4/Resource(资源) 如何对数据库进行操作, 来执行更为复杂的 sql 语句. 在Magento中Model 通常都会继承 Mage_Core_Mode ...

  4. magento邮件使用php,Magento模块示例发送邮件

    今天写一个magento模块,主要的功能是实现前台用户利用表单给管理员发送邮件的一个功能,功能很简单,但在这个模块中,可以了解到一些有关magento的一些细节,比如,如何获取系统标签id,如何使用m ...

  5. Magento Url重写修改

    查看Url重写列表,在后台的Catalog > Manage URL Rewrites访问这个列表.点击每个重写旁边的Edit就可以修改这个重写的信息. • Type – 选择System选项将 ...

  6. 基于吉日嘎拉的OA协同办公模块重写

    这一个月的业余时间主要是在忙这个重构的事情,将吉日嘎拉自带的文档管理.公司公告.留言板.通讯录.周任务.考勤,全部重新建表,重构代码和UI. 目前根据中小企业常用的日常办公需要,搞定了公告栏.任务中心 ...

  7. 深入理解Magento-第九章-修改、扩展、重写Magento代码

    重写Magento模块(Module) 第一步,你需要创建属于你自己代码的命名空间,例如Wemvc,App等,为了方便与大家分享代码,我将空间命名为App . app/code/core/commun ...

  8. 怎样改动、扩展并重写Magento代码

    作为一个开发人员的你,肯定要改动Magento代码去适应你的业务需求,可是在非常多时候我们不希望改动Magento的核心代码,这里有非常多原因, 比如将来还希望升级Magento.还想使用很多其它的M ...

  9. magento php 所需模块,magento博客 - Magento2 创建基本模块

    我们将在Magento 2中创建一个简单的模块,完成后,模块将在自定义前端路由的内容中显示"Hello world!". 先决条件 毋庸置疑,您需要最新的Magento 2版本 在 ...

最新文章

  1. 数字图像处理2:传统插值
  2. MyBatis批量增删改的另外一种思路(推荐)
  3. hadoop生态搭建(3节点)
  4. srm linux字符界面,如何使用srm安全的删除Linux中的文件
  5. hive 创建/删除/截断 表(翻译自Hive wiki)
  6. 【python数据挖掘课程】二十一.朴素贝叶斯分类器详解及中文文本舆情分析
  7. 易混淆知识点(1):word-wrap和word-break傻傻分不清楚
  8. qt linux 网络聊天室,QT tcp网络聊天室群聊的实现
  9. win10 账户密码忘记的解决办法
  10. 一文搞懂数据结构之 递归-八皇后问题
  11. 力扣刷题 DAY_64 回溯
  12. 支付宝直付通实现账单结算(分账)功能完整Demo
  13. 地铁AFC付出体式格局近况及移动付出安好性探究
  14. windows在当前文件夹下快速使用控制台
  15. 解决vue中无法取得methods方法中的return值,获得是undefined
  16. python(第七天)
  17. 9flash:个人网站商业化之蜕
  18. 网页设计期末作业ppt+源码(免费获取)
  19. 结构化数据丨Python爬虫基础入门系列(7)
  20. Linux驱动学习之什么是驱动?

热门文章

  1. 求10000以内n的阶乘(信息学奥赛一本通-T1172)
  2. 57 SD配置-科目分配-定义客户账户分配组
  3. 1 MM配置-企业结构-定义-定义评估级别
  4. 书籍《循环经济之道》-观后感-2021年12月
  5. MFC工程按USB插口显示所有USB设备及插口(包括安卓)
  6. Html转快应用方法,卡片跳转快应用指定页面,如何点返回直接退出快应用回到卡片...
  7. eclipselink mysql_Eclipselink更新现有表
  8. PermissionError: [Errno 13] Permission denied:
  9. 如何在JS判断是否为IE浏览器
  10. js对象(Object)和字符串(String)互转 - 代码篇