Magento 的 config.xml 配置参数详解

Path: app/code/(codepool)/(NameSpace)/(ModuleName)/etc/config.xml

当你在Magento中新增一个或更新一个module的时候,需要在此config.xml中对所有的models,blocks,classes等做相应的配置。每一个module都有一个单独的config.xml文件,但是Magento在加载解析这些config.xml文件的时候整合在一起分析的。所以每个config.xml文件都需要有<(modulename)> 来区别于其他的模块,如果一个模块下的config.xml文件中没有定义<(modulename)> ,该文件中其他的定义将被其他的文件覆盖掉。由此,严格按照Magento要求的书写方式来对相应的Module做配置是非常重要的(例如, <(modulename)_setup>)

XML Structure

 
  1. <config>
  2.     <modules>
  3.         <(NameSpace_ModuleName)> </(NameSpace_ModuleName)>
  4.     </modules>
  5.     <global>
  6.         <models> </models>
  7.         <resources> </resources>
  8.         <blocks> </blocks>
  9.         <helpers> </helpers>
  10.         <fieldsets> </fieldsets>
  11.         <template> </template>
  12.         <events> </events>
  13.         <eav_attributes> </eav_attributes>
  14.         <(modulename)> <!-- custom config variables --> </(modulename)>
  15.     </global>
  16.     <admin>
  17.         <attributes> </attributes>
  18.         <routers> </routers>
  19.         <fieldsets> </fieldsets>
  20.     </admin>
  21.     <adminhtml>
  22.         <events> </events>
  23.         <global_search> </global_search>
  24.         <translate> </translate>
  25.         <layout> </layout>
  26.         <(modulename)> <!-- custom config variables --> </(modulename)>
  27.     </adminhtml>
  28.     <install>
  29.         <translate> </translate>
  30.     </install>
  31.     <frontend>
  32.         <routers> </routers>
  33.         <events> </events>
  34.         <translate> </translate>
  35.         <layout> </layout>
  36.     </frontend>
  37.     <default>
  38.         <(modulename)> <!-- custom config variables --> </(modulename)>
  39.     </default>
  40.     <stores>
  41.         <admin> </admin>
  42.     </stores>
  43.     <websites>
  44.         <admin> </admin>
  45.     </websites>
  46. </config>

注意,上面只是一个config.xml配置文件大致的框架,下面将对每一部分进行细致分析.

Elements

 
Element Description Example
modules 最基本的定义一个模块的名字,版本和是否依赖于其他模块 
global

 (哈哈!由于global的特性,你可以在其他地方定义一个模块,只要

global下的<moduleName />正确定义该模块就行

 
admin   
adminhtml  对system->configuration下的具体的项进行ACL定义 
install   Page
frontend  主要定义router 
default   
stores   Adminhtml
websites   Adminhtml

每个config.xml可大致分为上面表格中的小模块,下面就每一块进行细分

modules

XML Structure
  1.     <modules>
  2.           <(NameSpace_ModuleName)>
  3.               <active>[true|false] </active>
  4.               <codePool>[core|community|local] </codePool>
  5.               <depends>
  6.                   <(AnotherNameSpace_ModuleName) />
  7.               </depends>
  8.               <version>(version_number) </version>
  9.           </(NameSpace_ModuleName>
  10.     </modules>
Elements
Element Description
active 该模块是否生效(该element的值可在后台修改) 
codePool app/code 的具体路径
depends 是否依赖于其他的模块,如果被依赖的模块不存在,它就不active
version 定义版本,用于更新和安装 

通常 active, codePool and depends 一般在 app/etc/modules/(NameSpace)_*.xml 文件中定义,而 version 在相应module下的config.xml 文件中定义.

global

XML Structure
  1.     <global>
  2.         <models>
  3.             <(modulename)>
  4.                 <class>(ClassName_Prefix) </class>
  5.                 <resourceModel>(modulename)_(resource_model_type) </resourceModel>
  6.                 <(modulename)_(resource_model_type)>
  7.                     <!-- definition -->
  8.                 </(modulename)_(resource_model_type)>
  9.                 <rewrite> <!-- definition --> </rewrite>
  10.             </(modulename)>
  11.         </models>
  12.         <resources>
  13.             <(modulename)_setup> <!-- definition --> </(modulename)_setup>
  14.             <(modulename)_read> <!-- definition --> </(modulename)_read>
  15.             <(modulename)_write> <!-- definition --> </(modulename)_write>
  16.         </resources>
  17.         <blocks>
  18.             <(modulename)>
  19.                 <class>(ClassName_Prefix) </class>
  20.             </(modulename)>
  21.         </blocks>
  22.         <helpers>
  23.             <(modulename)>
  24.                 <class>(ClassName_Prefix) </class>
  25.             </(modulename)>
  26.         </helpers>
  27.         <fieldsets>
  28.             <(page_handle?)>
  29.                 <(field_name)>? </(field_name)>
  30.             </(page_handle?)>
  31.         </fieldsets>
  32.         <template>
  33.             <email>
  34.                 <(email_template_name)
  35.                     module= "(modulename)"
  36.                     translate= "[label][,description]"
  37.                     >
  38.                     <!-- definition -->
  39.                 <(/email_template_name)>
  40.             </email>
  41.         </template>
  42.         <events>
  43.             <(event_name)>
  44.                 <observers> <!-- observers --> </observers>
  45.             </(event_name)>
  46.         </events>
  47.         <eav_attributes> <!-- definition --> </eav_attributes>
  48.         <(modulename)> <!-- custom config variables --> </(modulename)>
  49.     </global>
Elements
Element Description
models  
resources  
blocks  
helpers  
fieldsets  
template  
events  
eav_attributes  
(modulename) 自定义的变量(如设置邮件或newletter时非常有用)

admin

XML Structure
  1.     <admin>
  2.         <attributes>
  3.             <(attribute_name) />
  4.         <attributes>
  5.         <fieldsets> <!-- definition --> </fieldsets>
  6.         <routers>
  7.             <(modulename)>
  8.                 <use>[standard|admin|default] </use>
  9.                 <args>
  10.                     <module>(NameSpace_ModuleName) </module>
  11.                     <frontName>(frontname) </frontName>
  12.                 </args>
  13.             </(modulename)>
  14.             <!-- or -->
  15.             <(modulename)>
  16.                 <args>
  17.                     <modules>
  18.                         <(NameSpace_ModuleName)
  19.                             before= "(AnotherNameSpace_ModuleName)"
  20.                             >
  21.                             (New_ClassName)
  22.                         <(NameSpace_ModuleName)
  23.                 </args>
  24.             </(modulename)>
  25.         </routers>
  26.     </admin>
Elements
Element Description
attributes  
fieldsets  
routers  

adminhtml

XML Structure
  1.     <adminhtml>
  2.         <events>
  3.             <(event_name)>
  4.                 <observers> <!-- observers --> </observers>
  5.             </(event_name)>
  6.         </events>
  7.         <global_search>
  8.             <products>
  9.                 <class>(modulename)/search_catalog </class>
  10.                 <acl>catalog </acl>
  11.             </products>
  12.             <customers>
  13.                 <class>adminhtml/search_customer </class>
  14.                 <acl>customer </acl>
  15.             </customers>
  16.             <sales>
  17.                 <class>adminhtml/search_order </class>
  18.                 <acl>sales </acl>
  19.             </sales>
  20.         </global_search>
  21.         <translate>
  22.             <modules>
  23.                 <(NameSpace_ModuleName)>
  24.                     <files>
  25.                         <default>(name_of_translation_file.csv) </default>
  26.                     </files>
  27.                 </(NameSpace_ModuleName)>
  28.             </modules>
  29.         </translate>
  30.         <layout>
  31.             <updates>
  32.                 <(modulename)>
  33.                     <file>(name_of_layout_file.xml) </file>
  34.                 </(modulename)>
  35.             </updates>
  36.         </layout>
  37.         <(modulename)> <!-- custom config variables --> </(modulename)>
  38.     </adminhtml>
Elements
Element Description
events  
global_search  
translate  
layout  
(modulename) 自定义变量 

install

XML Structure

frontend

XML Structure
  1.     <frontend>
  2.         <secure_url>
  3.             <(page_handle)>/relative/url </page_handle>
  4.         </secure_url>
  5.         <events>
  6.             <(event_name)>
  7.                 <observers> <!-- observers --> </observers>
  8.             </(event_name)>
  9.         </events>
  10.         <routers>
  11.             <(modulename)>
  12.                 <use>[standard|admin|default] </use>
  13.                 <args>
  14.                     <module>(NameSpace_ModuleName) </module>
  15.                     <frontName>(frontname) </frontName>
  16.                 </args>
  17.             </(modulename)>
  18.         </routers>
  19.         <translate>
  20.             <modules>
  21.                 <(NameSpace_ModuleName)>
  22.                     <files>
  23.                         <default>(name_of_translation_file.csv) </default>
  24.                     </files>
  25.                 </(NameSpace_ModuleName)>
  26.             </modules>
  27.         </translate>
  28.         <layout>
  29.             <updates>
  30.                 <(modulename)>
  31.                     <file>(name_of_layout_file.xml) </
  32.                 </ (modulename ) >
  33.             </updates>
  34.         </layout>
  35.     </frontend>
Elements
Element Description
secure_url  
events  
routers  
translate  
layout  

default

XML Structure

stores

XML Structure

websites

XML Structure

 

哈哈!有空我再把每一个element的意义加上去。有需要的可以联系我或者加入QQqun.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值