thelia / thelia-studio-module
Requires
- thelia/installer: ~1.1
- thelia/smarty-module: *
Requires (Dev)
- mikey179/vfsstream: 1.4.*
- phpunit/phpunit: ~4.1
This package is auto-updated.
Last update: 2024-08-25 23:36:48 UTC
README
作者:Benjamin Perche bperche@openstudio.fr
此模块允许您生成所有必须为模块编写的重复类和模板。
- 安装
通过下载zip存档并将其解压缩到 thelia/local/modules
或通过后台管理上传,或通过composer要求,将其作为thelia模块安装。
"require": { "thelia/thelia-studio-module": "~1.4.4" }
- 用法
此模块添加了两个命令:$ php Thelia module:generate:all
和 $ php Thelia module:generate:config-form
- 生成模块配置表单
为此,您需要编写一个新文件。在模块的配置目录中创建 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
- 如何使用它?
### 4.1 仅生成配置表单
首先,编写您的 config-form.yml 然后,运行 $ php Thelia module:generate:config-form
最后,根据您的需求调整生成的模板。
4.2 生成表 CRUD 和配置表单
4.2.1 编写 schema.xml
如果您希望您的表正确集成到 Thelia 中,您必须遵守一些约定。
- 始终将主键命名为
id
,并且永远不要使用两列构造 PK。 - 如果您想有一个可见性切换,请将列命名为
visible
并将其类型设置为BOOLEAN
或TINYINT
- 如果您想进行位置管理,请将列命名为
position
。循环的顺序参数将被命名为 manual - 如果列的名称是 'id'、'title'、'name' 或 'code',则表中的条目将是一个可点击的链接
- 如果列是
BOOLEAN
或TINYINT
类型,则它将用作复选框 - 如果列的名称是 '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
- 访问生成的页面
CRUDs是在/admin/module/ModuleCode/table_name
目录下生成的。您可以通过编写钩子从工具
下拉菜单访问它,或者在您的模块配置页面添加链接。