第一个Magento扩展 【比原文有改进】

本文介绍Magento模块开发的基础知识,包括模块的基本结构、配置文件的作用以及如何通过URL访问自定义的模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文转自 网店专家网  cartz.com.cn 
http://www.cartz.com.cn/bbs/topic-t53.html 
------------------------------------------------------------------------------
【注意】
本地发布的app的路径  local
社区发布的app             community

【注意】
开发好模块后 ,清空缓存 并开启模块

我们先不管这些文件是干什么的,以后会解释。建立好这两个文件以后,你的模块的骨架就已经完成了。Magento已经知道你的模块存在,但是现在你的模块不会做任何事情。我们来确认一下Magento确实装载了你的模块

清空Magento缓存

在后台管理界面,进入 System->Configuration->Advanced

展开“Disable Modules Output”

确认“App_Configviewer”显示出来了

如果你看到“App_Configviewer”,那么恭喜你,你已经成功创建了你第一个Magento模块!



------------------------------------------------------------------------------

Magento扩展开发的概念相对统一,名称叫Module. 
从访问入口看,Magento扩展一般有两种展现形式: 
1. 作为一个完整的页面,从浏览器地址栏访问新增的模块。 
2. 作为页面的一个片段,插接到现已存在的网页上。 

下面的例子描述的第一种方式扩展出来的模块。 
案例假设公司名称为Cartz, 现在要为该公司编写一个旅馆预订的模块。 
步骤 I: 建立模块目录及文件结构骨架。 
目录结构 

Xml代码   收藏代码
  1. 【Magento】  
  2.    app  
  3.       - etc/  
  4.           - modules/  
  5.             Cartz_Hotel.xml  
  6.       - code/  
  7.           - local/  
  8.              - Cartz/  
  9.                 - Hotel/  
  10.                   - controllers                     
  11.                     MyController.php  
  12.                   - etc  
  13.                     config.xml  


步骤 II: Cartz_Hotel.xml 

Xml代码   收藏代码
  1. <config>  
  2.   <modules>  
  3.      <Cartz_Hotel>  
  4.         <active>true</active>  
  5.         <codePool>local</codePool>  
  6.         <version>0.1.0</version>  
  7.      </Cartz_Hotel>  
  8.   </modules>  
  9. </config>  


该文件的目的是让Magento系统载入该模块。<active>标签为true表示使该模块生效。注意标签<Cartz_Hotel>是命名约定,从而约束了你的代码应该放在app/code/Cartz/Hotel目录下。 

步骤 III: MyController.php 
Java代码   收藏代码
  1. <?php  
  2. class Cartz_Hotel_MyController extends Mage_Core_Controller_Front_Action{  
  3.     public function helloAction() {  
  4.       echo "My First Module";  
  5.     }  
  6. }  


类名构成: 前缀(Cartz_Hotel)加上文件的名字(IndexController),然后要求扩展基类 Mage_Core_Controller_Front_Action。 
稍后我们要看看如何调用indexAction方法来输出“My First Module”. 

步骤 IV: config.xml 
  

Xml代码   收藏代码
  1. <?xml version="1.0"?>  
  2. <config>  
  3.     <modules>  
  4.         <Cartz_Hotel>  
  5.             <version>0.1.0</version>  
  6.         </Cartz_Hotel>  
  7.     </modules>  
  8.     <frontend>  
  9.         <routers>  
  10.             <hotel>  
  11.                 <use>standard</use>  
  12.                 <args>  
  13.                     <module>Cartz_Hotel</module>  
  14.                     <frontName>hotel</frontName>  
  15.                 </args>  
  16.             </hotel>  
  17.         </routers>  
  18.     </frontend>  
  19. </config>  


frontend/routers/用来设置使该模块从前端显示的入口。frontName稍后将出现在 url中 

假设Magento在本机安装的访问首页是http://localhost/magento/index.php, 那么在浏览器地址栏中输入 
http://localhost/magento/index.php/hotel/my/hello 
将在页面输入"My First Module" 

从而得出Magento模块url访问的命名规范 
http://<host>/<Magento虚拟目录>/<config.xm中的frontName>/<Controller文件名去掉Controller>/<Controller文件的方法名去掉Action> 


附件下载代码 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值