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.
Building any form using Form Reform requires cooperating areas of functionality to be configured by assembling Form Reform blocks onto a page.
Forms are easy to build and arrange in Form Reform. You simply add blocks to the page for each input.
Form Fields or controls are added to a page and arranged using Form Input blocks to display each type of form input. Many blocks in the Form Reform block type set are input blocks such as Text Input and Email Input. These blocks build what your visitors interact with to fill in a form.
As each form field is a block, you can layout your form using Concrete CMS Containers, block layout, block design and any of the other design capabilities of Concrete CMS.
If you require specialized functionality beyond the provided inputs, you can extend Form Reform with your own block templates or custom input blocks. If you are wondering what all these blocks will look like on a page, check out The Kitchen Sink.
When a form is submitted, the processing of the form is managed by adding and arranging a series of Form Handlers to the Handler Pipeline. The Handler Pipeline is defined by the Pipeline tab of a Submit Button block.
The Submit block serves three purposes:
If you require specialized functionality beyond the provided form handlers, you can extend Form Reform with your own custom form handlers.
After a form is submitted, you usually need somewhere to display Responses. This is typically achieved using a Message Display block to show responses from the form processing.
A Message Display block will remain empty and show nothing until after a form has been submitted. The Handler Pipeline then generates one or more messages and when processing of the form has completed those messages are shown by the Message Display block.
Most form block edit dialogues provide an Initial Value tab. The main input here is a list of checkboxes for persistence.
You may have already noticed in Concrete CMS when using dashboard pages and edit dialogues, when you get something wrong, as well as showing an error message the contents of the dialogue are persisted so you don't need to enter the entire form again. Similar persistence following errors is provided by most front end form systems.
Form Reform extends the mechanism for form field persistence to re-populate the value of a form field through a wide selection of circumstances. You can see it in action on the example forms of this site. Persistent values are specific to each user. Persistence is fully configurable through wider and wider scope and through the storage used to source persistent data.
Lower down on the same tab is a section for Starting Value. In general, you don't need to be concerned with providing a starting value. Persistence will automatically insert a visitor specific starting value.
These Form Reform blocks have a Behaviour tab in the block edit dialogue. This Behaviour tab provides a list of the states a form can be in and what the block does in those states as checkboxes.
Form most single step forms, the only behaviour required will be When Success message is shown.
For example, you could check to Do not render each of the form inputs when a success message is shown.
See Form Behaviour - Form States.
Most forms will also have some additional non-input blocks for purposes such as spam detection, which you can also see in the example contact form.
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.
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.