Form Reform can use a range of handler plugins to configure form processing.
Functionality can be extended by adding plugin classes for additional Form Handlers. Form Handler plugins are simple classes that provide the functionality to perform a single form handling action. They should inherit from FormHandlersPluginBase. Details are provided by comments in the code.
Plugins can be added by placing the plugin classes at packages/anyPackageName/src/FormReform/FormHandlers/Plugins/PluginName or application/src/FormReform/FormHandlers/Plugins/PluginName. Plugins can also be similarly placed beneath the plugin type's namespace declared in a package controller's AutoloaderRegistries.
Lookup the Latitude/Longitude for an address string.
Geocoding begins by assembling an address string using {{place_holders}} from form data and other sources. The address string is then sent to the Google Geocode API and the returned data made available to following handlers as {{geocode:key}} data values such as {{geocode:latitude}} and {{geocode:longitude}}.
Geocoding is only as accurate as the address string provided. A partial address string or ambiguous address string may result in multiple places being returned or none being returned. Reliable results are indicated by a {{geocode:place_count}} of 1.
When the address string is incomplete or the Google geocode API cannot return data, an error will be returned. If this is important to form processing, geocoding should be followed by On Success / On Error handlers.
Keys provided for geocoded data. Accuracy and provision depends on data from Google.
The form category is data extracted from the form input elements. When a category is not specified, this category is defaulted. Keys are the input names:
We have multiple ways to work with form data from repeatable groups:
The query category is actual query string data. This may not be the same as the form category, but can also be used when {{place_holders}} are not in a form pileline. Keys are the query key names:
The page category provides information about the submitting page:
The visitor category provides information about the visitor and browser:
The user category provides information about the current user:
The date category, formatted using php DateTime:
The pipeline category is a list of status data provided by many of the handlers. Keys are a snake_case handle derived from the Plugin Name. Values depend on plugins:
The random category generates random values and some related utilities:
To distinguish between an unfilled {{place_holder}} and a deliberately empty value, the empty category provides explicitly empty values. All but null can also be provided using the {{category:key|default}} component of a {{place_holder}}:
The errors category provides error messages reported by form handlers:
The thumbnail category prefix creates HTML <img> tags from image files identified by fID, UUID, or path. Use this category by prefixing another category with thumbnail_.
For example, if the form input my_input would normally provide an fID, UUID or File Manager path for an image files as {{form:my_input}}, then {{thumbnail_form:my_input}} will provide an <img> tag for that image file. A further refinement is to insert a size such as {{thumbnail_[size]_form:my_input}} to fit the image into a thumbnail size. The size can be any number by itself, or followed by w, h, or b to fit to width, height or box, or a pair of numbers as WidthxHeight to specify both width and height in pixels. The thumbnail category prefix can be used to preceded any category that returns and image fID, UUID or File Manager path, not just the form category.
If you have a large image and would prefer a picture element, the picture category prefix works in the same way to prefix another category and generate a <picture> element.
If a file is not an image file, the default Concrete CMS icon for the file type will be returned.
The math category enables/disables evaluation of mathematical expressions:
The webcam category provides further categories with further information about an imported file.
In the form handler pipeline, the form data placeholder {{form:my_input}} provides the File ID (fID) for the Image Picker input my_input.
This is supplemented by the image_picker category to provide further information about the picked images.
Clear a {{place_holder}} category that has been added dynamically.
Form handlers and other extensions may declare and populate {{place_holder}} categories in order to make data available to Form Reform form handlers and blocks.
A specified category will be cleared from this handler onwards. If the category does not exist or has not been populated, this handler has no effect.
Only dynamically added categories can be cleared. Built in categories such as "form", "user" and "date" cannot be cleared.
Clear all errors so far.
Empties the list of accumulated errors
Files held in quarantine are cleared without import to the File Manager.
Form inputs that utilize Snapshot tools initially place files in a quarantine folder. This handler clears all files associated with a form or files associated with a specified input from quarantine.
Insert a comment.
Make a comment or note within the pipeline. This handler has no effect on pipeline processing.
Denotes alternative condition processing.
The handlers ConditionIf, ConditionElseIf, ConditionElse and ConditionEnd manage a single level of conditional processing in form handling.
The general process should be :
Denotes conditional alternative condition processing.
The handlers ConditionIf, ConditionElseIf, ConditionElse and ConditionEnd manage a single level of conditional processing in form handling.
The general process should be :
The form category is data extracted from the form input elements. When a category is not specified, this category is defaulted. Keys are the input names:
We have multiple ways to work with form data from repeatable groups:
The query category is actual query string data. This may not be the same as the form category, but can also be used when {{place_holders}} are not in a form pileline. Keys are the query key names:
The page category provides information about the submitting page:
The visitor category provides information about the visitor and browser:
The user category provides information about the current user:
The date category, formatted using php DateTime:
The pipeline category is a list of status data provided by many of the handlers. Keys are a snake_case handle derived from the Plugin Name. Values depend on plugins:
The random category generates random values and some related utilities:
To distinguish between an unfilled {{place_holder}} and a deliberately empty value, the empty category provides explicitly empty values. All but null can also be provided using the {{category:key|default}} component of a {{place_holder}}:
The errors category provides error messages reported by form handlers:
The thumbnail category prefix creates HTML <img> tags from image files identified by fID, UUID, or path. Use this category by prefixing another category with thumbnail_.
For example, if the form input my_input would normally provide an fID, UUID or File Manager path for an image files as {{form:my_input}}, then {{thumbnail_form:my_input}} will provide an <img> tag for that image file. A further refinement is to insert a size such as {{thumbnail_[size]_form:my_input}} to fit the image into a thumbnail size. The size can be any number by itself, or followed by w, h, or b to fit to width, height or box, or a pair of numbers as WidthxHeight to specify both width and height in pixels. The thumbnail category prefix can be used to preceded any category that returns and image fID, UUID or File Manager path, not just the form category.
If you have a large image and would prefer a picture element, the picture category prefix works in the same way to prefix another category and generate a <picture> element.
If a file is not an image file, the default Concrete CMS icon for the file type will be returned.
The math category enables/disables evaluation of mathematical expressions:
The webcam category provides further categories with further information about an imported file.
In the form handler pipeline, the form data placeholder {{form:my_input}} provides the File ID (fID) for the Image Picker input my_input.
This is supplemented by the image_picker category to provide further information about the picked images.
Denotes end of condition processing.
The handlers ConditionIf, ConditionElseIf, ConditionElse and ConditionEnd manage a single level of conditional processing in form handling.
The general process should be :
Check a condition and either proceed or move forwards to an alternative.
The handlers ConditionIf, ConditionElseIf, ConditionElse and ConditionEnd manage a single level of conditional processing in form handling.
The general process should be :
The form category is data extracted from the form input elements. When a category is not specified, this category is defaulted. Keys are the input names:
We have multiple ways to work with form data from repeatable groups:
The query category is actual query string data. This may not be the same as the form category, but can also be used when {{place_holders}} are not in a form pileline. Keys are the query key names:
The page category provides information about the submitting page:
The visitor category provides information about the visitor and browser:
The user category provides information about the current user:
The date category, formatted using php DateTime:
The pipeline category is a list of status data provided by many of the handlers. Keys are a snake_case handle derived from the Plugin Name. Values depend on plugins:
The random category generates random values and some related utilities:
To distinguish between an unfilled {{place_holder}} and a deliberately empty value, the empty category provides explicitly empty values. All but null can also be provided using the {{category:key|default}} component of a {{place_holder}}:
The errors category provides error messages reported by form handlers:
The thumbnail category prefix creates HTML <img> tags from image files identified by fID, UUID, or path. Use this category by prefixing another category with thumbnail_.
For example, if the form input my_input would normally provide an fID, UUID or File Manager path for an image files as {{form:my_input}}, then {{thumbnail_form:my_input}} will provide an <img> tag for that image file. A further refinement is to insert a size such as {{thumbnail_[size]_form:my_input}} to fit the image into a thumbnail size. The size can be any number by itself, or followed by w, h, or b to fit to width, height or box, or a pair of numbers as WidthxHeight to specify both width and height in pixels. The thumbnail category prefix can be used to preceded any category that returns and image fID, UUID or File Manager path, not just the form category.
If you have a large image and would prefer a picture element, the picture category prefix works in the same way to prefix another category and generate a <picture> element.
If a file is not an image file, the default Concrete CMS icon for the file type will be returned.
The math category enables/disables evaluation of mathematical expressions:
The webcam category provides further categories with further information about an imported file.
In the form handler pipeline, the form data placeholder {{form:my_input}} provides the File ID (fID) for the Image Picker input my_input.
This is supplemented by the image_picker category to provide further information about the picked images.
Ends processing of the pipeline.
Ends processing at this step. No further handlers will be executed within the current pipeline. Any pending actions from handlers such as showing messages or redirecting pages will be completed.
Extend or modify the submitted form data with additional names/values.
The form category is data extracted from the form input elements. When a category is not specified, this category is defaulted. Keys are the input names:
We have multiple ways to work with form data from repeatable groups:
The query category is actual query string data. This may not be the same as the form category, but can also be used when {{place_holders}} are not in a form pileline. Keys are the query key names:
The page category provides information about the submitting page:
The visitor category provides information about the visitor and browser:
The user category provides information about the current user:
The date category, formatted using php DateTime:
The pipeline category is a list of status data provided by many of the handlers. Keys are a snake_case handle derived from the Plugin Name. Values depend on plugins:
The random category generates random values and some related utilities:
To distinguish between an unfilled {{place_holder}} and a deliberately empty value, the empty category provides explicitly empty values. All but null can also be provided using the {{category:key|default}} component of a {{place_holder}}:
The errors category provides error messages reported by form handlers:
The thumbnail category prefix creates HTML <img> tags from image files identified by fID, UUID, or path. Use this category by prefixing another category with thumbnail_.
For example, if the form input my_input would normally provide an fID, UUID or File Manager path for an image files as {{form:my_input}}, then {{thumbnail_form:my_input}} will provide an <img> tag for that image file. A further refinement is to insert a size such as {{thumbnail_[size]_form:my_input}} to fit the image into a thumbnail size. The size can be any number by itself, or followed by w, h, or b to fit to width, height or box, or a pair of numbers as WidthxHeight to specify both width and height in pixels. The thumbnail category prefix can be used to preceded any category that returns and image fID, UUID or File Manager path, not just the form category.
If you have a large image and would prefer a picture element, the picture category prefix works in the same way to prefix another category and generate a <picture> element.
If a file is not an image file, the default Concrete CMS icon for the file type will be returned.
The math category enables/disables evaluation of mathematical expressions:
The webcam category provides further categories with further information about an imported file.
In the form handler pipeline, the form data placeholder {{form:my_input}} provides the File ID (fID) for the Image Picker input my_input.
This is supplemented by the image_picker category to provide further information about the picked images.
Build a list from form data, text and other values. Then concatenate that list into a new item of data.
Each item in the list may contain {{place_holders}}. These are filtered to remove empty values and concatenated about a configurable snippet to provide a new item of data.
The form category is data extracted from the form input elements. When a category is not specified, this category is defaulted. Keys are the input names:
We have multiple ways to work with form data from repeatable groups:
The query category is actual query string data. This may not be the same as the form category, but can also be used when {{place_holders}} are not in a form pileline. Keys are the query key names:
The page category provides information about the submitting page:
The visitor category provides information about the visitor and browser:
The user category provides information about the current user:
The date category, formatted using php DateTime:
The pipeline category is a list of status data provided by many of the handlers. Keys are a snake_case handle derived from the Plugin Name. Values depend on plugins:
The random category generates random values and some related utilities:
To distinguish between an unfilled {{place_holder}} and a deliberately empty value, the empty category provides explicitly empty values. All but null can also be provided using the {{category:key|default}} component of a {{place_holder}}:
The errors category provides error messages reported by form handlers:
The thumbnail category prefix creates HTML <img> tags from image files identified by fID, UUID, or path. Use this category by prefixing another category with thumbnail_.
For example, if the form input my_input would normally provide an fID, UUID or File Manager path for an image files as {{form:my_input}}, then {{thumbnail_form:my_input}} will provide an <img> tag for that image file. A further refinement is to insert a size such as {{thumbnail_[size]_form:my_input}} to fit the image into a thumbnail size. The size can be any number by itself, or followed by w, h, or b to fit to width, height or box, or a pair of numbers as WidthxHeight to specify both width and height in pixels. The thumbnail category prefix can be used to preceded any category that returns and image fID, UUID or File Manager path, not just the form category.
If you have a large image and would prefer a picture element, the picture category prefix works in the same way to prefix another category and generate a <picture> element.
If a file is not an image file, the default Concrete CMS icon for the file type will be returned.
The math category enables/disables evaluation of mathematical expressions:
The webcam category provides further categories with further information about an imported file.
In the form handler pipeline, the form data placeholder {{form:my_input}} provides the File ID (fID) for the Image Picker input my_input.
This is supplemented by the image_picker category to provide further information about the picked images.
Extend or modify the submitted form data with a selected page ID or other page property.
Attach or replace a parameter name => value as additional data to the form response or any other placeholder category. The new value is taken from the selected page. By default, this is the page ID (cID). Various other page properties and attributes can be selected. Unlike the {{page:key}} placeholder, this handler can extract properties from any selected page in addition to the current page.
Extend or modify the submitted form data by matching a lookup table.
Where simple logic is required to map an existing value into a new value, a lookup table can be considerably more efficient and easier to work with than an if/elseif/else chain of handlers.
This handler provides two levels of conditional processing. The first level determines if this handler evaluates any further. The second level attempts to match the Match Source against a list of When Matched values and returns the Return Value for the first successful match.
Attach or replace a parameter name => value as additional data to the form response or any other placeholder category. The new value is determined by the first match found in the lookup table. The Match Source, When Matched value and Return Value may all use {{place_holders}} to be filled with system or entered form values. {{Place_holders}} in the Return Value colum are by default filled with a textual value. Where a Return Value {{place_holder}} will be used in further evaluation, it may be convenient to fill it with the raw data. For example, to preserve and use the structure of an array.
The form category is data extracted from the form input elements. When a category is not specified, this category is defaulted. Keys are the input names:
We have multiple ways to work with form data from repeatable groups:
The query category is actual query string data. This may not be the same as the form category, but can also be used when {{place_holders}} are not in a form pileline. Keys are the query key names:
The page category provides information about the submitting page:
The visitor category provides information about the visitor and browser:
The user category provides information about the current user:
The date category, formatted using php DateTime:
The pipeline category is a list of status data provided by many of the handlers. Keys are a snake_case handle derived from the Plugin Name. Values depend on plugins:
The random category generates random values and some related utilities:
To distinguish between an unfilled {{place_holder}} and a deliberately empty value, the empty category provides explicitly empty values. All but null can also be provided using the {{category:key|default}} component of a {{place_holder}}:
The errors category provides error messages reported by form handlers:
The thumbnail category prefix creates HTML <img> tags from image files identified by fID, UUID, or path. Use this category by prefixing another category with thumbnail_.
For example, if the form input my_input would normally provide an fID, UUID or File Manager path for an image files as {{form:my_input}}, then {{thumbnail_form:my_input}} will provide an <img> tag for that image file. A further refinement is to insert a size such as {{thumbnail_[size]_form:my_input}} to fit the image into a thumbnail size. The size can be any number by itself, or followed by w, h, or b to fit to width, height or box, or a pair of numbers as WidthxHeight to specify both width and height in pixels. The thumbnail category prefix can be used to preceded any category that returns and image fID, UUID or File Manager path, not just the form category.
If you have a large image and would prefer a picture element, the picture category prefix works in the same way to prefix another category and generate a <picture> element.
If a file is not an image file, the default Concrete CMS icon for the file type will be returned.
The math category enables/disables evaluation of mathematical expressions:
The webcam category provides further categories with further information about an imported file.
In the form handler pipeline, the form data placeholder {{form:my_input}} provides the File ID (fID) for the Image Picker input my_input.
This is supplemented by the image_picker category to provide further information about the picked images.
Build a text or rich text item to extend form data.
Build boilerplate for a text item, fill the boilerplate with form and site parameters and populate the form response or any other placeholder category with that text. Names and text may both use {{place_holders}} to be filled with system or entered form values.
The form category is data extracted from the form input elements. When a category is not specified, this category is defaulted. Keys are the input names:
We have multiple ways to work with form data from repeatable groups:
The query category is actual query string data. This may not be the same as the form category, but can also be used when {{place_holders}} are not in a form pileline. Keys are the query key names:
The page category provides information about the submitting page:
The visitor category provides information about the visitor and browser:
The user category provides information about the current user:
The date category, formatted using php DateTime:
The pipeline category is a list of status data provided by many of the handlers. Keys are a snake_case handle derived from the Plugin Name. Values depend on plugins:
The random category generates random values and some related utilities:
To distinguish between an unfilled {{place_holder}} and a deliberately empty value, the empty category provides explicitly empty values. All but null can also be provided using the {{category:key|default}} component of a {{place_holder}}:
The errors category provides error messages reported by form handlers:
The thumbnail category prefix creates HTML <img> tags from image files identified by fID, UUID, or path. Use this category by prefixing another category with thumbnail_.
For example, if the form input my_input would normally provide an fID, UUID or File Manager path for an image files as {{form:my_input}}, then {{thumbnail_form:my_input}} will provide an <img> tag for that image file. A further refinement is to insert a size such as {{thumbnail_[size]_form:my_input}} to fit the image into a thumbnail size. The size can be any number by itself, or followed by w, h, or b to fit to width, height or box, or a pair of numbers as WidthxHeight to specify both width and height in pixels. The thumbnail category prefix can be used to preceded any category that returns and image fID, UUID or File Manager path, not just the form category.
If you have a large image and would prefer a picture element, the picture category prefix works in the same way to prefix another category and generate a <picture> element.
If a file is not an image file, the default Concrete CMS icon for the file type will be returned.
The math category enables/disables evaluation of mathematical expressions:
The webcam category provides further categories with further information about an imported file.
In the form handler pipeline, the form data placeholder {{form:my_input}} provides the File ID (fID) for the Image Picker input my_input.
This is supplemented by the image_picker category to provide further information about the picked images.
Immediately fails silently.
Sometimes rather than ending with a helpful validation error message or completing the form handling pipeline, you may just want a form submission to disappear into a black hole with no response whatsoever. For example, when spam is detected (The Spam Detect handler has options to fail silently built in, so does not require this.)
Dispatches a ConcreteCMS event.
The event on_form_reform_event is dispatched with optional parameters submission_data and errors. Event listeners may read and/or modify these parameters.
The event name defaults to event and is dispatched as on_form_reform_event. The special event name test is handled by the package to (where configured) add some test data to the form submission and inject a test error message.
Generate an ID code such as a PIN code.
An ID code can be generated from 1-64 digits, filled to a {{data_value}}, formatted into groupings and persisted for subsequent validation.
Generate an QR code.
A QR can be generated from any text including {{place_holders}}.
The QR code may be generated as a base64 encoded PNG or as a base64 encoded SVG. Pixel dimensions are configurable. In general, choose a larger dimension for codes containing longer text.
Files held in quarantine are released and imported to the File Manager.
Form inputs that utilize Snapshot tools initially place files in a quarantine folder. This handler releases all files associated with a form or files associated with a specified input from quarantine and makes the files available as {{place_holders}} to subsequent form handlers.
Iterate over a multi-value item of data.
The handlers IterateData and IterateDataEnd manage iteration over each item in multi-value item of data.
The general process should be:
Denotes end of iteration over a multi-value item of data.
The handlers IterateRepeatableGroup and IterateRepeatableGroupEnd manage iteration over each item in a repeatable group.
The general process should be:
Iterate over items in a repeatable group.
The handlers IterateRepeatableGroup and IterateRepeatableGroupEnd manage iteration over each item in a repeatable group.
The general process should be :
Denotes end of iteration over a repeatable group.
The handlers IterateRepeatableGroup and IterateRepeatableGroupEnd manage iteration over each item in a repeatable group.
The general process should be :
Log errors so far.
Logs the current list of errors. If no errors, behaviour is configurable to do nothing or to log a 'No Errors' message.
Log the currently recorded handler results.
Logs the current pipeline handler results to the Form Reform channel. Use this as a diagnostic when you don't want the full logging options.
Log the current pipeline.
Logs the configured form Handler Pipeline to the Form Reform channel. Use this as a diagnostic when you don't want the full logging options.
Log all submitted data.
Logs all submitted data to the Form Reform log channel. Raw data is logged prior to any data extraction.
Log data extracted from form fields.
Log only the data extracted by the form field blocks through their extractSubmissionData() methods.
Navigate tabs in Magic Tabs.
Primarily used with AJAX submissions when the form is within Magic Tabs. This is similar to the action of a Magic Tabs Jump block. The tab navigation is made on return from the AJAX submission. Outside of an AJAX submission, this handler has no effect.
GoTo a tab requires a target. For other actions you can usually leave the target blank. To identify a specific tab you can provide any of:
Merge form previously saved to cookie with form data.
Data extracted from form fields is merged with form data previously saved to visitor/user cookie data. Existing data from the cookie or submitted data can take priority.
Merge form previously saved to default store store with form data.
Data extracted from form fields is merged with form data previously saved to the default data store. Existing data from the default or submitted data can take priority.
Merge form previously saved to session with form data.
Data extracted from form fields is merged with form data previously saved to visitor/user session data. Existing data from the session or submitted data can take priority.
Create a form response message to be displayed to the user.
Build boilerplate for a response message, fill the boilerplate with form and site parameters and select a level to emphasize the message display. All text fields can use {{place_holders}} to be filled with system or entered form values.
The form category is data extracted from the form input elements. When a category is not specified, this category is defaulted. Keys are the input names:
We have multiple ways to work with form data from repeatable groups:
The query category is actual query string data. This may not be the same as the form category, but can also be used when {{place_holders}} are not in a form pileline. Keys are the query key names:
The page category provides information about the submitting page:
The visitor category provides information about the visitor and browser:
The user category provides information about the current user:
The date category, formatted using php DateTime:
The pipeline category is a list of status data provided by many of the handlers. Keys are a snake_case handle derived from the Plugin Name. Values depend on plugins:
The random category generates random values and some related utilities:
To distinguish between an unfilled {{place_holder}} and a deliberately empty value, the empty category provides explicitly empty values. All but null can also be provided using the {{category:key|default}} component of a {{place_holder}}:
The errors category provides error messages reported by form handlers:
The thumbnail category prefix creates HTML <img> tags from image files identified by fID, UUID, or path. Use this category by prefixing another category with thumbnail_.
For example, if the form input my_input would normally provide an fID, UUID or File Manager path for an image files as {{form:my_input}}, then {{thumbnail_form:my_input}} will provide an <img> tag for that image file. A further refinement is to insert a size such as {{thumbnail_[size]_form:my_input}} to fit the image into a thumbnail size. The size can be any number by itself, or followed by w, h, or b to fit to width, height or box, or a pair of numbers as WidthxHeight to specify both width and height in pixels. The thumbnail category prefix can be used to preceded any category that returns and image fID, UUID or File Manager path, not just the form category.
If you have a large image and would prefer a picture element, the picture category prefix works in the same way to prefix another category and generate a <picture> element.
If a file is not an image file, the default Concrete CMS icon for the file type will be returned.
The math category enables/disables evaluation of mathematical expressions:
The webcam category provides further categories with further information about an imported file.
In the form handler pipeline, the form data placeholder {{form:my_input}} provides the File ID (fID) for the Image Picker input my_input.
This is supplemented by the image_picker category to provide further information about the picked images.
Designate the next form state.
A form control can be hidden, disabled or not rendered for various form states, for example, when a success message is shown or during one or more parts of a multi-step form. All forms begin in Step 1. The next state(s) can also be set automatically by a Message. States are accumulated through the executed handler pipeline steps.
A null handler.
Do absolutely nothing.
Denotes error processing.
On Error and On Success should always be used in together to denote processing for errors and processing for no errors. Either may be used first.
The general process should be one of:
Denotes success processing (no errors).
On Error and On Success should always be used in together to denote processing for errors and processing for no errors. Either may be used first.
The general process should be one of:
Query the default store counting matching previous submissions.
The default store is queried for previous submissions matching configurable criteria and returns a count of submissions.
Count existing responses by matching one or more criteria of the response.
Redirect to a page or URL.
When the pipeline completes or is ended, the browser will be redirected to the configured page or URL. An optional condition may be configured to control redirection.
Redirect options are:
The form category is data extracted from the form input elements. When a category is not specified, this category is defaulted. Keys are the input names:
We have multiple ways to work with form data from repeatable groups:
The query category is actual query string data. This may not be the same as the form category, but can also be used when {{place_holders}} are not in a form pileline. Keys are the query key names:
The page category provides information about the submitting page:
The visitor category provides information about the visitor and browser:
The user category provides information about the current user:
The date category, formatted using php DateTime:
The pipeline category is a list of status data provided by many of the handlers. Keys are a snake_case handle derived from the Plugin Name. Values depend on plugins:
The random category generates random values and some related utilities:
To distinguish between an unfilled {{place_holder}} and a deliberately empty value, the empty category provides explicitly empty values. All but null can also be provided using the {{category:key|default}} component of a {{place_holder}}:
The errors category provides error messages reported by form handlers:
The thumbnail category prefix creates HTML <img> tags from image files identified by fID, UUID, or path. Use this category by prefixing another category with thumbnail_.
For example, if the form input my_input would normally provide an fID, UUID or File Manager path for an image files as {{form:my_input}}, then {{thumbnail_form:my_input}} will provide an <img> tag for that image file. A further refinement is to insert a size such as {{thumbnail_[size]_form:my_input}} to fit the image into a thumbnail size. The size can be any number by itself, or followed by w, h, or b to fit to width, height or box, or a pair of numbers as WidthxHeight to specify both width and height in pixels. The thumbnail category prefix can be used to preceded any category that returns and image fID, UUID or File Manager path, not just the form category.
If you have a large image and would prefer a picture element, the picture category prefix works in the same way to prefix another category and generate a <picture> element.
If a file is not an image file, the default Concrete CMS icon for the file type will be returned.
The math category enables/disables evaluation of mathematical expressions:
The webcam category provides further categories with further information about an imported file.
In the form handler pipeline, the form data placeholder {{form:my_input}} provides the File ID (fID) for the Image Picker input my_input.
This is supplemented by the image_picker category to provide further information about the picked images.
Remove form data previously saved to the default store.
One or more records will be removed (deleted) from the default store. See also Delete From Default Store.
Find an existing response by matching one or more criteria of the response. Items marked * cannot be used alone. They can only be used in association with un-marked criteria.
A form could have been saved to the name configured by the form blocks or to a different (alias) name. Take care about the scope when falling back on the default name "form_reform" to not inadvertently remove unintended data. There is no undo capability.
Save form submission to a CSV file.
Pick a Folder from the file manager and Form Reform will create and update a new CSV file for form results in that folder. The file will be named after the form name or an alias.
A form can be saved to the name configured by the form blocks or to a different (alias) name. This can be convenient when you take advantage of the default name "form_reform" when adding a single form to a page, but would like a more specific name for the saved form data.
The file will be named after the form name or alias followed by configurable text and {{PlaceHolders}}. {{PlaceHolders}} should be used with caution to avoid accidentally creating a profusion of files.
The CSV column headings are set when the file is created by the first form submission. If you subsequently change the form input fields, the CSV columns could become skewed. In such cases you should either change the form name / alias and begin a new CSV or manually edit the existing CSV to match the new form. Similar care must be taken if adding data to a previously uploaded CSV.
Form items may optionally be redacted from the data that is saved. For example, to remove a password from the saved data. Redacted items are listed by input_name.
Save form submission to browser cookie.
Data extracted from form fields is saved as a browser cookie. The primary reason for saving to a cookie is to enable values to be recovered and inserted into the same or other forms. Cookie data is available in the user's browser, so should not be relied upon for any critical data as it can easily be viewed and even hacked.
A form can be saved to the name configured by the form blocks or to a different (alias) name. This can be convenient when you take advantage of the default name "form_reform" when adding a single form to a page, but would like a more specific name for the saved form data.
A form submission may optionally update an existing response by matching one or more criteria of the response.
Save form submission to the default table.
Saves data extracted from form fields to the default table FormReformDefault. Form data is serialised as JSON.
A form can be saved to the name configured by the form blocks or to a different (alias) name. This can be convenient when you take advantage of the default name "form_reform" when adding a single form to a page, but would like a more specific name for the saved form data.
A form submission may optionally update an existing response by matching one or more criteria of the response. Items marked * cannot be used alone. They can only be used in association with un-marked criteria.
Save each form submission to an individual file.
Pick a Folder from the file manager and Form Reform will create a new file for each saved form submission in that folder.
A form can be saved to the name configured by the form blocks or to a different (alias) name. This can be convenient when you take advantage of the default name "form_reform" when adding a single form to a page, but would like a more specific name for the saved form data.
The file will be named after the form name or alias followed by configurable text and {{PlaceHolders}}.
File format is also selectable. You may need to add specific extensions in Allowed File Types for some formats.
Form items may optionally be redacted from the data that is saved. For example, to remove a password from the saved data. Redacted items are listed by input_name.
Save form submission to session data.
Data extracted from form fields is saved to the visitor/user session data. This is transient data that lasts for the duration of the Concrete CMS session. The primary reason for saving to a session is to enable values to be recovered and inserted into the same or other forms.
A form can be saved to the name configured by the form blocks or to a different (alias) name. This can be convenient when you take advantage of the default name "form_reform" when adding a single form to a page, but would like a more specific name for the saved form data.
A form submission may optionally update an existing response by matching one or more criteria of the response.
Send an email.
Build boilerplate for an email, fill the boilerplate with form and site parameters. Send it to a configurable location. All text fields can use {{place_holders}} to be filled with system or entered form values. An optional condition may be configured to control sending email.
An email address can be entered as an actual name@address.com, as a user ID, as a {{place_holder}} or any combination.
The form category is data extracted from the form input elements. When a category is not specified, this category is defaulted. Keys are the input names:
We have multiple ways to work with form data from repeatable groups:
The query category is actual query string data. This may not be the same as the form category, but can also be used when {{place_holders}} are not in a form pileline. Keys are the query key names:
The page category provides information about the submitting page:
The visitor category provides information about the visitor and browser:
The user category provides information about the current user:
The date category, formatted using php DateTime:
The pipeline category is a list of status data provided by many of the handlers. Keys are a snake_case handle derived from the Plugin Name. Values depend on plugins:
The random category generates random values and some related utilities:
To distinguish between an unfilled {{place_holder}} and a deliberately empty value, the empty category provides explicitly empty values. All but null can also be provided using the {{category:key|default}} component of a {{place_holder}}:
The errors category provides error messages reported by form handlers:
The thumbnail category prefix creates HTML <img> tags from image files identified by fID, UUID, or path. Use this category by prefixing another category with thumbnail_.
For example, if the form input my_input would normally provide an fID, UUID or File Manager path for an image files as {{form:my_input}}, then {{thumbnail_form:my_input}} will provide an <img> tag for that image file. A further refinement is to insert a size such as {{thumbnail_[size]_form:my_input}} to fit the image into a thumbnail size. The size can be any number by itself, or followed by w, h, or b to fit to width, height or box, or a pair of numbers as WidthxHeight to specify both width and height in pixels. The thumbnail category prefix can be used to preceded any category that returns and image fID, UUID or File Manager path, not just the form category.
If you have a large image and would prefer a picture element, the picture category prefix works in the same way to prefix another category and generate a <picture> element.
If a file is not an image file, the default Concrete CMS icon for the file type will be returned.
The math category enables/disables evaluation of mathematical expressions:
The webcam category provides further categories with further information about an imported file.
In the form handler pipeline, the form data placeholder {{form:my_input}} provides the File ID (fID) for the Image Picker input my_input.
This is supplemented by the image_picker category to provide further information about the picked images.
Set an error, for example to force an On Error.
Set a plain text error and/or a rich text error. Text may use {{place_holders}} to fill data.
Forcing an error can be useful to facilitate testing the form handler pipeline. Setting an error can also be used within a ConditionIf ... ConditionEnd set of handlers where the condition tests for an an error condition as a consequence of multiple input values.
The form category is data extracted from the form input elements. When a category is not specified, this category is defaulted. Keys are the input names:
We have multiple ways to work with form data from repeatable groups:
The query category is actual query string data. This may not be the same as the form category, but can also be used when {{place_holders}} are not in a form pileline. Keys are the query key names:
The page category provides information about the submitting page:
The visitor category provides information about the visitor and browser:
The user category provides information about the current user:
The date category, formatted using php DateTime:
The pipeline category is a list of status data provided by many of the handlers. Keys are a snake_case handle derived from the Plugin Name. Values depend on plugins:
The random category generates random values and some related utilities:
To distinguish between an unfilled {{place_holder}} and a deliberately empty value, the empty category provides explicitly empty values. All but null can also be provided using the {{category:key|default}} component of a {{place_holder}}:
The errors category provides error messages reported by form handlers:
The thumbnail category prefix creates HTML <img> tags from image files identified by fID, UUID, or path. Use this category by prefixing another category with thumbnail_.
For example, if the form input my_input would normally provide an fID, UUID or File Manager path for an image files as {{form:my_input}}, then {{thumbnail_form:my_input}} will provide an <img> tag for that image file. A further refinement is to insert a size such as {{thumbnail_[size]_form:my_input}} to fit the image into a thumbnail size. The size can be any number by itself, or followed by w, h, or b to fit to width, height or box, or a pair of numbers as WidthxHeight to specify both width and height in pixels. The thumbnail category prefix can be used to preceded any category that returns and image fID, UUID or File Manager path, not just the form category.
If you have a large image and would prefer a picture element, the picture category prefix works in the same way to prefix another category and generate a <picture> element.
If a file is not an image file, the default Concrete CMS icon for the file type will be returned.
The math category enables/disables evaluation of mathematical expressions:
The webcam category provides further categories with further information about an imported file.
In the form handler pipeline, the form data placeholder {{form:my_input}} provides the File ID (fID) for the Image Picker input my_input.
This is supplemented by the image_picker category to provide further information about the picked images.
Sets an error depending on the result of condition evaluation.
Provides a single handler solution to setting an error based on a set of condition rules. An error can be set if the condition is met or if the condition is not met.
Item A is compared with Item B and may contain {{place_holders}}. Comparison operations available are:
The form category is data extracted from the form input elements. When a category is not specified, this category is defaulted. Keys are the input names:
We have multiple ways to work with form data from repeatable groups:
The query category is actual query string data. This may not be the same as the form category, but can also be used when {{place_holders}} are not in a form pileline. Keys are the query key names:
The page category provides information about the submitting page:
The visitor category provides information about the visitor and browser:
The user category provides information about the current user:
The date category, formatted using php DateTime:
The pipeline category is a list of status data provided by many of the handlers. Keys are a snake_case handle derived from the Plugin Name. Values depend on plugins:
The random category generates random values and some related utilities:
To distinguish between an unfilled {{place_holder}} and a deliberately empty value, the empty category provides explicitly empty values. All but null can also be provided using the {{category:key|default}} component of a {{place_holder}}:
The errors category provides error messages reported by form handlers:
The thumbnail category prefix creates HTML <img> tags from image files identified by fID, UUID, or path. Use this category by prefixing another category with thumbnail_.
For example, if the form input my_input would normally provide an fID, UUID or File Manager path for an image files as {{form:my_input}}, then {{thumbnail_form:my_input}} will provide an <img> tag for that image file. A further refinement is to insert a size such as {{thumbnail_[size]_form:my_input}} to fit the image into a thumbnail size. The size can be any number by itself, or followed by w, h, or b to fit to width, height or box, or a pair of numbers as WidthxHeight to specify both width and height in pixels. The thumbnail category prefix can be used to preceded any category that returns and image fID, UUID or File Manager path, not just the form category.
If you have a large image and would prefer a picture element, the picture category prefix works in the same way to prefix another category and generate a <picture> element.
If a file is not an image file, the default Concrete CMS icon for the file type will be returned.
The math category enables/disables evaluation of mathematical expressions:
The webcam category provides further categories with further information about an imported file.
In the form handler pipeline, the form data placeholder {{form:my_input}} provides the File ID (fID) for the Image Picker input my_input.
This is supplemented by the image_picker category to provide further information about the picked images.
Sort the submitted form data into a configured sequence.
Sometimes it is useful to save form data in a specified sequence. For example, so a CSV can be easily viewed as a spreadsheet.
List one or more form inputs in the required sequence and form data will be sorted into that sequence overall and within any input groups.
Form inputs not listed will be sorted last.
Configure multiple spam detection strategies.
Each spam detection strategy can be separately enabled to either fail silently or to provide an error message that can then be managed through the On Error handlder.
When an existing error matches a condition, it can be replaced with an alternative message.
Some form handlers may generate error messages more suited to administrators or developers than site visitors. This Transform Error handler can be used to catch such errors and replace them with an alternate message.
Options allow transformed errors to be logged and for administrators to be exempted from the transform.
The condition to match errors may contain {{place_holders}}. Comparison operations available are:
The form category is data extracted from the form input elements. When a category is not specified, this category is defaulted. Keys are the input names:
We have multiple ways to work with form data from repeatable groups:
The query category is actual query string data. This may not be the same as the form category, but can also be used when {{place_holders}} are not in a form pileline. Keys are the query key names:
The page category provides information about the submitting page:
The visitor category provides information about the visitor and browser:
The user category provides information about the current user:
The date category, formatted using php DateTime:
The pipeline category is a list of status data provided by many of the handlers. Keys are a snake_case handle derived from the Plugin Name. Values depend on plugins:
The random category generates random values and some related utilities:
To distinguish between an unfilled {{place_holder}} and a deliberately empty value, the empty category provides explicitly empty values. All but null can also be provided using the {{category:key|default}} component of a {{place_holder}}:
The errors category provides error messages reported by form handlers:
The thumbnail category prefix creates HTML <img> tags from image files identified by fID, UUID, or path. Use this category by prefixing another category with thumbnail_.
For example, if the form input my_input would normally provide an fID, UUID or File Manager path for an image files as {{form:my_input}}, then {{thumbnail_form:my_input}} will provide an <img> tag for that image file. A further refinement is to insert a size such as {{thumbnail_[size]_form:my_input}} to fit the image into a thumbnail size. The size can be any number by itself, or followed by w, h, or b to fit to width, height or box, or a pair of numbers as WidthxHeight to specify both width and height in pixels. The thumbnail category prefix can be used to preceded any category that returns and image fID, UUID or File Manager path, not just the form category.
If you have a large image and would prefer a picture element, the picture category prefix works in the same way to prefix another category and generate a <picture> element.
If a file is not an image file, the default Concrete CMS icon for the file type will be returned.
The math category enables/disables evaluation of mathematical expressions:
The webcam category provides further categories with further information about an imported file.
In the form handler pipeline, the form data placeholder {{form:my_input}} provides the File ID (fID) for the Image Picker input my_input.
This is supplemented by the image_picker category to provide further information about the picked images.
Validate a previously generated an ID code such as a PIN code.
The ID should have previously been persisted by a Generate ID Code form handler.
Validate form input fields.
Validate the form input fields provided by each block in the form. Provides a list of errors as {{errors:list}} if validation fails.
Blocks in the form, including blocks in layouts, containers, stacks and global areas, are listed and the form fields in each block is validated using a validateSubmission() method provided by the block controller. When validation fails, this returns a list of errors.
An input which is empty in the submitted form data and does not pass validation rules will normally fail validation, even if it is not required. A skip empty option allows empty inputs which are not required inputs to not be validated.
An input which is completely missing from the submitted form data will normally fail validation, even if it is not required. A skip missing option allows inputs completely missing from the submitted form data which are not required inputs to not be validated. This can be useful where inputs are hidden/disabled by Visibility Rules.
Following validation, the next step should normally be an On Success handler for continued form processing and later on an On Error handler to manage failed validation .
Insert a time delay.
Inserts a time delay. Can be useful for testing interactions. Take care not to exceed php execution limits.
Forward a form submission to Microsoft Dynamics.
Map data from Form Reform into names and values for Dynamics and forward that data to Dynamics using a POST request.
Outgoing data is prepared as name/value pairs. The values can contain {{place_holders}}. Values left empty will be filled from any form data that matches the name.
Returned data is made available as {{place_holders}} with the categories dynamics and dynamics_post. The dynamics category is accumulated by all Dynamics form handlers while dynamics_post will only contain data for this handler. Keys within these categories are the returned data item names. The special keys all and all_formatted provide the entire response. Examples: {{dynamics_post:XXX}}, {{dynamics_post:all}},
The form category is data extracted from the form input elements. When a category is not specified, this category is defaulted. Keys are the input names:
We have multiple ways to work with form data from repeatable groups:
The query category is actual query string data. This may not be the same as the form category, but can also be used when {{place_holders}} are not in a form pileline. Keys are the query key names:
The page category provides information about the submitting page:
The visitor category provides information about the visitor and browser:
The user category provides information about the current user:
The date category, formatted using php DateTime:
The pipeline category is a list of status data provided by many of the handlers. Keys are a snake_case handle derived from the Plugin Name. Values depend on plugins:
The random category generates random values and some related utilities:
To distinguish between an unfilled {{place_holder}} and a deliberately empty value, the empty category provides explicitly empty values. All but null can also be provided using the {{category:key|default}} component of a {{place_holder}}:
The errors category provides error messages reported by form handlers:
The thumbnail category prefix creates HTML <img> tags from image files identified by fID, UUID, or path. Use this category by prefixing another category with thumbnail_.
For example, if the form input my_input would normally provide an fID, UUID or File Manager path for an image files as {{form:my_input}}, then {{thumbnail_form:my_input}} will provide an <img> tag for that image file. A further refinement is to insert a size such as {{thumbnail_[size]_form:my_input}} to fit the image into a thumbnail size. The size can be any number by itself, or followed by w, h, or b to fit to width, height or box, or a pair of numbers as WidthxHeight to specify both width and height in pixels. The thumbnail category prefix can be used to preceded any category that returns and image fID, UUID or File Manager path, not just the form category.
If you have a large image and would prefer a picture element, the picture category prefix works in the same way to prefix another category and generate a <picture> element.
If a file is not an image file, the default Concrete CMS icon for the file type will be returned.
The math category enables/disables evaluation of mathematical expressions:
The webcam category provides further categories with further information about an imported file.
In the form handler pipeline, the form data placeholder {{form:my_input}} provides the File ID (fID) for the Image Picker input my_input.
This is supplemented by the image_picker category to provide further information about the picked images.
Query Microsoft Dynamics to retrieve existing records.
Use an email address or other {{place_holders}} from Form Reform to query Dynamics for existing records and make the returned records available to Form Reform. See Query Data Samples for details of Dynamics query parameters.
Query parameters are prepared as name/value pairs. The values can contain {{place_holders}}. Values left empty will be filled from any form data that matches the name.
Returned data is made available as {{place_holders}} with the categories dynamics and dynamics_get. The dynamics category is accumulated by all Dynamics form handlers while dynamics_get will only contain data for this handler. Keys within these categories are the returned data item names. The special keys all and all_formatted provide the entire response. Examples: {{dynamics_get:XXX}}, {{dynamics_get:all}},
The form category is data extracted from the form input elements. When a category is not specified, this category is defaulted. Keys are the input names:
We have multiple ways to work with form data from repeatable groups:
The query category is actual query string data. This may not be the same as the form category, but can also be used when {{place_holders}} are not in a form pileline. Keys are the query key names:
The page category provides information about the submitting page:
The visitor category provides information about the visitor and browser:
The user category provides information about the current user:
The date category, formatted using php DateTime:
The pipeline category is a list of status data provided by many of the handlers. Keys are a snake_case handle derived from the Plugin Name. Values depend on plugins:
The random category generates random values and some related utilities:
To distinguish between an unfilled {{place_holder}} and a deliberately empty value, the empty category provides explicitly empty values. All but null can also be provided using the {{category:key|default}} component of a {{place_holder}}:
The errors category provides error messages reported by form handlers:
The thumbnail category prefix creates HTML <img> tags from image files identified by fID, UUID, or path. Use this category by prefixing another category with thumbnail_.
For example, if the form input my_input would normally provide an fID, UUID or File Manager path for an image files as {{form:my_input}}, then {{thumbnail_form:my_input}} will provide an <img> tag for that image file. A further refinement is to insert a size such as {{thumbnail_[size]_form:my_input}} to fit the image into a thumbnail size. The size can be any number by itself, or followed by w, h, or b to fit to width, height or box, or a pair of numbers as WidthxHeight to specify both width and height in pixels. The thumbnail category prefix can be used to preceded any category that returns and image fID, UUID or File Manager path, not just the form category.
If you have a large image and would prefer a picture element, the picture category prefix works in the same way to prefix another category and generate a <picture> element.
If a file is not an image file, the default Concrete CMS icon for the file type will be returned.
The math category enables/disables evaluation of mathematical expressions:
The webcam category provides further categories with further information about an imported file.
In the form handler pipeline, the form data placeholder {{form:my_input}} provides the File ID (fID) for the Image Picker input my_input.
This is supplemented by the image_picker category to provide further information about the picked images.
Use a form submission to update an existing record in Microsoft Dynamics.
Given a dynamics record ID, map data from Form Reform into names and values for Dynamics and update that data in Dynamics using a PATCH request.
The record to be updated must first the identified with a record ID. Outgoing data is then prepared as name/value pairs. The values can contain {{place_holders}}. Values left empty will be filled from any form data that matches the name.
A Dynamics record ID will be 36 characters long in the format XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX where X is a hexadecimal digit. This will typically be formed using a {{place_holder}} to insert an ID retrieved by a Get From Dynamics pipeline handler.
Returned data is made available as {{place_holders}} with the categories dynamics and dynamics_patch. The dynamics category is accumulated by all Dynamics form handlers while dynamics_patch will only contain data for this handler. Keys within these categories are the returned data item names. The special keys all and all_formatted provide the entire response. Examples: {{dynamics_patch:XXX}}, {{dynamics_patch:all}},
The form category is data extracted from the form input elements. When a category is not specified, this category is defaulted. Keys are the input names:
We have multiple ways to work with form data from repeatable groups:
The query category is actual query string data. This may not be the same as the form category, but can also be used when {{place_holders}} are not in a form pileline. Keys are the query key names:
The page category provides information about the submitting page:
The visitor category provides information about the visitor and browser:
The user category provides information about the current user:
The date category, formatted using php DateTime:
The pipeline category is a list of status data provided by many of the handlers. Keys are a snake_case handle derived from the Plugin Name. Values depend on plugins:
The random category generates random values and some related utilities:
To distinguish between an unfilled {{place_holder}} and a deliberately empty value, the empty category provides explicitly empty values. All but null can also be provided using the {{category:key|default}} component of a {{place_holder}}:
The errors category provides error messages reported by form handlers:
The thumbnail category prefix creates HTML <img> tags from image files identified by fID, UUID, or path. Use this category by prefixing another category with thumbnail_.
For example, if the form input my_input would normally provide an fID, UUID or File Manager path for an image files as {{form:my_input}}, then {{thumbnail_form:my_input}} will provide an <img> tag for that image file. A further refinement is to insert a size such as {{thumbnail_[size]_form:my_input}} to fit the image into a thumbnail size. The size can be any number by itself, or followed by w, h, or b to fit to width, height or box, or a pair of numbers as WidthxHeight to specify both width and height in pixels. The thumbnail category prefix can be used to preceded any category that returns and image fID, UUID or File Manager path, not just the form category.
If you have a large image and would prefer a picture element, the picture category prefix works in the same way to prefix another category and generate a <picture> element.
If a file is not an image file, the default Concrete CMS icon for the file type will be returned.
The math category enables/disables evaluation of mathematical expressions:
The webcam category provides further categories with further information about an imported file.
In the form handler pipeline, the form data placeholder {{form:my_input}} provides the File ID (fID) for the Image Picker input my_input.
This is supplemented by the image_picker category to provide further information about the picked images.
Block Form Reform Spam with Anti-Spammer Master.
Anti-Spammer Master can be enabled to either fail silently or to provide an error message that can then be managed through the On Error handlder.
Merge form previously saved to a textarea attribute of the current user.
Data extracted from form fields is merged with form data previously saved to a user textarea attribute. Existing data from the attribute or submitted data can take priority.
Remove form data previously saved to a textarea attribute of the current user.
One or more records will be removed (deleted) from the textarea attribute.
Find an existing response by matching one or more criteria of the response.
A form could have been saved to the name configured by the form blocks or to a different (alias) name. Take care about the scope when falling back on the default name "form_reform" to not inadvertently remove unintended data. There is no undo capability.
Save form submission to a text area attribute of the current page.
Data extracted from form fields is saved to a textarea attribute of the current page. Form data is serialised as JSON.
A form can be saved to the name configured by the form blocks or to a different (alias) name. This can be convenient when you take advantage of the default name "form_reform" when adding a single form to a page, but would like a more specific name for the saved form data.
A form submission may optionally update an existing response by matching one or more criteria of the response. Items marked * cannot be used alone. They can only be used in association with un-marked criteria.
Save form submission to attributes of the current user.
Saves data extracted from form fields to the user's attributes. Each user attribute is mapped from a {{data_value}}.
Save form submission to a text area attribute of the current user.
Data extracted from form fields is saved to a textarea attribute of the current user. Form data is serialised as JSON.
A form can be saved to the name configured by the form blocks or to a different (alias) name. This can be convenient when you take advantage of the default name "form_reform" when adding a single form to a page, but would like a more specific name for the saved form data.
A form submission may optionally update an existing response by matching one or more criteria of the response.
Save form submission to an Express object.
Saves data extracted from form fields to an Express object. Each attribute of an Express object is mapped from a {{data_value}}.
Take care if configuring to update an existing result to constrain the scope of what can be updated.
Add and remove the current user from user groups.
Removal is handled before adding. The user submitting the form can be removed from and added to existing user groups. The Administrators group is excluded.
Validate the current user against permissions or group membership.
An error or {{data_value}} can be set when validation of the current user fails.
Extend or modify the submitted form data with additional names/values populated from file properties.
The form category is data extracted from the form input elements. When a category is not specified, this category is defaulted. Keys are the input names:
We have multiple ways to work with form data from repeatable groups:
The query category is actual query string data. This may not be the same as the form category, but can also be used when {{place_holders}} are not in a form pileline. Keys are the query key names:
The page category provides information about the submitting page:
The visitor category provides information about the visitor and browser:
The user category provides information about the current user:
The date category, formatted using php DateTime:
The pipeline category is a list of status data provided by many of the handlers. Keys are a snake_case handle derived from the Plugin Name. Values depend on plugins:
The random category generates random values and some related utilities:
To distinguish between an unfilled {{place_holder}} and a deliberately empty value, the empty category provides explicitly empty values. All but null can also be provided using the {{category:key|default}} component of a {{place_holder}}:
The errors category provides error messages reported by form handlers:
The thumbnail category prefix creates HTML <img> tags from image files identified by fID, UUID, or path. Use this category by prefixing another category with thumbnail_.
For example, if the form input my_input would normally provide an fID, UUID or File Manager path for an image files as {{form:my_input}}, then {{thumbnail_form:my_input}} will provide an <img> tag for that image file. A further refinement is to insert a size such as {{thumbnail_[size]_form:my_input}} to fit the image into a thumbnail size. The size can be any number by itself, or followed by w, h, or b to fit to width, height or box, or a pair of numbers as WidthxHeight to specify both width and height in pixels. The thumbnail category prefix can be used to preceded any category that returns and image fID, UUID or File Manager path, not just the form category.
If you have a large image and would prefer a picture element, the picture category prefix works in the same way to prefix another category and generate a <picture> element.
If a file is not an image file, the default Concrete CMS icon for the file type will be returned.
The math category enables/disables evaluation of mathematical expressions:
The webcam category provides further categories with further information about an imported file.
In the form handler pipeline, the form data placeholder {{form:my_input}} provides the File ID (fID) for the Image Picker input my_input.
This is supplemented by the image_picker category to provide further information about the picked images.
Debug resource. Dump out currently added static handler categories.
Form blocks and handlers can provide additional {{data values}} using addStaticCategoryHandler($category, $handler_class) where $handler_class extends DataValueCategoryBase. This handler dumps the currently added category handlers into a response message.
Debug resource. Dump out the form data.
Form blocks and handlers traslate input data from the form submission into {{form:key}} which are then saved with the form. This handler dumps the available {{form:key}} values into a response message.
Debug resource. Dump out the $_POST data.
Form blocks and handlers traslate $_POST data from the form submission into {{data_values}} which are then saved with the form. This handler dumps the $_POST values into a response message.
Debug resource. Dump out the $_GET data.
Form blocks and handlers traslate $_GET data from the form query string into {{data_values}} which are then saved with the form. This handler dumps the $_GET values into a response message.
Debug resource. Dump out what is currently in the static values array.
Form blocks and handlers can provide additional {{data values}} using DataValues::addStaticCategory($category, $key_values_list). This handler dumps the currently available values into a response message.
Debug resource. Dump currently added static handler categories to the log.
Form blocks and handlers can provide additional {{data values}} using addStaticCategoryHandler($category, $handler_class) where $handler_class extends DataValueCategoryBase. This handler dumps the currently added category handlers to the site log.
Debug resource. Dump current in the static values array to the log.
Form blocks and handlers can provide additional {{data values}} using DataValues::addStaticCategory($category, $key_values_list). This handler dumps the currently available values to the site log.
Debug resource. Review the raw POST data.
Reviews raw POST data and suggests possible issues.
Validate the structure of a form.
Validate the actual structure of a form. This may generate false positives about intended form structure, in which case the respective checks can be disabled.
Delete previous submission(s) in the FormReformDefault store.
Works with a Result Picker input to identify one or more previous submissions in the FormReformDefault store and delete those submissions. See also Remove From Default Store.
The previous submission(s) to delete are identified by a Result Picker input control and the form name or alias. Further restrictions may be advisable depending on how the picked list is configured. Optionally evaluate a {{placeholder}} to identify previous submissions.
The Delete From Default Store handler enables selected existing form submissions to be deleted. It is your responsibility to ensure the Result Picker input, the list picked from and this Delete From Default Store handler, together with page permissions, are configured in a way that does not risk the integrity and security of form submissions.
Read previous submission(s) from the FormReformDefault store.
Works with a Result Picker input to identify one or more previous submissions in the FormReformDefault store and reads fields from those submissions.
The previous submission(s) to read from are identified by a Result Picker input control and the form name or alias. Further restrictions may be advisable depending on how the picked list is configured. Optionally evaluate a {{placeholder}} to identify previous submissions.
The Read From Default Store handler enables form fields from selected existing form submissions to be read. It is your responsibility to ensure the Result Picker input, the list picked from and this Read From Default Store handler, together with page permissions, are configured in a way that does not risk the integrity and security of form submissions.
Update previous submission(s) in the FormReformDefault store.
Works with a Result Picker input to identify one or more previous submissions in the FormReformDefault store and update those submissions.
The previous submission(s) to update are identified by a Result Picker input control and the form name or alias. Further restrictions may be advisable depending on how the picked list is configured. Optionally evaluate a {{placeholder}} to identify previous submissions. Existing form data can either be replaced or extended.
Call a macro.
Macros are like subroutines of form handlers. Macros are managed at Dashboard > System & Settings > Form Reform > Form Reform Macros . Use macros to organise and structure long pipelines and to factor out common pipeline sequences.
{{macro:key}} parameters declared by a macro handler exist only for the duration of the inserted macro handler pipeline and override any previous {{macro:key}} values of the same key. Values are filled with the raw data and can be used in handlers that work with data structure. On completion of the macro pipeline, any previous {{macro:key}} values are restored.
If you need a specialized template or a custom input element, you can design new templates or new block types for form elements as you would any block type.
Blocks are easy for third party addition or extension. Block templates and are the first thing any Concrete CMS developer learns to code. They are one of the easiest things to code. The underlying mechanisms are well established and reliable.
Form handlers are built about the same extensible plugin system as many of my other addons (Universal Content Puller, Omni Gallery, Extreme Clean ...).
The whole system is aimed at easy extension within Form Reform, by third party addons, by agencies and by site building developers.
Handlers can be easily added to do whatever you want with the form data.
Saving form data with Form Reform is simply a handler in the processing pipeline. You can save to multiple locations or just one location.
If you need to save data elsewhere, such as to a dedicated table, a table provided through another addon, to another database, send it to an API, forward it to another server, or anywhere you can imagine, you can adapt or develop a form handler to do so.
The complexity of the code depends on where you are saving or sending the data, but wrapping that into a form handler plugin for Form Reform is straight forward.
The Form Reform handler plugin system is designed for easy extension.
Reform the way forms are built. Build a form out of blocks. Take control of how form submissions are processed and how the submitted data is stored. Easy to extend. Easy to reconfigure. Tangible data. Easy to add your own integrations.
Provides blocks and dashboard utilities to List, display, summarize, generate reports and analyze form submissions from Form Reform. Additionally supports integration with Universal Content Puller.
Not just Form Reform and not just UTM! Capture and hold incoming UTM (or other) tags and make the tag values available to Form Reform and/or Conditional Redirect as {{place_holders}}. You don't need Form Reform to use this.
Form handlers for querying Microsoft Dynamics, forwarding and updating form data to Microsoft Dynamics.
A suite of advanced image capture and upload tools. Enhanced drag and drop file uploading. Make screengrabs from within Concrete CMS. Capture images directly from device webcams. Edit images before uploading.
Save submitted forms to Express objects and user attributes. Add and remove users from groups.
Form Reform Image Picker provides an image picking input block for Form Reform. The Image Picker Input is preconfigured to connect to most Omni Gallery gallery and slider display widgets, the core gallery block, and thumbnail showing templates for the core page list block. Advanced settings allow the Image Picker Input to be configured to pick images from other galleries and sliders.
Form Reform Data Picker provides data picking input blocks for Form Reform. The Table Picker Input is preconfigured to connect to Universal Content Puller table display widgets. Advanced settings allow the Table Picker Input to be configured to pick data from other HTML tables.
Extends Form Reform with form handler macros. Provides a new dashboard page at System & Settings > Form Reform > Form Reform Macros to manage macros, and form handlers to run macros.
A growing suite of resources to assist those developing blocks, handlers and more complex forms for Form Reform.
While you may have plans to implement some much more complex forms using Form Reform, we strongly recommend you start with a simple form such as our contact form example in order to review the basic principles of using Form Reform before you move onto anything bigger.