andrewhaine / silverstripe-form-capture
提供了一个捕获简单 Silverstripe 表单的方法,并为用户提供友好的管理界面
4.0.1
2023-08-02 13:22 UTC
Requires
- silverstripe/cms: ^4 || ^5
- silverstripe/framework: ^4 || ^5
Suggests
- silverstripe/gridfieldqueuedexport: Allows CSV exports of large amounts of data by processing exports in the background
README
提供了一个捕获简单 Silverstripe 表单的方法,并为用户提供友好的管理界面。
安装
composer require bigfork/silverstripe-form-capture
安装后,您需要运行 'dev/build'。
用法
要将表单提交存储起来,只需在您的表单处理器方法中调用 $form->captureForm()
即可。下面是使用示例
示例
在页面控制器中
public function MyForm() { $fields = FieldList::create( TextField::create('Name'), EmailField::create('Email'), TextareaField::create('Enquiry') ); $actions = FieldList::create( FormAction::create('doMyForm', 'Submit') ); $form = Form::create($this, __FUNCTION__, $fields, $actions); return $form; } public function doMyForm($data, $form) { $form->captureForm( 'Enquiry form submission', // Required - type of form submission 'Name', // Required (can be null) - form field containing the submitter's name 'Email', // Required (can be null) - form field containing the submitter's email address ['Captcha'], // Optional - list of fields that shouldn't be stored ['Enquiry'] // Optional - list of fields to show in "Details" column in CMS ); // Other processing }
在捕获表单时,会返回一些有用的信息,可以在控制器中使用。例如,返回一个链接到 CMS 中的提交区域。
$capturedSubmission = $form->captureForm('Contact form', null, null); echo($capturedSubmission['Link']); // http://your-site.com/admin/<Link to exact submission>
清除旧提交
您可以使用 ClearOldSubmissionsTask
自动删除超过预定义年龄的表单提交。要使用此任务,您必须首先配置表单提交的最大年龄。
Bigfork\SilverstripeFormCapture\Tasks\ClearOldSubmissionsTask: max_age_days: 90
致谢
感谢 Andrew Haine 构建原始的 Silverstripe Form Capture 模块,并允许我们接管维护和开发。