team23/module-setupmodule

由TEAM23提供的Magento 2设置模块

1.1.1 2022-11-10 10:39 UTC

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_datateam23/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

重要提示
当使用sourcebackend标签时,请确保提供的类已定义,否则一旦存储在数据库中,将会导致错误。这就是为什么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 语法进行未转义的 HTML
  • store_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 语法进行未转义的 HTML
  • store_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>