Form results can be displayed using the blocks provided by the Form Reform Display addon. In our example below, your most recent submission using the example contact forms from this site is shown.
If you don't see any form results listed, it will be because these form results are held in your session. Go to one of our example forms, submit a form, and come back here to see it displayed.
Form | Status |
---|---|
Example - Getting Started - Your first form | ToDo |
Example - Tabbed Forms | ToDo |
Example - Multi Step Forms | ToDo |
Example - AJAX Forms | ToDo |
Example - Picking Images | ToDo |
Example - Picking Data | ToDo |
Example - Signing Forms | ToDo |
Example - Sending Email | ToDo |
Example - Repeatable Groups | ToDo |
The above progress summary is provided by the Completion List block.
Below we have a Form Reform Display Cookie Result block, which is configured to actually show Session results for the latest form from any page.
The block provides templates for showing a definition list (as below) or a table.
We have similar blocks for displaying from the default store with the Form Reform Display Result block and list versions of these blocks for displaying lists of results as tables and as definition lists.
We only show the most recent of your form submissions above (In fact that is the only data saved in your session, we couldn't show more even if we wanted to!).
For more sophisticated use we have listing variations for the display blocks. The edit dialogues for the display listing blocks provide comprehensive filtering options.
(Only for default store, not applicable to cookie or session stores as these are by nature user specific)
Once data is listed, we can also select which items to display, the sequence they are displayed in, and how they are labeled.
Metadata - data added to a recorded submission by Form Reform, can be selected by checkbox.
Form Data - data from the configured form fields, is more variable, so we have a text field for specifying the field_name.
You can see examples of both of these in the screengrab below.
A final option is a checkbox to Append all form data not explicitly configured above. When checked, any left over data available from the form submission is serialized as JSON and appended. This is largely an admin convenience, so you can see the actual fields in the recorded data and then add those you want to the list above.
If the form display you want can use the listed data from one of the existing display blocks, you should be able to create a customised display by adding your own block template. The listing is an array of form results or a single result. You can see these as $results or $result in the provided block templates.
For cookie or session displays, each $result is a keyed array, where the first level of keys is the metadata and then the key form_data provides an array of the form fields and their values for that result.
For the default store database table, each $result is a Doctrine data entity. Rather than accessing the data items directly, there is a getXXX() method to call on the data entity object for each item of metadata. Here you can best refer to the php code for JtF\FormReform\Reports\Entity\FormReformDefault.
For the actual submitted form data, the method $result->getFormData() will return an array of the actual form_data fields and their values for that result.
If you would like to take advantage of the data configuration options of the block edit dialogue, these are provided by the $show_data array and the corresponding $show_data_label array.
$show_data is a list of items to display in sequence. $show_data_label is a list of corresponding labels (which could be blank). These can be cross referenced against the array $metadata_columns, which is a list of the metadata column names, so can be used to differentiate between metadata and actual form fields.
Finally, $all_data will be true if the checkbox for remaining data is checked.
If you need to create more specifically filtered form result listings, perhaps for integration with your own applications rather than to use in block templates, the FormReformDefault store is a Doctrine entity specified by the class JtF\FormReform\Reports\Entity\FormReformDefault.
This has a corresponding item list class JtF\FormReform\Reports\FormReformDefaultList which provides the usual Concrete CMS item list functionality with methods to configure the filter and sort of the list and connect with the paginator.
The base code for the FromReformDefault store, listing and dashboard page for showing form results were generated using Entity Designer then highly adapted for the requirements for Form Reform.
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.