DOC Linting

This commit is contained in:
Steve Boyd 2024-04-09 16:04:13 +12:00
parent 045f6c0e57
commit edfd0f5c06
13 changed files with 125 additions and 177 deletions

1
.doclintrc Normal file
View File

@ -0,0 +1 @@
docs/en/

View File

@ -41,6 +41,7 @@
"require-dev": {
"phpunit/phpunit": "^9.6",
"squizlabs/php_codesniffer": "^3",
"silverstripe/documentation-lint": "^1",
"silverstripe/standards": "^1",
"phpstan/extension-installer": "^1.3"
},
@ -70,6 +71,11 @@
"images"
]
},
"config": {
"allow-plugins": {
"dealerdirect/phpcodesniffer-composer-installer": true
}
},
"prefer-stable": true,
"minimum-stability": "dev"
}

View File

@ -1,8 +1,12 @@
---
title: Installation
---
# Installation
Installation should be done using Composer:
```
```bash
composer require silverstripe/userforms
```
@ -10,7 +14,7 @@ composer require silverstripe/userforms
After installation, make sure you rebuild your database through `dev/build`.
You should see a new page type in the CMS called 'User Defined Form'. This has a new 'Form' tab which has your form builder.
You should see a new page type in the CMS called "User Defined Form". This has a new "Form" tab which has your form builder.
### File uploads and security
@ -20,9 +24,9 @@ so they can be viewed later by CMS authors. Small files
are also attached to the (optional) email notifications
to any configured recipients.
Allowed file extensions can be configured globally through `File.allowed_extensions`,
Allowed file extensions can be configured globally through [`File.allowed_extensions`](api:SilverStripe\Assets\File->allowed_extensions),
and default to a safe set of files (e.g. disallowing `*.php` uploads).
You can define further exclusions through the `EditableFileField.allowed_extensions_blacklist`
You can define further exclusions through the [`EditableFileField.allowed_extensions_blacklist`](api:SilverStripe\UserForms\Model\EditableFormField\EditableFileField->allowed_extensions_blacklist)
configuration setting.
The allowed upload size can be set in the CMS as long as it doesn't exceed the PHP configuration
@ -30,7 +34,7 @@ for this website (the smaller value of `upload_max_filesize` or `post_max_size`)
### Securing uploaded files
By adding a File Upload Field to your user form you can allow your website users to upload files, which will be stored in a user-defined folder in your SilverStripe system. You can access these files via the "Submissions" tab, or from the "Files" area in the admin interface.
By adding a File Upload Field to your user form you can allow your website users to upload files, which will be stored in a user-defined folder in your Silverstripe CMS system. You can access these files via the "Submissions" tab, or from the "Files" area in the admin interface.
Please be aware that the responsibility of choosing a folder for files to be uploaded into is that of the CMS user. You can set the necessary "can view" permissions for the folder you create and/or choose via the "Files" section, then select that folder in the settings for the File Upload Field in your form.
@ -44,18 +48,18 @@ In other cases, submissions could be expected to contain private data.
If you want to use custom email templates set the following config option.
```yaml
```yml
SilverStripe\UserForms\Model\UserDefinedForm:
email_template_directory: mysite/templates/custom_userforms_emails/
```
Any SilverStripe templates placed in your `email_template_directory` directory will be available for use with submission emails.
Any templates placed in your `email_template_directory` directory will be available for use with submission emails.
### Custom multi-step button text
If you want to change the button text when using the Multi-Step/Page Break feature, simply add the following to your `config.yml`:
```yaml
```yml
SilverStripe\UserForms\Form\UserForm:
button_text: 'Your Text Here'
```

View File

@ -1,10 +1,14 @@
---
title: Creating custom fields
---
# Creating custom fields
To create and use your own custom fields, depending on what you want to accomplish, you may need to create two
new classes subclassed from the following:
- `EditableFormField` - this Field represents what will be seen/used in the CMS userforms interface
- `FormField` - this Field represents what will be seen/used in the frontend user form when the above field has been
- [`EditableFormField`](api:SilverStripe\UserForms\Model\EditableFormField) - this Field represents what will be seen/used in the CMS userforms interface
- [`FormField`](api:SilverStripe\Forms\FormField) - this Field represents what will be seen/used in the frontend user form when the above field has been
added
## How (without the "why")
@ -13,9 +17,9 @@ You need to create your own subclass of `EditableFormField` (the field which wil
implement the method `getFormField()`, which will need to return an instantiated `FormField` to be used in the
frontend form.
`EditableTextField` and `TextField` are two existing classes and probably the best example to look in to.
[`EditableTextField`](api:SilverStripe\UserForms\Model\EditableFormField\EditableTextField) and [`TextField`](api:SilverStripe\Forms\TextField) are two existing classes and probably the best example to look in to.
## Why two different Fields?
## Why two different fields?
Consider the following example (`EditableTextField` and `TextField`).

View File

@ -1,21 +1,26 @@
---
title: Troubleshooting
---
# Troubleshooting
Check the below if you have any issues during installation or use
## Installation Issues
## Installation issues
After installation make sure you have done a `dev/build` you may also need to flush the admin view by appending
`?flush=1` to the URL, e.g. `http://yoursite.com/admin?flush=1`
`?flush=1` to the URL, e.g. `https://example.com/admin?flush=1`
## Checkbox or Radio group custom messages not showing
## Checkbox or radio group custom messages not showing
If your project has a custom template for `UserFormsCheckboxSetField.ss` or `UserFormsOptionSetField.ss`, then you will need to ensure they include `$Top.getValidationAttributesHTML().RAW`. See
* [UserFormsCheckboxSetField.ss](../../templates/SilverStripe/UserForms/FormField/UserFormsCheckboxSetField.ss)
* [UserFormsOptionSetField.ss](../../templates/SilverStripe/UserForms/FormField/UserFormsOptionSetField.ss)
## UserForms EditableFormField Column Clean task
- [UserFormsCheckboxSetField.ss](../../templates/SilverStripe/UserForms/FormField/UserFormsCheckboxSetField.ss)
- [UserFormsOptionSetField.ss](../../templates/SilverStripe/UserForms/FormField/UserFormsOptionSetField.ss)
This task is used to clear unused columns from EditableFormField database tables.
## UserForms `EditableFormField` column clean task
This [`UserFormsColumnCleanTask`](api:SilverStripe\UserForms\Task\UserFormsColumnCleanTask) task is used to clear unused columns from EditableFormField database tables.
The reason to clear these columns is because having surplus forms can break form saving.
@ -23,7 +28,7 @@ Currently it only supports MySQL and when it is run it queries the EditableFormF
it then grabs the columns for the live database. It will create a backup of the table and then remove any columns that
are surplus.
To run the task, log in as an administrator and go to to http://yoursite/dev/tasks/UserFormsColumnCleanTask in your browser, or run `sake dev/tasks/UserFormsColumnCleanTask` from the command line.
To run the task, log in as an administrator and go to `https://example.com/dev/tasks/UserFormsColumnCleanTask` in your browser, or run `sake dev/tasks/UserFormsColumnCleanTask` from the command line.
## My CSV export times out or runs out of memory

View File

@ -1,23 +0,0 @@
# Compiling front-end files
UserForms stylesheets are written in SASS and JavaScript follows ES6 syntax. Both are compiled with Webpack into distributable, minified files.
To get started, you will first need NodeJS, NPM, Webpack and Yarn installed. For more information on this process, [see "Build Tooling" in the SilverStripe documentation](https://docs.silverstripe.org/en/4/contributing/build_tooling/).
## Watching for changes
As you make changes to SASS or JavaScript, you can ask Yarn to watch and rebuild the deltas as their are saved:
```sh
yarn watch
```
This will not minify the dist files.
## Compile assets for production
When you're happy with your changes and are ready to make a pull request you should run a "build" command to compile and minify everything:
```sh
yarn build
```

View File

@ -1,3 +1,7 @@
---
title: UserForms
---
# UserForms
UserForms enables CMS users to create dynamic forms via a drag and drop interface
@ -5,22 +9,13 @@ and without getting involved in any PHP code.
## Features
* Construct a form using all major form fields (text, email, dropdown, radio, checkbox..)
* Ability to extend userforms from other modules to provide extra fields.
* Ability to email multiple people the form submission
* Custom email templates
* View submitted submissions and export them to CSV
* Define custom error messages and validation settings
* Optionally display and hide fields using javascript based on users input
## Documentation
* [Installation instructions](installation.md)
* [Troubleshooting](troubleshooting.md)
* [User Documentation](userguide/index.md)
* [Compiling Front-End Files](compiling-front-end-files.md)
* [Creating Custom Fields](creating-custom-fields.md)
* [Upgrading to SilverStripe 4](upgrading.md)
- Construct a form using all major form fields (text, email, dropdown, radio, checkbox..)
- Ability to extend userforms from other modules to provide extra fields.
- Ability to email multiple people the form submission
- Custom email templates
- View submitted submissions and export them to CSV
- Define custom error messages and validation settings
- Optionally display and hide fields using JavaScript based on users input
## Thanks
@ -29,3 +24,5 @@ testers, clients who use the module and everyone that submits new features.
A big thanks goes out to [Jan Düsedau](http://eformation.de) for drawing
the custom icon set for the form fields.
[CHILDREN includeFolders]

View File

@ -1,41 +0,0 @@
# Upgrading to SilverStripe 4
## API changes
The SilverStripe 4 compatible version of UserForms (5.x) introduces some breaking API changes:
* Namespaces are added. Please use the SilverStripe upgrader to automatically update references in your code.
* Previously deprecated code from UserForms 4.x has been removed:
* `EditableFormField::getSettings()`
* `EditableFormField::setSettings()`
* `EditableFormField::setSetting()`
* `EditableFormField::getSetting()`
* `EditableFormField::getFieldName()`
* `EditableFormField::getSettingName()`
* `EditableFormField::migrateSettings()`
The frontend JavaScript and SASS assets have been converted from Compass to
[Webpack](https://github.com/silverstripe/webpack-config), and now live in the `client/` folder. Please
[see here](https://docs.silverstripe.org/en/4/contributing/build_tooling/) for information on this build toolchain.
## Data migration
UserForms 5.0 includes a legacy class name remapping configuration file (legacy.yml) as well as `$table_name`
configuration for every DataObject to ensure that existing data in your database will remain unchanged. This
should help to ensure that your upgrade process from UserForms 4.x on SilverStripe 3 is as seamless as possible.
## Secure assets for EditableFileField
In SilverStripe 3 with UserForms you could install the SecureAssets module to allow the ability to set permissions
on folders that files can be uploaded into via your custom forms.
In SilverStripe 4 this functionality is built into the core assets module, so the SecureAssets module is no longer
required, and the SecureEditableFileField extension has been removed.
**Important:** While you shouldn't have to do anything in terms of folder permissions during this upgrade, we highly
recommend that you sanity check any secure folders you have in your website to ensure that the permissions are still
locked down before going live.
Please be aware that if you had SecureAssets installed in SilverStripe 3 with UserForms your EditableFileField folder
choice would be made secure by default, whereas in SilverStripe 4 this is up to the user to configure at their
discretion.

View File

@ -18,10 +18,8 @@ drop-down menu will show up. Select "User Defined Form" Then hit the "Go" button
You will notice that a new page has been created, with the name of "New User Defined Form." You will be taken to edit the page once you click "Create."
<div class="note" markdown="1">
Don't worry if you create your page in the "wrong" place. Pages can be moved and re-ordered
easily.
</div>
> [!NOTE]
> Don't worry if you create your page in the "wrong" place. Pages can be moved and re-ordered easily.
## Combining forms and content
@ -31,10 +29,10 @@ however. You will notice in a newly created form page, there is some text in the
of the editing menu to begin with: "$UserDefinedForm"
The purpose of this little block of text is to tell the website where in the page you
would like to put the form. The form will appear on the website wherever the "$UserDefinedForm"
would like to put the form. The form will appear on the website wherever the `$UserDefinedForm`
appears in the editing pane, whether it is before text, after text, inside a table, etc.
If $UserDefinedForm is deleted by accident (or on purpose), SilverStripe automatically
If $UserDefinedForm is deleted by accident (or on purpose), Silverstripe CMS automatically
puts the form at the end of all the content.
![Form in content](_images/form-in-content.png)
@ -67,3 +65,10 @@ Each message links to it's corresponding field so users can easily make the requ
The 'Configuration' tab has a number of options used for customising your form's behaviour and appearance.
![Configuration](_images/userforms-config.png)
## Creating a multi-page form
To create a multi-page form, simply click the "Add Page Break" button.
This will create a page break field which is used to create a new page in the form. You can drag and drop this page break to separate form fields at the desired location.
![Multi-page forms](_images/multi-page-forms.png)

View File

@ -4,7 +4,7 @@ title: Field types
# Field types
## Checkbox Field
## Checkbox field
Selecting a checkbox field adds a single checkbox to a form, along with a place to
store a label for that checkbox. This is useful for getting information that has a
@ -13,7 +13,7 @@ understood the Terms and Conditions?"
Marking this field as required will require it to be checked.
## Checkbox Group
## Checkbox group
Selecting a checkbox group adds a field for multiple checkboxes to a form, along with a
place to store a label for the group. This is useful for getting information that has
@ -23,31 +23,31 @@ options" link to add user-selectable options.
Marking this field as required will require at least one option to be checked.
## Country Dropdown
## Country dropdown
A list of all countries drawn from the internal list of known countries.
## Date Field
## Date field
Selecting a date field adds a field for a date in a form. The time of day is not selectable, however.
If your theme enables it, a date picker popup will be displayed to the user on the frontend.
## Dropdown Field
## Dropdown field
Selecting a drop-down field adds a dropdown field to a form. This is useful for getting
information that has only one answer among several discrete choices, for example,
"Which region do you live in?" or "What subject is your question about?" You will
need to click on the "Show options" link to add user-selectable options.
## Email Field
## Email field
Selecting an Email field adds a textbox where an email address can be entered. Using the Email
field to store email addresses instead of a normal text field allows you to use that email
address in many automated tasks. For example, it allows the CMS to send reply email
automatically when a form is filled out.
## File Upload Field
## File upload field
Selecting a File Upload Field adds a field where users can upload a file from their
computers. This is useful for getting documents and media files.
@ -63,7 +63,6 @@ You can set any permission requirements on the upload folder by finding it in th
Only certain file extensions are considered safe for upload,
e.g. webserver script files will be denied but images will be allowed. The webserver environment also imposes a limit on file size by default.
## Heading
Selecting a Heading allows adds a place where you can put a heading for a form, or for
@ -73,7 +72,7 @@ the "Show options" link.
If you do not check the "Hide from reports" checkbox then this field will be displayed
in submission reports.
## HTML Block
## HTML block
Selecting an HTML block allows you to add any HTML code you wish into your form.
You can edit the HTML blog from the "Show options" link.
@ -88,7 +87,7 @@ add your own headings within the content of this field.
Note: Take care not to allow input from unauthorised sources or users, as custom script
or code could be injected into your form.
## Member List Field
## Member list field
Selecting a Member List Field adds a dropdown field which includes various groups of website
members (such as administrators or forum members) to the form. You can choose which group
@ -97,11 +96,11 @@ of members from the "Show Options" link.
Note: Take care that you do not expose confidential or personal information about your CMS
or front end users as these names will become publicly visible.
## Numeric Field
## Numeric field
A basic text field that will only accept numeric values (numbers and decimals only).
## Radio Field
## Radio field
Selecting a Radio field adds a field filed with "Radio button" options to a form.
Radio buttons are similar to checkboxes, except that only one button in a radio
@ -113,19 +112,19 @@ For example, a dropdown field may have one or two-word inputs, while a radio
button may have choices that are paragraphs in length. You will need to click
on the "Show options" link to add user-selectable options.
## Text Field
## Text field
Selecting a Text field adds a text field to the form. You can click on "Show options"
to determine the size and the number of rows in a text field.
**Put another way, if you'd like to create a question that...**
* Has a yes or no answer - use [Checkbox Field](#checkbox-field).
* Has multiple possible answers, from a list of choices - use [Checkbox Group](#checkbox-group).
* Has one answer, from a list of choices - use [Dropdown Field](#dropdown-field) (for short answers) or
- Has a yes or no answer - use [Checkbox Field](#checkbox-field).
- Has multiple possible answers, from a list of choices - use [Checkbox Group](#checkbox-group).
- Has one answer, from a list of choices - use [Dropdown Field](#dropdown-field) (for short answers) or
[Radio Field](#radio-field) (for longer answers).
* Requires a written answer - use [Text Field](#text-field).
- Requires a written answer - use [Text Field](#text-field).
**Or perhaps you'd like to add informational content to your form?**
* Use [HTML Block](#html-block), with the appropriate level [Heading](#heading).
- Use [HTML Block](#html-block), with the appropriate level [Heading](#heading).

View File

@ -30,7 +30,7 @@ Simply insert the merge field into the email content, and the field's value will
### Email details
#### Email Subject
#### Email subject
The subject of the email, you can either type a custom subject here or select a field from the form to use as the email subject.
@ -40,7 +40,7 @@ This is the recipient's address where the email will be sent.
#### Send email from
This shows where the email was sent from, and will most likely need to be an email address on the same domain as your site. For example If your website is yoursite.com, the email address for this field should be something@yoursite.com.
This shows where the email was sent from, and will most likely need to be an email address on the same domain as your site. For example If your website is `example.com`, the email address for this field should be `something@example.com`.
#### Email for reply to
@ -70,13 +70,12 @@ template can be selected to provide a standard formatted email to contain the ed
The list of available templates can be controlled by specifying the folder for these template files in YAML config.
```yaml
```yml
UserDefinedForm:
email_template_directory: mysite/templates/useremails/
```
### Custom Rules
### Custom rules
In this section you can determine whether to send the email to the recipient based on the data in the form submission.
@ -85,16 +84,16 @@ In this section you can determine whether to send the email to the recipient bas
This decides whether to send the email based on two options
1. *All* conditions are true (Every single custom rule must be met in order to send the email)
2. *Any* conditions are true (At least one of the custom rules must be met in order to send the email)
1. *Any* conditions are true (At least one of the custom rules must be met in order to send the email)
#### Adding a custom rule
* Click 'Add' to add a custom sending rule.
* Select the field which you want the custom rule to apply to
* Select the condition the field must follow
* enter for the condition (the 'is blank' and 'is not blank' conditions do not require any text)
- Click 'Add' to add a custom sending rule.
- Select the field which you want the custom rule to apply to
- Select the condition the field must follow
- enter for the condition (the 'is blank' and 'is not blank' conditions do not require any text)
## File Upload Field
## File upload field
> [!NOTE]
> This functionality is specifically included in Silverstripe core functionality 4.6 and above,
@ -124,7 +123,7 @@ A caution symbol is added to the form submission icon because it has a higher ri
**Restricted access:** ![User with lock icon](_images/user-lock.png)
Indicates that a file/folder has restricted access and will only be visible to certain users or groups. To learn more about the usage of this particular icon refer to
[File Permissions](https://userhelp.silverstripe.org/en/4/creating_pages_and_content/creating_and_editing_content/images_and_documents/file_permissions).
[File Permissions](https://userhelp.silverstripe.org/en/creating_pages_and_content/creating_and_editing_content/images_and_documents/file_permissions).
## Overview of files with custom permissions
@ -132,7 +131,8 @@ Indicates that a file/folder has restricted access and will only be visible to c
> [!NOTE]
> Folder with restricted access containing files with custom permissions and their associated file icons.
> * FS - Form submission
>
> - FS - Form submission
To get started, create a new **User Defined Form** page in the CMS. See [Creating and editing forms](creating-and-editing-forms)
to learn more. To add a File Upload field to the form, click on the ***Form Fields*** tab in the page editing view.
@ -148,7 +148,7 @@ You can either create a new folder or use an existing folder to store your file
The folder you select will become the default folder for this form and any additional Upload Fields which are added.
Each File Upload Field can use different folders for storing its files, this can be managed by editing the folder location on each individual field.
#### Option 1, create a new folder (recommended):
#### Option 1, create a new folder (recommended)
This option is only available the first time you add an upload field to your form. Once the first upload folder for the form has been established,
all subsequent file uploads from the same form will use this folder by default.
@ -160,7 +160,7 @@ It will be recommended for this folder (and the submission files) to be placed w
You can either use the suggested folder name or create your own by altering the folder name. You can also manually add deeper folder levels
by adding / in the text field provided e.g Competition-entries/May-2020.
By default the /Form-submissions folder is set so only [Admins](https://userhelp.silverstripe.org/en/4/managing_your_website/managing_roles_and_permissions/#using-roles)
By default the /Form-submissions folder is set so only [Admins](https://userhelp.silverstripe.org/en/managing_your_website/managing_roles_and_permissions/#using-roles)
have permissions to access it (restricted access), any files or folders in this folder will inherit these permissions.
This can be changed manually on a per file/folder basis from the **Files** area.
@ -168,7 +168,7 @@ Click **Save and continue** to continue editing your form.
![Create a new folder option](_images/modal-create-new-folder.png)
#### Option 2, use an existing folder:
#### Option 2, use an existing folder
If you choose to use a folder that already exists you can select the folder from the **Select folder** dropdown. Once you select a folder,
an icon will indicate whether or not the folder has restricted access and provide information for who the file uploads will be visible to.
@ -192,13 +192,13 @@ When viewing/selecting folder locations from the form you will see an icon indic
You will either see a **restricted access** icon, or a **warning** icon.
To store your files in a safer manor you can do one of several things:
* Create a new folder from the Files area, or if this is your first time setting up an Upload Field for this form you will
be guided through the process, for more information see [Setting up a folder to store file uploads for your form](#Setting-up-a-folder-to-store-file-uploads-for-your-form).
* Change the upload folder to one which already has restricted access. Edit the Upload Field and select a folder from the **Select a folder** dropdown.
* Change the view access permissions of the current folder in the Files area to restrict access to the file.
- Create a new folder from the Files area, or if this is your first time setting up an Upload Field for this form you will be guided through the process, for more information see [Setting up a folder to store file uploads for your form](#setting-up-a-folder-to-store-file-uploads-for-your-form).
- Change the upload folder to one which already has restricted access. Edit the Upload Field and select a folder from the **Select a folder** dropdown.
- Change the view access permissions of the current folder in the Files area to restrict access to the file.
You can manage your folder permissions by navigating to the Files section in the CMS menu and edit the folders details.
See [File Permissions](https://userhelp.silverstripe.org/en/4/creating_pages_and_content/creating_and_editing_content/images_and_documents/file_permissions)
for more information and [Roles and permissions](https://userhelp.silverstripe.org/en/4/managing_your_website/managing_roles_and_permissions/) to learn more.
See [File Permissions](https://userhelp.silverstripe.org/en/creating_pages_and_content/creating_and_editing_content/images_and_documents/file_permissions)
for more information and [Roles and permissions](https://userhelp.silverstripe.org/en/managing_your_website/managing_roles_and_permissions/) to learn more.
For more information on the usage of these icons in the files area, please refer to [File Indicators](https://userhelp.silverstripe.org/en/4/creating_pages_and_content/creating_and_editing_content/images_and_documents/file_permissions/#file-indicators).
For more information on the usage of these icons in the files area, please refer to [File Indicators](https://userhelp.silverstripe.org/en/creating_pages_and_content/creating_and_editing_content/images_and_documents/file_permissions/#file-indicators).

View File

@ -7,30 +7,31 @@ summary: How to use the UserForms module to create forms via the CMS.
## Before we begin
Make sure that your SilverStripe CMS installation has the [UserForms](https://addons.silverstripe.org/add-ons/silverstripe/userforms/) module installed.
Make sure that your Silverstripe CMS installation has the [UserForms](https://addons.silverstripe.org/add-ons/silverstripe/userforms/) module installed.
## Data Protection and Privacy
## Data protection and privacy
**IMPORTANT: READ THIS BEFORE USING THE MODULE**
> [!Important]
> This feature allows authors with CMS permissions to create forms which process submission data,
> and store data the CMS database by default. Anyone with the ability to create forms
> also has access to view and export submissions. As the owner and operator of your website,
> you should ensure processes and safeguards are in place to perform these actions securely.
>
> This is your responsibility
This feature allows authors with CMS permissions to create forms which process submission data,
and store data the CMS database by default. Anyone with the ability to create forms
also has access to view and export submissions. As the owner and operator of your website,
you should ensure processes and safeguards are in place to perform these actions securely.
Here are a few tips to get you started:
This is your responsibility, but here are a few tips to get you started:
* Ensure you have the necessary consents for processing and storing data according to your legislation (e.g. GDPR)
* Only accept form submissions via encrypted transfers (HTTPS) - check our [Secure Coding](https://docs.silverstripe.org/en/4/developer_guides/security/secure_coding/) guidelines
* Control access to form submissions (via CMS page access controls)
* Control access to files uploaded with submissions (via [folder access controls](field-types.md#file-upload-field))
* Create a process to limit the types of data you are allowed to collect via this feature (e.g. no payment information or health data)
* Create a process for limiting submission storage duration (manual deletion)
* Consider further safeguards such as at-rest encryption (check [encryption related addons](https://addons.silverstripe.org/add-ons?search=encrypt))
- Ensure you have the necessary consents for processing and storing data according to your legislation (e.g. GDPR)
- Only accept form submissions via encrypted transfers (HTTPS) - check our [Secure Coding](https://docs.silverstripe.org/en/developer_guides/security/secure_coding/) guidelines
- Control access to form submissions (via CMS page access controls)
- Control access to files uploaded with submissions (via [folder access controls](field-types.md#file-upload-field))
- Create a process to limit the types of data you are allowed to collect via this feature (e.g. no payment information or health data)
- Create a process for limiting submission storage duration (manual deletion)
- Consider further safeguards such as at-rest encryption (check [encryption related addons](https://addons.silverstripe.org/add-ons?search=encrypt))
## Features
* [Create and edit forms](creating-and-editing-forms.md)
* [Add different field types to a form](field-types.md)
* [Set up multipage forms](multipage-forms.md)
* [View submissions and set up automated emails upon form completion](form-submissions.md)
- [Create and edit forms](creating-and-editing-forms.md)
- [Add different field types to a form](field-types.md)
- [Set up multipage forms](multipage-forms.md)
- [View submissions and set up automated emails upon form completion](form-submissions.md)

View File

@ -1,10 +0,0 @@
---
title: Creating a multi-page form
---
## Creating a multi-page form
To create a multi-page form, simply click the 'Add Page Break' button.
This will create a page break field which is used to create a new page in the form. You can drag and drop this page break to separate form fields at the desired location.
![Multi-page forms](_images/multi-page-forms.png)