Form Reform Attributes provides Form Reform handlers to save form data to Express objects and user and page attributes, and to add and remove users from groups.
For any form
For forms submitted by logged in users:
Whilst the flexibility of Form Reform allows pretty much any kind of input to be used to populate an attribute, options attributes can be a little bit fiddly. To make that easier, we have some form input block types constructed specially for use with options attributes.
These form input blocks automatically populate their options from any options attribute in a format that is compatible with the Form Reform Save to Attributes handlers. Block edit options allow configuration for:
You don't have to use these blocks. They just provide a shortcut to some of the most frequent uses of options attributes.
If you work within its limitations, Express can be a convenient way of building simple databases without any programming. Express allows forms to be configured for entering data on the front end of a site, so why do you need Form Reform? Express forms are:
The Save to Express handler for Form Reform can save you from both of these problems. You can create front end forms for your Express data using the easy form design flexibility of Form Reform input blocks while saving the form data to Express. For form processing you can take advantage of the massive flexibility of the Form Reform pipeline.
The Save to Express handler enables an Express object to be selected and then presents a table of attributes of the express entity for a mapping form values into each of the express entity attributes.
Form Reform knows nothing about relationships between Express objects. Hence Save to Express cannot be used to manage relationships between Express objects.
Form Reform fills values of attributes of a selected express object by listing the Express attributes/fields then specifying how they will be filled using {{place_holders}} for form data.
The screenshot shows this for the example contact form. In practice, Save to Express is more likely to be used for custom express objects, but we all know what the contact object looks like.
This also shows the optional Update previous entry matching criteria enabled. This option shows the Update Match column and the User Identity row. Each checkbox enabled will then search to update a previous entry that matches the Value to Set. Take care when using the update option, especially when no user is logged in.
The Save to Page Textarea Attribute form handler uses any textarea attribute of the current page as a store to write form data to.
The Save to User form handler maps form fields to attributes of the current user with a similar configuration dialogue to the Save to Express handler configuration above.
The Save to User Textarea Attribute form handler uses any textarea attribute of the current user as a store to write form data to.
We have two handlers for saving to user attributes. Both require a logged in user, so these handlers should not be used for forms a visitor/guest can submit.
Save to User Textarea Attribute is the simpler concept. This is very similar to Save to Session and Save to Cookie, except it saves the entire submission as serialized JSON into the configured textarea attribute.
Many form submissions can be saved sequentially to the same text area attribute. The handler has similar options to Save to Session and Save to Cookie for managing how repeated submissions are appended and old submissions are cleared.
We recommend you should configure a different textarea attribute for each form if you use this form handler.
Save to User is similar to Save to Express. This handler presents a table of user attributes and you can then map form values into each of the user attributes.
A logged in user only has one set of user attributes, so this handler is always an update of existing values.
If you don't want an attribute to be modified by the Save to User form handler, leave the corresponding row empty and check to Ignore Empty.
Take care here, or you could end up accidentally clearing the wrong attributes after form submission!
In the Value to Set matrix, saving to text and number attributes is easy. Just provide a text or numeric value within their range and that is pretty much it. But what about select attributes, internally they store options as numeric values, so what values do you actually configure in Form Reform save to Attributes?
Well, you don't have to worry about what the internal Concrete CMS core values are. Form Reform save to Attributes interfaces to the text representation importer that Concrete CMS uses when exporting and importing sites.
For a select or topic attribute, you can simply provide the text you see in the attribute labels. For example, if you were saving to a contact form, your could provide 'Great website' either as text or through a {{place_holder}} and that option would be saved with the Express object.
As noted above, Form Reform Save to Attributes uses the core content importer to set the value of attributes. For boolean or checkbox attributes, the values provided by the Value to Set map can be:
Any other value, including the php false-ish values of null and empty string, will be rejected. This is important behavior, because the form handler cannot know if an empty string actually means false, or you just forgot to set it, or you intend it to be ignored. Hence you need to be explicit about clearing a boolean or checkbox attribute.
In theory, the handlers provided by Form Reform Save to Attributes could have been part of the main Form Reform package. However, Form Reform is already big, so making this a separate addon helps prevent Form Reform from growing bigger. The roadmap has more than enough ideas that will need to be part of the main Form Reform package and necessitate growth.
Save submitted forms to Express objects and user attributes. Add and remove users from groups.
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.
ConcreteCMS Marketplace v9.3.24
/dashboard/system/form_reform
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.
/dashboard/system/form_reform/plugin_list
Plugins for Form Handlers.
/dashboard/system/form_reform/form_reform_blocks
Blocks for Form Reform.
/dashboard/system/form_reform/global_settings
Edit global settings and defaults for Form Reform Submission.
/dashboard/reports/form_reform
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.
/dashboard/reports/form_reform/form_reform_default
Default storage for Form Reform submissions.
/dashboard/system/form_reform/advanced_config
Advanced Configuration for Form Reform including adapting styles for non-Bootstrap 5 themes.
List and display form submissions from Form Reform.
ConcreteCMS Marketplace v9.1.6
/dashboard/reports/form_reform/form_reform_report
Report generator for default Form Reform submissions.
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.
ConcreteCMS Marketplace v9.0.3
/dashboard/system/form_reform/utm
Redirects to UTM Configuration in SEO settings.
/dashboard/system/seo/utm
Capture and hold incoming UTM (or other) tags and make the tag values available to Form Reform as {{place_holders}}. Also integrates with Conditional Redirect. You don't need Form Reform to use this!
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.
ConcreteCMS Marketplace v9.0.4
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.
ConcreteCMS Marketplace v9.0.4
Form handlers for querying Microsoft Dynamics, forwarding and updating form data to Microsoft Dynamics.
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.
ConcreteCMS Marketplace v9.0.0
/dashboard/system/form_reform/macro
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.
ConcreteCMS Marketplace v9.0.12
/dashboard/system/form_reform/plugin_dialogue_explorer
A reference copy of all plugin dialogues. They won't save and may only partially work. Just here for browsing.
/dashboard/system/form_reform/block_dialogue_explorer
A reference copy of all form input block dialogues. They won't save and may only partially work. Just here for browsing.
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.
List and display form submissions from Form Reform.
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.