analogde / ce-gen
startpilot 的内容元素生成器
Requires
- typo3/cms-core: ^9.5.0 || ^10.4.2
README
本文档是为 ce-gen 版本 1.4.0 编写的。ce-gen 仅与 startpilot 提供器扩展结合使用
它做什么
ce-gen 是一个 CLI 工具,用于生成自定义内容元素所需的所有文件。其名称来源于 content element generator。这包括
- fluidtemplates
- 后端预览模板
- scss 文件
- tsconfig 文件
- typoscript 文件
为了自动生成和包含这些文件,我们使用 startpilot 提供器扩展的结构。
ce-gen 允许您生成三种不同类型的自定义内容元素。这些类型如下定义
- 默认项目
- 不可变项
- MM 项
每个元素都带有可立即在后台使用的已准备好输出的前端输出。但有一个注意事项,我们将在下面的部分中说明。
什么是默认项目?
默认项目可能是最常见且最直接的内容元素。默认情况下(这就是注意事项),它只包含一个配置的(标题)字段。ce-gen 提供了您需要检查的所有内容,以确保您有一个可以构建自定义内容元素的基础。
什么是不可变项?
Irre 是 Inline-Relational-Record-Editing 的缩写。请参阅关于此主题的 官方文档。不可变项是一种包含任意数量的预定义其他元素的内容元素。想象一下手风琴,其中多个结构相同元素被分组在一起。记住那个注意事项吗?这些包装的结构相同的元素也只包含一个标题字段。
什么是 MM 项?
MM 项利用两个表之间的双向绑定。其中一个表包含记录列表,另一个表能够显示任意数量的记录,组合和顺序。这些项的常见用例可能如下所示
您需要在客户的网站上显示联系人信息。客户需要这些联系人在某些页面上显示,但不是所有页面上都显示。还有一个页面,所有人员都列在一个列表中。每个人还有一个自己的个人资料页面,显示有关他们的信息。
在这种情况下,记录将是联系人。使用 MM 项,您可以创建一个包含在不同视图中显示的所有数据的记录。如何显示该记录 - 布局和哪些数据 - 完全由包含这些记录的容器决定。与可以管理三种不同布局的三个不同默认项相比,优势在于能够编辑单个记录并影响该记录显示的所有位置。在 MM 关系项中,您还可以从包装容器跳转到其子记录并直接编辑它们。
系统要求
- startpilot 提供器扩展
- 您的 CLI 上必须可用 PHP 7.2
- composer
- gettext
如果您尚未使用startpilot设置提供者扩展,请参阅startpilot文档。有许多关于如何安装PHP 7.2、composer或gettext的详细文档。请随意使用最适合您的方法。您可以通过在命令行中运行以下命令来检查这些要求:
php -v
应该输出 7.2.*(或更高版本)
PHP 7.2.1 (cli) (built: Jan 15 2018 12:20:50) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies
composer -v
应该输出 1.6.*
Composer版本 1.6.2 2018-01-05 15:28:41
gettext -v
应该输出 0.19.*
gettext(GNU gettext-runtime)0.19.6
用法
始终从项目根目录(取决于您的composer.json bin目录)运行脚本。
如果您尚未在composer.json中设置bin目录(默认)
使用:sh vendor/bin/ce-gen.sh
如果您的composer.json中的配置条目包含以下内容
"config": { "bin-dir": "." }
您可以在命令行中输入以下命令来执行ce-gen
sh ce-gen.sh
!! 不要进入vendor/bin/目录并运行它!!
在您第一次输入命令后,命令行将通知您.t3.cegen.yaml
未找到,并在您的项目根目录中创建缺失的文件。如果您打开它,它应该看起来像这样
extension: name: startpilot path: public/typo3conf/ext/startpilot
您必须将name属性替换为您为startpilot提供者扩展提供的名称,并检查您的扩展目录的路径是否正确。如果您不介意将其名称更改,您可以跳过此步骤。
如果您再次执行ce-gen.sh
,您将收到提示选择您想要创建的内容元素类型(如果您对此感到陌生,您可以在上面的“它做什么?”中查找)。接下来是显示的某些规范,以及后端以及TYPO3需要内部引用的cType。
一旦您被询问是否要重新开始,您就知道一切顺利,并且您已经准备好开始添加您需要的任何新内容元素。
如果您在开始时版本控制是干净的,那么它将不再干净。应该添加了由ce-gen生成的文件,以及一个更改.gitignore的文件,它将.t3cegen.yaml
添加到其中。