magento xml配置详解(2)

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

<config>
  <modules>
    <(NameSpace_ModuleName)>...</(NameSpace_ModuleName)>
  </modules>
  <global>
    <models$amp;>amp;$lt;/models>
    <resources$amp;>amp;$lt;/resources>
    <blocks$amp;>amp;$lt;/blocks>
    <helpers$amp;>amp;$lt;/helpers>
    <fieldsets$amp;>amp;$lt;/fieldsets>
    <template$amp;>amp;$lt;/template>
    <events$amp;>amp;$lt;/events>
    <eav_attributes$amp;>amp;$lt;/eav_attributes>
    <(modulename)$amp;>amp;$lt;!-- custom config variables --$amp;>amp;$lt;/(modulename)>
  </global>
  <admin>
    <attributes$amp;>amp;$lt;/attributes>
    <routers$amp;>amp;$lt;/routers>
    <fieldsets$amp;>amp;$lt;/fieldsets>
  </admin>
  <adminhtml>
    <events$amp;>amp;$lt;/events>
    <global_search$amp;>amp;$lt;/global_search>
    <translate$amp;>amp;$lt;/translate>
    <layout$amp;>amp;$lt;/layout>
    <(modulename)$amp;>amp;$lt;!-- custom config variables --$amp;>amp;$lt;/(modulename)>
  </adminhtml>
  <install>
    <translate$amp;>amp;$lt;/translate>
  </install>
  <frontend>
    <routers$amp;>amp;$lt;/routers>
    <events$amp;>amp;$lt;/events>
    <translate$amp;>amp;$lt;/translate>
    <layout$amp;>amp;$lt;/layout>
  </frontend>
  <default>
    <(modulename)$amp;>amp;$lt;!-- custom config variables --$amp;>amp;$lt;/(modulename)>
  </default>
  <stores>
    <admin$amp;>amp;$lt;/admin>
  </stores>
  <websites>
    <admin$amp;>amp;$lt;/admin>
  </websites>
</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
  <modules>
     <(NameSpace_ModuleName)>
       <active>[true|false]</active>
       <codePool>[core|community|local]</codePool>
       <depends>
         <(AnotherNameSpace_ModuleName) />
       </depends>
       <version>(version_number)</version>
     </(NameSpace_ModuleName>
  </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
  <global>
    <models>
      <(modulename)>
        <class>(ClassName_Prefix)</class>
        <resourceModel>(modulename)_(resource_model_type)</resourceModel>
        <(modulename)_(resource_model_type)>
          <!-- definition -->
        </(modulename)_(resource_model_type)>
        <rewrite$amp;>amp;$lt;!-- definition --$amp;>amp;$lt;/rewrite>
      </(modulename)>
    </models>
    <resources>
      <(modulename)_setup$amp;>amp;$lt;!-- definition --$amp;>amp;$lt;/(modulename)_setup>
      <(modulename)_read$amp;>amp;$lt;!-- definition --$amp;>amp;$lt;/(modulename)_read>
      <(modulename)_write$amp;>amp;$lt;!-- definition --$amp;>amp;$lt;/(modulename)_write>
    </resources>
    <blocks>
      <(modulename)>
        <class>(ClassName_Prefix)</class>
      </(modulename)>
    </blocks>
    <helpers>
      <(modulename)>
        <class>(ClassName_Prefix)</class>
      </(modulename)>
    </helpers>
    <fieldsets>
      <(page_handle )>
        <(field_name)> </(field_name)>
      </(page_handle )>
    </fieldsets>
    <template>
      <email>
        <(email_template_name)
          module="(modulename)"
          translate="[label][,description]"
          >
          <!-- definition -->
        <(/email_template_name)>
      </email>
    </template>
    <events>
      <(event_name)>
        <observers$amp;>amp;$lt;!-- observers --$amp;>amp;$lt;/observers>
      </(event_name)>
    </events>
    <eav_attributes$amp;>amp;$lt;!-- definition --$amp;>amp;$lt;/eav_attributes>
    <(modulename)$amp;>amp;$lt;!-- custom config variables --$amp;>amp;$lt;/(modulename)>
  </global>
Elements
Element Description
models
resources
blocks
helpers
fieldsets
template
events
eav_attributes
(modulename) 自定义的变量(如设置邮件或newletter时非常有用)
admin
XML Structure
  <admin>
    <attributes>
      <(attribute_name) />
    <attributes>
    <fieldsets$amp;>amp;$lt;!-- definition --$amp;>amp;$lt;/fieldsets>
    <routers>
      <(modulename)>
        <use>[standard|admin|default]</use>
        <args>
          <module>(NameSpace_ModuleName)</module>
          <frontName>(frontname)</frontName>
        </args>
      </(modulename)>
      <!-- or -->
      <(modulename)>
        <args>
          <modules>
            <(NameSpace_ModuleName)
              before="(AnotherNameSpace_ModuleName)"
              >
              (New_ClassName)
            <(NameSpace_ModuleName)
        </args>
      </(modulename)>
    </routers>
  </admin>
Elements
Element Description
attributes
fieldsets
routers
adminhtml
XML Structure
  <adminhtml>
    <events>
      <(event_name)>
        <observers$amp;>amp;$lt;!-- observers --$amp;>amp;$lt;/observers>
      </(event_name)>
    </events>
    <global_search>
      <products>
        <class>(modulename)/search_catalog</class>
        <acl>catalog</acl>
      </products>
      <customers>
        <class>adminhtml/search_customer</class>
        <acl>customer</acl>
      </customers>
      <sales>
        <class>adminhtml/search_order</class>
        <acl>sales</acl>
      </sales>
    </global_search>
    <translate>
      <modules>
        <(NameSpace_ModuleName)>
          <files>
            <default>(name_of_translation_file.csv)</default>
          </files>
        </(NameSpace_ModuleName)>
      </modules>
    </translate>
    <layout>
      <updates>
        <(modulename)>
          <file>(name_of_layout_file.xml)</file>
        </(modulename)>
      </updates>
    </layout>
    <(modulename)$amp;>amp;$lt;!-- custom config variables --$amp;>amp;$lt;/(modulename)>
  </adminhtml>
Elements
Element Description
events
global_search
translate
layout
(modulename) 自定义变量
install
XML Structure
frontend
XML Structure
  <frontend>
    <secure_url>
      <(page_handle)>/relative/url</page_handle>
    </secure_url>
    <events>
      <(event_name)>
        <observers$amp;>amp;$lt;!-- observers --$amp;>amp;$lt;/observers>
      </(event_name)>
    </events>
    <routers>
      <(modulename)>
        <use>[standard|admin|default]</use>
        <args>
          <module>(NameSpace_ModuleName)</module>
          <frontName>(frontname)</frontName>
        </args>
      </(modulename)>
    </routers>
    <translate>
      <modules>
        <(NameSpace_ModuleName)>
          <files>
            <default>(name_of_translation_file.csv)</default>
          </files>
        </(NameSpace_ModuleName)>
      </modules>
    </translate>
    <layout>
      <updates>
        <(modulename)>
          <file>(name_of_layout_file.xml)</
        </(modulename)>
      </updates>
    </layout>
  </frontend>
Elements
Element Description
secure_url
events
routers
translate
layout
default
XML Structure
stores
XML Structure
websites
XML Structure
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值