magento xml配置详解

时间:2024-10-24 20:34:02
<?XML版本=“1.0”?
<config>
<节>
实施例translate="label">
<label>的一个例子</标签>
一个<tab>一般</标签>
的<frontend_type>文本</ frontend_type>
<sort_order> 1000 </排序顺序>
<show_in_default> 1 </ show_in_default>
<show_in_website> 1 </ show_in_website>
<show_in_store> 1 </ show_in_store>
</例>
</章节>
</配置>

使用某些标记的名字都是整个system.xml ,可以用在这些部分中,组和字段定义:

  • EXAMPLE给出了一个独特的名字,所以它不会覆盖任何其他部分。 在现实中,全部小写的名字是首选。
  • label是可见的段名。
  • tab是章节列表中的任何现有标题的名称。
  • frontend_type这里始终是text但习惯于使用很多的。
  • sort_order选项卡中,把这项新条文。 如果省略了新的部分只是附加代替。
  • show_in_defaultshow_in_websiteshow_in_store显示或隐藏(1或0)本节“当前配置范围”下拉页面左上角选择不同的范围。 省略其中一个是相同的,其设置为0。
  • comment你可以添加你自己的评论到一个字段或组。

集团system.xml中使用特定的标签名称:

  • expanded群组是否会扩大时,默认情况下,查看特定的标签部分。

如果您尝试查看这个新的部分,现在它会给一个“拒绝访问”的错误。 这是因为它是一个新的页面,页面管理需要的权限。 接下来,创建该文件Company/Module/etc/adminhtml.xml

 <?XML版本=“1.0”?
<config>
<acl>
<resources>
<ALL>
<TITLE>允许所有</ TITLE>
</>
使用<admin>
<子女>
<SYSTEM>
<子女>
<config>
<子女>
(实施例translate="title">)
<TITLE>为例科</ TITLE>
<sort_order> 100 </ sort_order>
</例子>
</儿童>
</配置>
</儿童>
</>
</儿童>
</管理>
</资源>
</ ACL>
</配置>

注意: adminsystem config已经定义了核心模块,所以没有必要定义一个标题为这些。

添加到现有节

如果你想在现有的部分模块的配置出现,然后使用它的名字,并没有重新定义它的label ,的sort_order或任何其他标记。 现有部分已授予它的权限。

 <?XML版本=“1.0”?
<config>
<节>
<General>下
<! - 你补充在这里 - >
</一般>
</章节>
</配置>

创建一个新组

 

组是在一个区段内页的扩展的fieldsets的,他们总是一节的孩子。 编辑你的Company/Module/etc/system.xml文件:

 <?XML版本=“1.0”?
<config>
<节>
实施例translate="label">
<label>的一个例子</标签>
一个<tab> </标签>
的<frontend_type>文本</ frontend_type>
<sort_order> 1000 </排序顺序>
<show_in_default> 1 </ show_in_default>
<show_in_website> 1 </ show_in_website>
<show_in_store> 1 </ show_in_store>
<groups>
<! - 新组去这里 - >
<样品translate="label">的
<label>的A样品集团</标签>
的<frontend_type>文本</ frontend_type>
<sort_order> 100 </ sort_order>
<show_in_default> 1 </ show_in_default>
<show_in_website> 1 </ show_in_website>
<show_in_store> 1 </ show_in_store>
</样品>
</>
</例>
</章节>
</配置>

创建一个新的领域

 

字段是儿童组同样的方式,基团是部分的儿童。

 <?XML版本=“1.0”?
<config>
<节>
实施例translate="">
<label>的一个例子</标签>
一个<tab> </标签>
的<frontend_type>文本</ frontend_type>
<sort_order> 1000 </排序顺序>
<show_in_default> 1 </ show_in_default>
<show_in_website> 1 </ show_in_website>
<show_in_store> 1 </ show_in_store>
<groups>
<样品translate="label">的
<label>的A样品集团</标签>
的<frontend_type>文本</ frontend_type>
<sort_order> 100 </ sort_order>
<show_in_default> 1 </ show_in_default>
<show_in_website> 1 </ show_in_website>
<show_in_store> 1 </ show_in_store>
<FIELDS>
<! - 新字段去这里 - >
<ENABLED translate="label comment">
<label>的启用</标签>
<COMMENT>
<![CDATA [该文本出现一个小箭头下方的领域。
<span class="notice">它可以包含HTML格式的!</ SPAN>]]>
</评论>
<frontend_type>选择</ frontend_type>
<source_model> adminhtml / system_config_source_yesno </ source_model>
<sort_order> 10 </ sort_order>
<show_in_default> 1 </ show_in_default>
<show_in_website> 1 </ show_in_website>
<show_in_store> 1 </ show_in_store>
</启用>
</领域>
</样品>
</>
</例>
</章节>
</配置>

comment提供额外的说明或信息是非常有用的。 包裹它的文本在CDATA标签,如果你想使用HTML,任何HTML是允许的,但最常见的用途是创建亮点跨度“通知”或“警告”类。

frontend_type可以是任何类别/lib/Varien/Data/Form/Element/目录。 这里只是一些:

  • 复选框
  • 复选框
  • 文件
  • 镜像文件
  • 图像
  • 标签
  • 链接
  • 多行
  • 多选
  • 注意
  • 暗纹
  • 密码
  • 无线电
  • 收音机
  • 复位
  • 选择
  • 提交
  • TEXTAREA
  • 文本
  • 时间

相反的frontend_type你也可以指定块名称中的典型module/path_to_file格式。 此块将有_getElementHtml()方法调用,使用此字段的控制返回的HTML。 即使它被称为frontend_model它确实是一个块。

对于所有列表类型的字段提供可能的选项的Mage/Adminhtml/Model/System/Config/Source目录中包含了很多有用的来源已经定义,如“是/否”或“启用/禁用”或您指定一个模型类。国家,货币或语言的列表。

您还可以创建自己的源模型和典型module/path_to_file格式中指定它。 返回一个嵌套数组像这样:

 <?PHP
类Company_Module_Model_Source
{
公共职能toOptionArray()
{
返回阵列(
阵列('价值'=> 0,'标签'=>法师::帮手() - > __('第一项')),
阵列('值'=> 1,'标签'=>法师::帮手() - > __(“第二项”))
阵列('价值'=> 2,“标签”=>法师::帮手() - > __(“第三项”)),
/ / ...
);
}
}

这样一个字段保存的值将包含一个字符串,如'1,2,3'的选定值。

字段的配置数据通常存储在core/config_data模型,但你也可以定义你自己的。 它的_afterLoad()方法被调用前场显示,被称为的_beforeSave() _afterSave()方法,当用户点击“保存配置”按钮。 使用这些事件的数据,执行额外的检查可能会抛出一个异常在_beforeSave()或更新本地文件在_afterSave()

validate标签的内容作为一个阶级的最终输入元素加入。 下面是Magento的表单验证的标准测试。

  • 验证管理员密码
  • 验证阿贾克斯
  • 验证-α
  • 验证alphanum的
  • 验证CC-CVN
  • 验证CC-EXP
  • 验证毫升数
  • 验证毫升型
  • 验证CC型选择
  • 验证清洁网址
  • 验证码
  • 验证cpassword的
  • 验证CSS长度
  • 验证货币美元
  • 验证数据
  • 验证日期
  • 验证日期太子港
  • 验证数字
  • 验证电子邮件
  • 验证传真
  • 验证大于零
  • 验证标识
  • 验证长度
  • 验证新密码
  • 验证未负号
  • 验证号码
  • 验证要求
  • 验证要求按姓名
  • 验证密码
  • 验证%
  • 验证手机
  • 验证选择
  • 验证SSN
  • 验证状态
  • 验证街头
  • 验证网址
  • 验证XML标识符
  • 验证零或更大
  • 验证拉链
  • 验证邮编国际

这是非常简单的Company/Module/etc/config.xml

 <?XML版本=“1.0”?
<config>
<DEFAULT>
<例>
<SAMPLE>
设为Enabled 1 </启用>
</样品>
</例>
</默认>
</配置>

这里ENABLED领域一直采用adminhtml/system_config_source_yesno源模式定义为“否”,'0'和'1'为'是'。 设置默认为'1'意味着“启用”的领域将是'是',直到用户改变它。

最快的方式访问保存的字段值是这样的:

法师:: getStoreConfig(例如/采样/启用');

section/group/field格式的路径总是在考虑getStoreConfig()默认值,网站或商店范围。