- 浏览: 73914 次
- 性别:
- 来自: 上海
最新评论
1.模块配置文件
基本的模块配置文件有2个,一个是etc下面的config.xml, 还有一个在app/etc/modules下面,以YourPackageName_ YourModuleName.xml命名。
Magento里面的模块都属于不同的包(Package), 每个包又分属于不同的代码池中(Code Pool)。Magento 中的 代码池有core, community和local三个,一般开发的模块放在local代码池中。 也就是在local下的以包名字命名的文件夹中。local/PackageName/ModuleName。
先看下YourPackageName_ YourModuleName.xml。这个配置文件内容很少,主要说明模块所在的代码池和依赖的模块信息。以下PackgeName 用P简写, MouldeName 用 M来简写。
将这个xml配置文件保存到app/etc/modules目录下,文件名为P_M.xml。
进入Magento的管理后台,刷新缓存,然后在 System/Configuration/Advanced下面应该可以看到刚才创建的模块P_M, 并且为Enable, 虽然这时候模块所在的文件夹还没有创建。
我们要创建一个名为HelloWorld的模块,包名为Fox。配置文件名为Fox_HelloWorld.xml。(注意文件名的大小写,在不同的配置文件里一定要一致,否则在linux主机下会出现问题)。
2.新建模块
2.1 创建模块文件夹结构
在app/code/local下面,完整的模块包括以下文件夹, 以HelloWorld模块为例:
每个文件夹下面可能还会根据需要创建子文件夹,后面会详细说明。
2.2 模块基本配置文件config.xml
config.xml是Magento模块的核心,里面配置了块(Block)、控制器( Controllers)、模型(Model)等模块部件,同时也体现的Magento MVC的思想。先看一下 config文件的基本结构。
确保上面的config.xml保存在etc目录下。
3. 创建控制器类
3.1 控制器类
控制器类用于处理请求,并调用Block对象通过模板文件phtml产生最终的结果。简单起见,我们的第一个例子没有使用template, 而是仅仅简单的输出helloworld。
将上面的文件命名为IndexController.php并保存在controllers目录下。
现在访问 http://localhost/helloworld/index/index,将会看到输出hello world。
URL分别对应 http://localhost/{frontName}/{controllerName}/{actionName}
如果直接访问 http://localhost/{frontName} 则访问默认的IndexController 和 IndexAction
所以也可以访问 http://localhost/helloworld, 也会输出相同的结果。
所有的前端控制器都继承自Mage_Core_Controller_Front_Action, 有2个很重要的方法preDispatch和postDispatch分别在请求分发前和分发后调用。
--未完待续--
基本的模块配置文件有2个,一个是etc下面的config.xml, 还有一个在app/etc/modules下面,以YourPackageName_ YourModuleName.xml命名。
Magento里面的模块都属于不同的包(Package), 每个包又分属于不同的代码池中(Code Pool)。Magento 中的 代码池有core, community和local三个,一般开发的模块放在local代码池中。 也就是在local下的以包名字命名的文件夹中。local/PackageName/ModuleName。
先看下YourPackageName_ YourModuleName.xml。这个配置文件内容很少,主要说明模块所在的代码池和依赖的模块信息。以下PackgeName 用P简写, MouldeName 用 M来简写。
<?xml version="1.0"?> <config> <modules> <P_M> <active>true</active> <codePool>local</codePool> </P_M> </modules> </config>
将这个xml配置文件保存到app/etc/modules目录下,文件名为P_M.xml。
进入Magento的管理后台,刷新缓存,然后在 System/Configuration/Advanced下面应该可以看到刚才创建的模块P_M, 并且为Enable, 虽然这时候模块所在的文件夹还没有创建。
我们要创建一个名为HelloWorld的模块,包名为Fox。配置文件名为Fox_HelloWorld.xml。(注意文件名的大小写,在不同的配置文件里一定要一致,否则在linux主机下会出现问题)。
<?xml version="1.0"?> <config> <modules> <Fox_HelloWorld> <active>true</active> <codePool>local</codePool> </Fox_HelloWorld> </modules> </config>
2.新建模块
2.1 创建模块文件夹结构
在app/code/local下面,完整的模块包括以下文件夹, 以HelloWorld模块为例:
--Fox --HelloWorld +Block +controllers +etc +Helper +Model +sql
每个文件夹下面可能还会根据需要创建子文件夹,后面会详细说明。
2.2 模块基本配置文件config.xml
config.xml是Magento模块的核心,里面配置了块(Block)、控制器( Controllers)、模型(Model)等模块部件,同时也体现的Magento MVC的思想。先看一下 config文件的基本结构。
<?xml version="1.0"?> <config> <modules> <Fox_HelloWorld> <!--模块的完整名称,和配置文件一致 --> <version>0.1.0</version> </Fox_HelloWorld> </modules> <global> <blocks> <!-- 块声明 --> </blocks> <helpers> <!--帮助类声明 --> </helpers> </global> <frontend> <!--前台路由配置 --> <routers> <helloworld> <!—模块路由的标签名 --> <use>standard</use> <args> <module> Fox_HelloWorld </module> <frontName>helloworld</frontName> <!—前台请求的名称 --> </args> </helloworld> </routers> </config>
确保上面的config.xml保存在etc目录下。
3. 创建控制器类
3.1 控制器类
控制器类用于处理请求,并调用Block对象通过模板文件phtml产生最终的结果。简单起见,我们的第一个例子没有使用template, 而是仅仅简单的输出helloworld。
class Fox_HelloWorld_IndexController extends Mage_Core_Controller_Front_Action { public function indexAction(){ echo ‘hello world!’; } }
将上面的文件命名为IndexController.php并保存在controllers目录下。
现在访问 http://localhost/helloworld/index/index,将会看到输出hello world。
URL分别对应 http://localhost/{frontName}/{controllerName}/{actionName}
如果直接访问 http://localhost/{frontName} 则访问默认的IndexController 和 IndexAction
所以也可以访问 http://localhost/helloworld, 也会输出相同的结果。
所有的前端控制器都继承自Mage_Core_Controller_Front_Action, 有2个很重要的方法preDispatch和postDispatch分别在请求分发前和分发后调用。
--未完待续--
发表评论
-
Magento随机生成sales rule的coupon code
2013-01-02 22:09 2283在Magento中可以使用SalesRule模块下的Mage_ ... -
Magento 后台配置中实现日期选择 (Date picker)
2012-12-28 15:07 2521首先,创建一个新的Form Field 类: <?p ... -
获得指定customer 购买的产品数据
2011-12-10 20:54 1386获得指定customer 购买的产品信息,如果是configu ... -
将缺货产品放在产品列表后面
2011-12-10 20:50 1410Rewrite Mage_Catalog_Model_Laye ... -
Mac Lion上安装配置Nginx PHP PHP-FPM
2011-12-10 16:01 8047<!--?xml version="1.0&q ... -
How to customize Magento as CMS system (1.5.0 CE)
2011-03-06 22:42 1075Before install: 1. Go to app/et ... -
How to redirect to another url in block or template
2011-02-25 13:47 1143In Block class: public funct ... -
Use call back function to proccess Magento large collection
2011-01-19 12:58 956$orders = Mage::getModel('sal ... -
How to remove unnecessary columns in Magento collection
2011-01-19 12:56 1143$orders = Mage::getModel('sal ... -
How to calculate currency according to reward points rate in Magento
2011-01-13 18:03 1343$rate = Mage::getModel('enter ... -
Magento二次开发的利器:Rewrite
2010-12-08 17:15 2747Magento是一个十分优秀的电子商务系统,但是有时候我们需要 ... -
增加Magento后台管理功能三:在后台设置(System/Configuration)中加入自定义设置
2010-11-30 16:17 1984在模块的etc目录下新建system.xml配置文件,内容如下 ... -
增加Magento后台管理功能二:开发后台Controller
2010-11-30 16:02 2717在模块的controllers目录下创建Adminhtml目录 ... -
增加Magento后台管理功能一:在后台管理界面加入菜单
2010-11-30 15:47 4551在模块的etc目录下增加adminhtml.xml配置文件,用 ... -
Magento在CMS Page中增加用户信息变量
2010-11-26 10:14 2840Magento的cms页面和static block页面中可以 ... -
Magento根据不同的浏览器自动切换package或 theme
2010-11-26 10:05 2095在后台设置中: System > Configurat ... -
Magento让后台数据列表中的action列链接在新窗口打开
2010-11-08 16:56 1198'actions' => array( ... -
Maegen获得后台当前用户的信息
2010-11-08 16:53 951$admin = Mage::getSingleton(' ... -
Magento中用子类替换Block
2010-10-15 10:47 1868Step 1:创建一个新的Module Step 2: 编辑模 ... -
Magento中添加带有选项的属性
2010-10-14 14:49 1468下面的代码为Customer实体添加了性别属性,有两个可选值 ...
相关推荐
Magento模块开发是构建在Magento电子商务平台上的核心技术之一,它为开发者提供了强大的可扩展性和定制能力。Magento模块设计遵循一种模块化架构,使得系统能够通过添加、修改或禁用独立的模块来实现功能的增删改查...
4. 模块开发:深入探讨如何创建和开发Magento模块,模块是Magento扩展功能的主要方式,包括如何注册和启用模块,如何定义配置文件、数据模型、控制器和视图文件等。 5. 主题和样式定制:指导开发者如何通过修改或...
#### 一、理解Magento模块的概念 在Magento中,所有功能性的扩展都是通过模块来实现的。这些模块可以是官方提供的,也可以是第三方开发的,甚至是自己定制开发的。一个模块就是一个相对独立的功能集合,它可以包含...
3. **模块开发**:掌握创建新模块的步骤,包括编写XML配置文件、模型、资源模型、控制器、视图文件(PHTML、XML、CSS、JS)和语言包。理解模块的命名空间和版本控制对整个项目的重要性。 4. **模板与主题**:...
API接口的开发允许外部系统与Magento进行交互,提供了数据交换的途径,这对于集成第三方服务或实现数据同步非常重要。 Magento开发还涉及模板和主题的创建和修改,以及区块的利用来增加定制内容。掌握这些开发知识...
1. Magento 2后端开发:涉及后台管理功能、模块开发、数据库操作、API集成、安全性设置、性能优化、主题和布局定制等。 2. Magento 2认证专业开发者考试准备:了解考试形式和时间管理,掌握实际问题解决的技巧,...
深入理解Magento-第一章 – Magento强大的配置系统 深入理解Magento-第二章 – Magento请求分发与控制器 深入理解Magento-第三章 – 布局,块和模板 深入理解Magento-第四章 – 模型和ORM基础 深入理解...
- **Jamie Huskisson**:一位来自英国诺丁汉的年轻自由职业开发者,拥有多年的Magento开发经验。他曾在早期Beta版本时就开始接触Magento,并为众多知名企业如NHS、Volkswagen等提供过开发服务。此外,他还担任过开发...
magento模块开发实例 magento扩展开发的概念相对统一,名称叫Module。从访问入口看,Magento扩展一般有两种展现形式: 1. 作为一个完整的页面,从浏览器地址栏访问新增的模块。 2. 作为页面的一个片段,插接到现已...
开发书籍].Packt.Magento.1.3.PHP.Developer's.Guide.(2010).pdf`:这是一本专门针对Magento开发者的指南,涵盖了Magento 1.3版本的开发技术,包括主题定制、模块开发和性能优化等内容。 - `magento1.4.1(zh_cn)....
* 最后,你可以开发新模块以向站点添加新的自定义功能,或扩展现有的 Magento 或第三方模块提供的功能。 前端开发先决条件 * 安装有效的 Magento 并在设备上安装以下浏览器版本:店铺前台和后台管理员,Internet ...
在本文中,我们将深入探讨Magento 1.9.2.0版本,这是一个针对网站开发和商务独立站的老版64位系统。 首先,让我们了解Magento 1.9.2.0的核心特性: 1. **强大的商品管理**:Magento 1.9.2.0允许商家管理大量商品,...
- **描述典型的Magento模块结构**:一个标准的Magento模块由多个部分组成,包括配置文件(`config.xml`)、模型类(Models)、控制器(Controllers)、块类(Blocks)等。每个模块通常位于其对应的命名空间下。 - ...
总的来说,实现Magento1产品预览功能需要结合前端技术(如HTML、CSS、JavaScript)和后端的Magento架构知识,包括模块开发、模板修改、事件处理和布局更新。这不仅提升了用户体验,也是Magento电商平台优化的重要一...
1. **API集成**:Bizzy-Magento2可能包含用于与Laravel接口的API,允许更灵活的数据交换和第三方服务集成。 2. **性能优化**:利用Laravel的缓存机制(如Redis或Memcached)和数据库查询优化,提升Magento2的性能。 ...
- **第1章:Magento简介** 本章首先介绍了Magento的历史背景和发展历程,然后详细阐述了Magento的核心概念和技术架构。此外,还探讨了Magento与其他电子商务平台的区别以及其优势所在。 - **第2章:环境搭建与安装...
1. **app**:这是Magento的核心部分,包含所有自定义和核心模块。`app/code`目录下有三个子目录——`Community`、`Core`和`Local`,分别用于存储社区扩展、核心代码和本地化修改。`app/design`用于存放主题和模板...
- Magento的Rewrite机制允许重写核心或第三方模块的类,实现功能的覆盖或扩展。 11. **EAV模型**: - EAV模型使Magento能处理各种复杂的数据结构,如商品的多属性、变种等。 12. **添加Top Link**: - Magento...
**4.9 第一个控制器** - 创建控制器通常涉及到定义一个PHP类,该类继承自Magento的核心控制器类,并实现特定的功能。 **4.10 布局文件的配置** - 布局文件主要用于定义页面元素的组织结构,通常是一个XML文件,...
- 它的模块化架构使得扩展和定制变得容易,通过Magento Connect可以方便地安装第三方插件。 - 强大的SEO功能,帮助商家提高在线可见性。 - 提供多种支付和配送选项,适应不同的商业需求。 - 客户分组和忠诚度...