team23 / module-setupmodule
由TEAM23提供的Magento 2设置模块
Requires
- php: ~7.4|~8.1
- ext-simplexml: *
This package is auto-updated.
Last update: 2024-09-13 06:59:46 UTC
README
SetupModule让您的当前Magento 2项目轻松安装新的持久化数据。
它允许添加以下Magento 2数据
- EAV属性组
- EAV属性
- 内容页面
- 内容块
客户组(待定/进行中!)菜单(待定/进行中!)
如何使用
如果您想设置数据,只需按照以下章节在您的主题Team23_SetupModule模块覆盖中添加资源文件夹,并运行bin/magento setup:upgrade
。所有版本大于等于存储在core_config_data
的路径team23/setup_module/version
的设置版本的资源都将被安装。
在极少数情况下,当您想重复安装过程时,只需更改数据库中存储在core_config_data
的路径team23/setup_module/version
的配置。
示例目录结构
在app/design/frontend/VENDOR/THEME/Team23_SetupModule/
app
|-- ...
`-- design
|-- ...
`-- frontend
|-- ...
`-- VENDOR
`-- THEME
|-- ...
`-- Team23_SetupModule
`-- resources
|-- attribute
|-- attribute_group
|-- block
|-- customer_group # (TBD / WIP!)
|-- menu # (TBD / WIP!)
`-- page
内部工作原理
每次运行bin/magento setup:upgrade
时,扩展将
- 在其数据资源文件夹中查找定义和有效的xml文件(例如
filename_1.0.0.xml
) - 提取文件版本号并与数据库中存储的当前设置版本进行比较(在
core_config_data
:team23/setup_module/version
) - 运行所有版本高于数据库中存储的设置版本的资源的创建
- 将数据库中的设置版本增加到所有资源的最高版本
通过Composer安装
- 在您的composer.json中添加satis.team23.de composer仓库
composer config repositories.team23 composer https://satis.team23.de/
- 需要team23/module-setupmodule
composer require team23/module-setupmodule ^dev-master
资源
通用文件命名
资源文件将从resources/{TYPE}/
读取。
要添加新的资源文件,添加一个您选择的XML文件。文件必须以(_
)结尾,后面跟着一个兼容PHP的版本号(>= 1.0.0
)和文件扩展名.xml
,例如new-attribute_1.0.0.xml
。
xml标签的内容指的是Magento 2在其函数中使用的资源创建参数。因此,它们必须遵循Magento内部要求(即属性代码必须写成snake_case)。
属性资源
属性文件将从resources/attribute
读取。
必选标签
xml
- 周围的根标签code
- 属性代码
可选标签
目前支持以下可选属性。有关更多信息,请参阅产品EAV属性选项参考
input
label
type
source
visible
- 默认为0
required
- 默认为0
user_defined
- 默认为0
default
searchable
- 默认为0
filterable
- 默认为0
comparable
- 默认为0
visible_on_front
- 默认为0
is_used_in_grid
- 默认为0
is_filterable_in_grid
- 默认为0
used_in_product_listing
- 默认为0
backend
重要提示
当使用source
或backend
标签时,请确保提供的类已定义,否则一旦存储在数据库中,将会导致错误。这就是为什么SetupModule如果在数据库中找不到类,将会抛出异常。
That's why SetupModule will throw an Exception if the class is not already defined.
示例
<xml> <code>my_custom_code</code> <input>text</input> <label>My label text</label> <visible>1</visible> <required>0</required> <user_defined>1</user_defined> <searchable>0</searchable> <filterable>0</filterable> <comparable>0</comparable> <visible_on_front>1</visible_on_front> <is_used_in_grid>0</is_used_in_grid> <used_in_product_listing>1</used_in_product_listing> <group>My example group</group> </xml>
属性组资源
属性组文件将从 resources/attribute_group
读取。
必选标签
xml
- 周围的根标签name
- 组名称
可选标签
排序顺序
示例
<xml> <name>Demo Group</name> <sort_order>1</sort_order> </xml>
块资源
块文件将从 resources/block
读取。
必选标签
xml
- 周围的根标签identifier
- 块的唯一标识符(必须为 snake_case)title
- 块标题
可选标签
content
- 默认为''
;请随意使用 CDATA 语法进行未转义的 HTMLstore_id
- 默认为0
is_active
- 默认为0
示例
<xml> <identifier>block_mydemo</identifier> <title>My demo block</title> <content><![CDATA[<h2>My demo title in HTML</h2> <p>Foo bar baz!</p>]]></content> <store_id>0</store_id> <is_active>1</is_active> </xml>
页面资源
页面文件将从 resources/page
读取。
必选标签
xml
- 周围的根标签identifier
- 页面的唯一标识符(必须为 snake_case)title
- 页面标题
可选标签
内容标题
content
- 默认为''
;请随意使用 CDATA 语法进行未转义的 HTMLstore_id
- 默认为0
is_active
- 默认为0
page_layout
- 默认为1column
示例
<xml> <identifier>no-route</identifier> <title>404 - My custom 404 override</title> <content_heading>404 - This is my overrides content heading</content_heading> <content> <![CDATA[ <div class="error-section"> <p>Im sorry...</p> <div class="error-row"> <a href="/">Back to home</a> </div> </div> ]]> </content> <store_id>0</store_id> <is_active>1</is_active> <page_layout>1column</page_layout> </xml>