在此博客文章中,我们将给大家讲解下如何在magento 2中给你的模块设置系统配置
magento2中的系统配置与magento1非常相似,因此您可以阅读magento中的系统配置基础。系统配置分为不同的部分,标签(tab)
,部分(section)
,组(group)
和字段(field
)如magento1博客所述。magento2也使用相同的概念。
system.xml文件位于magento2的adminhtml /下面文件夹中
1 | Sky8g/Hello/etc/adminhtml/system.xml |
添加的内容是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd"> <system> <tab id="helloworld" translate="label" sortOrder="100"> <!-- add a new tab with id helloworld --> <label>Hello World</label> </tab> <section id="helloworld" translate="label" sortOrder="130" showInDefault="1" showInWebsite="1" showInStore="1"> <!-- add a new section with id helloworld and for tab helloworld --> <class>separator-top</class> <label>Hello World Configuration</label> <tab>helloworld</tab> <resource>Sky8g_First::test_config</resource> <group id="active_display" translate="label" type="text" sortOrder="10" showInDefault="1" showInWebsite="0" showInStore="0"> <!-- add a new group with id active display --> <label>Hello World Configuration Options</label> <field id="scope" translate="label" type="select" sortOrder="1" showInDefault="1" showInWebsite="0" showInStore="0"> <!-- add a new field with id scope --> <label>Enable Helloworld Controller</label> <source_model>Magento\Config\Model\Config\Source\Yesno</source_model> </field> </group> </section> </system> </config> |
在上方,我们可以看到如何添加新的标签(tab)
,部分(section)
,组(group)
和字段(field
)
接下来为这些配置项设置默认值,创建文件
1 | Sky8g/Hello/etc/config.xml |
把文件config.xml里面并添加下面代码
1 2 3 4 5 6 7 8 9 10 | <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd"> <default> <helloworld> <active_display> <scope>1</scope> </active_display> </helloworld> </default> </config> |
还有另一件事要做,在system.xml中,
1 | Sky8g_First :: test_config |
这用于设置ACL以进行系统配置。我们将在稍后看到它的详细工作原理,但现在创建文件
1 | Sky8g/Hello/etc/acl.xml |
把下面代码写入acl.xml里面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Acl/etc/acl.xsd"> <acl> <resources> <resource id="Magento_Adminhtml::admin"> <resource id="Magento_Adminhtml::stores"> <resource id="Magento_Adminhtml::stores_settings"> <resource id="Magento_Adminhtml::config"> <resource id="Sky8g_First::test_config" title="Hello World Section" /> </resource> </resource> </resource> </resource> </resources> </acl> </config> |
现在,当您打开magento admin时,您会看到HelloWorld选项卡和部分。
您可能会在第一次遇到404未找到错误,只需注销并再次登录即可解决此问题
如果要探索magento2提供的其他系统配置选项,请查看模块Magento/Config/Model/Config文件。在这里,您可以看到magento提供的其他系统配置选项。您也可以从magento核心模块中探索其他system.xml文件。