hn / formsave
以可用状态保存 ext:form 的数据
v1.6.3
2020-03-09 09:10 UTC
Requires
- php: ~7.1
- phpoffice/phpspreadsheet: ^1.4
- typo3/cms-core: ~8.7.7
- typo3/cms-extbase: ~8.7.7
- typo3/cms-form: ~8.7.7
Requires (Dev)
- nimut/testing-framework: ^4.0
- typo3/cms-composer-installers: >=1.4
Replaces
- typo3-ter/formsave: v1.6.3
This package is auto-updated.
Last update: 2024-09-02 13:44:14 UTC
README
此扩展允许轻松从表单数据创建领域模型。
基本用法
- 使用
composer require hn/formsave
安装 - 创建一个表单并添加 Formsave finisher,选择通用作为意图
- 可选地为每个字段添加标识符
高级用法
您可以添加自己的意图,这也会创建自己的领域对象。让我们以一个“应用程序”的例子来展示。
创建领域模型类 Vendor\Extension\Domain\Model\Application
<?php
namespace Vendor\Extension\Domain\Model;
use Hn\Formsave\Domain\Model\Document;
class Application extends Document
{
}
实现 extbase 继承
使用 ext_typoscript_setup.txt
实现。
config.tx_extbase.persistence.classes {
Hn\Formsave\Domain\Model\Document {
subclasses {
Vendor\Extension\Domain\Model\Application = Vendor\Extension\Domain\Model\Application
}
}
Vendor\Extension\Domain\Model\Application {
mapping {
recordType = Vendor\Extension\Domain\Model\Application
tableName = tx_formsave_domain_model_document
}
}
}
扩展表单编辑器和 TCA 中的选择字段
// Configuration/TCA/Overrides/tx_formsave_domain_model_document.php
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem('tx_formsave_domain_model_document', 'type', [
'Application',
\Vendor\Extension\Domain\Model\Application::class,
]);
# Configuration/Form/FormEngineSetup.yaml
TYPO3:
CMS:
Form:
prototypes:
standard:
formElementsDefinition:
Form:
formEditor:
propertyCollections:
finishers:
1531314970:
editors:
110:
selectOptions:
1531319170:
value: 'Vendor\Extension\Domain\Model\Application'
label: 'Application'
为您的表单数据添加行为
查看 Hn\Formsave\Domain\Finisher\FormsaveFinisher
。有几个信号可以改变行为。一个例子是在用户申请时发送电子邮件。