We successfully used CB with Formit to provide users with form builder, including single and two-column form layout, text fields, textareas, radio groups, checkbox groups, file upload fields, dropdowns, email notifications, autoresponders etc. Initial setup is quite complicated, you need to understand quite well CB, Formit and MODX itself. But in the end of the day, customer is happy
I was also dabbling with that idea some time ago, but then decided to extend my contact-form-element to a “Multi-Purpose” Contact-Form, which is a “very light” Form-Builder:
Update: I’ve decided to dive into the rabbit hole and see what happens.
On the backend side I have a simple form builder based on:
A layout field (form) limited to a single layout (fieldset). Inside each fieldset layout you can add one or more formfields (type: chunk, because I needed the preview feature).
Important: The contentblock templates are only used on the backend to create a visual representation of the formfields.
All the frontend stuff (layout, validation, etc) is created by formit and a renderHook that collects all fieldsets and formfields by parsing the json output from a cbGetFieldContent snippet aimed at the current cb layout and its child elements.
So far I have only the visuals, next are validation and form values.