thelia/thelia-studio-module

安装次数: 20,622

依赖项: 0

建议者: 0

安全性: 0

星标: 3

关注者: 9

分支: 3

公开问题: 14

类型:thelia-module

1.4.11 2021-06-25 16:52 UTC

This package is auto-updated.

Last update: 2024-08-25 23:36:48 UTC


README

作者:Benjamin Perche bperche@openstudio.fr

此模块允许您生成所有必须为模块编写的重复类和模板。

  1. 安装

通过下载zip存档并将其解压缩到 thelia/local/modules 或通过后台管理上传,或通过composer要求,将其作为thelia模块安装。

"require": {
    "thelia/thelia-studio-module": "~1.4.4"
}
  1. 用法

此模块添加了两个命令:$ php Thelia module:generate:all$ php Thelia module:generate:config-form

  1. 生成模块配置表单

为此,您需要编写一个新文件。在模块的配置目录中创建 config-form.yml,并遵循以下结构,TheliaStudio 将为您生成一切:

  • 根节点称为 'config'
  • 然后编写您的配置 varName: type 对于简单的类型。
    • 可用的类型有:text、textarea、integer、number、checkbox。
    • 您可以在生成中添加更精确的数据
      • label: My Var 用于自定义配置页面中显示的字段名称
      • required: false 如果字段不是必填项
      • regex 验证正则表达式。
      • size 包含 "min" 和 "max" 键的数组。
      • help: Help for my var 配置页面中字段的帮助信息

以下是一个示例

config:
  var_name: text
  var_name2: integer
  var_name3: checkbox
  var_name4:
    label: My Variable
    help: Help for variable ... 
    type:  text
    required: false
    regex: "a-z+"
    size:
      min: 5
      max: 20
  1. 如何使用它?

### 4.1 仅生成配置表单

首先,编写您的 config-form.yml 然后,运行 $ php Thelia module:generate:config-form 最后,根据您的需求调整生成的模板。

4.2 生成表 CRUD 和配置表单

4.2.1 编写 schema.xml

如果您希望您的表正确集成到 Thelia 中,您必须遵守一些约定。

  • 始终将主键命名为 id,并且永远不要使用两列构造 PK。
  • 如果您想有一个可见性切换,请将列命名为 visible 并将其类型设置为 BOOLEANTINYINT
  • 如果您想进行位置管理,请将列命名为 position。循环的顺序参数将被命名为 manual
  • 如果列的名称是 'id'、'title'、'name' 或 'code',则表中的条目将是一个可点击的链接
  • 如果列是 BOOLEANTINYINT 类型,则它将用作复选框
  • 如果列的名称是 'chapo'、'description' 或 'postscriptum',则它不会在表中显示

以下是一个典型的模式,它将与 TheliaStudio 精密配合工作

<?xml version="1.0" encoding="UTF-8"?>
<database defaultIdMethod="native" name="thelia"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:noNamespaceSchemaLocation="../../../../core/vendor/propel/propel/resources/xsd/database.xsd" >
    <table name="example_table" namespace="YourModule\Model">
        <column autoIncrement="true" name="id" primaryKey="true" required="true" type="INTEGER" />
        <column defaultValue="0" name="visible" required="true" type="TINYINT" />
        <column defaultValue="0" name="position" required="true" type="INTEGER" />
        <column name="title" size="255" type="VARCHAR" />
        <column name="description" type="CLOB" />
        <column name="chapo" type="LONGVARCHAR" />
        <column name="postscriptum" type="LONGVARCHAR" />
        <behavior name="timestampable" />
        <behavior name="i18n">
            <parameter name="i18n_columns" value="title, description, chapo, postscriptum" />
        </behavior>
        <behavior name="versionable">
            <parameter name="log_created_at" value="true" />
            <parameter name="log_created_by" value="true" />
        </behavior>
    </table>
    <external-schema filename="local/config/schema.xml" referenceOnly="true" />
</database>

4.2.2 生成一切

编写您的 schema.xml,然后如有必要编写您的 config-form.yml 现在,您可以通过运行 $ php Thelia module:generate:all,使用 --table 选项指定您想要生成的表。

转到 Form 目录,并更改您想要更改的表单名称。您可以像您想的那样更改生成的模板,因为生成器将集成到每个地方,即使它不是必需的。

4.2.3 对一些标准 Thelia 功能的自动支持

如果表有名为 'position' 和 'visible' 的列,则模块将生成管理这些字段的适当代码。

如果表有以下列,则模块将自动生成管理标准 Thelia SEO 字段(包括重写的 URL)的代码:

  • meta_title
  • meta_description
  • meta_keywords
  1. 访问生成的页面

CRUDs是在/admin/module/ModuleCode/table_name目录下生成的。您可以通过编写钩子从工具下拉菜单访问它,或者在您的模块配置页面添加链接。