andrewhaine/silverstripe-form-capture

提供了一个捕获简单 Silverstripe 表单的方法,并为用户提供友好的管理界面

安装次数: 5,196

依赖关系: 0

建议者: 0

安全性: 1

星标: 1

关注者: 5

分支: 3

类型:silverstripe-vendormodule

4.0.1 2023-08-02 13:22 UTC

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 模块,并允许我们接管维护和开发。