Forms may return messages to signify success, errors or progress.
Returning a message requires two components:
Form Reform then takes the message provided by the Message Handler and passes it into the Message Display block for display.
The visible component of showing messages from a form is a Message Display block. You need to add a Message Display block to your page as a location for displaying messages from form handlers.
A Message Display block will normally show nothing. It just sits there waiting to be given messages.
When a form submission returns messages, these messages are then filled into the Message Display block.
Each message comprises:
The Message Display block can be configured to restrict sources it displays messages from to the form or page and, like most Form Reform blocks, the form states it shown in. In general, these settings can be left as permissive as possible.
The other option is whether messages are dismissible.
If a form has multiple steps or multiple submission steps, each submission clears the messages shown and messages from each form submission replace messages from a previous submission.
For example:
Message handlers can be inserted into a form handler pipeline to return messages in plain text or HTML. You can have multiple Message handlers in a pipeline, typically at least one handler to report errors and one handler to support success.
Message handlers are cumulative. If processing in a pipeline passes through three message handlers, all three messages will be returned.
A message could be fixed, but more usefully a message can use {{place_holders}} to insert data from the form and elsewhere, so you can construct personalized messages with details about what was submitted or errors detected.
Many pipeline handlers can use {{place_holders}} to be filled with system or entered form values. See the help for individual pipeline handlers for details.
When a form handler pipeline includes a Redirect handler, to another page, we need to consider how messages are shown.
With a regular form submission, the redirect is immediate. Any messages are available for display in a Message Display block on the redirect target page. Hence, for a regular form submission that ends with a redirect, you need to add a Message Display block to the redirect target page.
With an AJAX form submission, any message is returned to the submitting page and shown on a Message Display block on the submitting page. The Redirect handler can specify a time delay, so the submitting page will wait long enough for a message to be read before before redirecting.
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.