andrewhaine / silverstripe-form-capture
Provides a method to capture simple silverstripe forms and a friendly admin interface for users
Installs: 5 222
Dependents: 0
Suggesters: 0
Security: 1
Stars: 1
Watchers: 5
Forks: 3
Type:silverstripe-vendormodule
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
Provides a method to capture simple Silverstripe forms and a friendly admin interface for users.
Installation
composer require bigfork/silverstripe-form-capture
After installing you will need to run 'dev/build'.
Usage
To store submissions from a form simply call $form->captureForm()
in your form handler method. See the example below for usage:
Example
In the page controller:
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 }
When capturing a form some useful information is returned which can be used in the controller. For example a link is returned to the submission area in the CMS.
$capturedSubmission = $form->captureForm('Contact form', null, null); echo($capturedSubmission['Link']); // http://your-site.com/admin/<Link to exact submission>
Clearing old submissions
You can use the ClearOldSubmissionsTask
to automatically delete form submissions older than a pre-defined age. To use this task, you must first configure the maximum age of form submissions:
Bigfork\SilverstripeFormCapture\Tasks\ClearOldSubmissionsTask: max_age_days: 90
Credit
Thank you to Andrew Haine for building the original Silverstripe Form Capture module and allowing us to take over maintenance & development.