由magento重写功能所想到的:
1.在etc/config.xml中
第一层为<config>
第二层为<module>,<global>,<admin>,<adminhtml>,<frontend>,<default>等。
2.重写内容
1>block--在config.xml文件中block重写的配置
<global>
<blocks>
<模块名>
<rewrite>
<重写的半类名>类名全名
如:
<global>
<blocks>
<catelog>
<rewrite>
<breadcrumbs>App_Catalog_Block_Breadcrumbs</breadcrumbs>
2>controller---在config.xml文件中的配置
<global>
<rewrite>
<你的控制器的名>
<from><![CDATA[#^/模块名/controller/#]]> </from>
<to>/shopping/cart/</to>
例如:
<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 -->
<App_Shopping_cart>
<from><![CDATA[#^/checkout/cart/#]]></from>
<!--
- Shopping module matches the router frontname below - checkout_cart
matches the path to your controller Considering the router below,
"/shopping/cart/" will be "translated" to
"/App/Shopping/controllers/CartController.php" (?)
-->
<to>/shopping/cart/</to>
</App_Shopping_cart>
</rewrite>
<!--参考-->
<blocks>
<catalog><class>Mage_Catalog_Block</class></catalog>
</blocks>
</global>
3> controll文件的修改:
首先
# 控制器不会自动加载,所以我们需要包含文件,这里与区块(Block)不一样
然后extends这个包含的文件。
重写方法。
4>修改视图文件:
<app_shopping_cart_index>
<update handle="checkout_cart_index"/>
</app_shopping_cart_index>
访问shopping/cart/index==checkout/cart/index!
5>重写Magento模型
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<App_Customer>
<version>0.1.0</version>
</App_Customer>
</modules>
<global>
<models>
<customer>
<rewrite>
<customer>App_Customer_Model_Customer</customer>
</rewrite>
</customer>
</models>
</global>
</config>
class App_Customer_Model_Customer extends Mage_Customer_Model_Customer {
// 重写已存在的方法
public function validate() {
// Define new validate rules. From now magento call this validate method instead of existing method
//return $errors;
return true;
}
// 你还可以创建新的方法
public function newMethod() {
// function logic
}
}
6>重写Magento的模型资源
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<App_Customer>
<version>0.1.0</version>
</App_Customer>
</modules>
<global>
<models>
<customer>
<rewrite>
<customer>App_Customer_Model_Customer</customer>
<address>App_Customer_Model_Address</address>
</rewrite>
</customer>
<customer_entity>
<rewrite>
<address>App_Customer_Model_Entity_Address</address>
</rewrite>
</customer_entity>
</models>
</global>
</config>
class App_Customer_Model_Entity_Address extends Mage_Customer_Model_Entity_Address {
protected function _afterSave(Varien_Object $address) {
// Write your code
}
}
分享到:
相关推荐
Magento模块开发教程.pdf
magento学习模块开发教程 magento二次开发Magento功能列表
学习Magento模块开发必看,适合初学者
如何在Magento创建一个简单的“Hello World”模块?
从入门开始讲解magento的框架结构,然后教你开发一个简单的hello world模块接着是讲解magento中的mvc和zend的区别,最后讲到了magneto的高级资源模型.
Turiknox URL重写导入器概述一个简单的Magento模块,将允许您使用CSV文件将自定义URL重写导入管理员。要求Magento 2.1.x安装n 将模块的内容复制到您的Magento根目录中。 通过命令行启用模块: / path / to / ...
深入理解Magento-第九章 – 修改、扩展、重写Magento代码 深入理解Magento-第十章 – 数据操作&数据收集器 在Magento教程中用到的模块 Configviewer Layoutviewer Helloworld with Custom System Config 其他...
如果你正在创建一个Magento的管理模块(学习创造Magento管理模块),那么你一定会被要求创建一个管理列表既Grid。创建列表,Magento新手程序员有点困难,但在本教程中,我们将创建一个网格在管理模块中最简单的方式...
Magento货运模块 Magento货运模块 Magento货运模块
GoogleShoppingApi, Magento模块 GoogleShoppingApi v2 GoogleShoppingAPI v2 更新到重要 !如果你从早期版本更新到 0.2.4,请注意类别id已经更改。 有一个 shell script 插件,可以帮助你将旧的类别id映射到新的...
magento支付宝模块,用于magento 商城程序的国内的支付宝接口
magento首页展示用户设置的新产品模块列表
magento 批量导入多图模块, magento 插件
列出其他已安装模块的 Magento 模块。 ###模块列表 模块列表模块为您提供了启用和禁用模块的列表,以及一些用于调试您自己的模块安装问题的简单工具。 这里的模块指的是 Magento 代码模块,它与 Magento Connect ...
magento2-blog-module-tutorial, 关于如何从头开始创建 magento 2模块的教程,带有测试 2博客模块教程这个模块是 WIP,它将被更新为每个教程我目前正在写。介绍如何从头创建完整功能的Magento 2模块。 即使有测试,...
Webjump Magento模块样板 帮助开发Magento模块事实版本:0.0.1要求PHP> = 5.2.0 法师核心兼容性Magento> = 1.4安装说明使用上面显示的密钥通过Magento Connect安装扩展名,或将所有文件复制到文档根目录中。...
magento2-force-login, Magento 2强制登录模块 如果页面没有标记为 visitable,访问者会被重定向到登录页面。 插件功能:在允许访客访问你的网页和目录之前,强制你的访客先登录( 或者 register )管理:管理区域中的...