6

I'm currently using amforms from a&m impact on a couple of sites. However, it looks like this plugin won't get a craftcms version 3 update. In addition, my requirements for a form plugin have expanded considerably since my clients want more advanced functionality. Therefore, I am now searching for a good alternative.

My requirements are as follows:

  1. It should be possible to prepopulate fields with existing data
  2. Duplicating forms should be possible
  3. Templating completely customizable
  4. Ability to dynamically add more rows of fields (like in a reservation for a hotel where you can add more rooms or persons)
  5. Validation for at least the basic field types
  6. File uploads should be possible
  7. Custom conditions for custom fields (like a checkbox only checkable after checking another one before)
  8. Custom email template
  9. Translatable
  10. Good documentation
  11. Active development

Right now Solspace's Freeform looks most promising and I already know their calendar plugin. However, Sprout Forms also looks quite capable.

Does anyone of you has experience with one of these plugins or can recommend another plugin that meets all or most of the criteria?

Thank you so much for your help!

2 Answers 2

6

To answer your questions in regards to how they will fit with Freeform...

  1. If what you mean by pre-populating fields with existing data is being able to fill fields with data from other elements, Freeform can do this. It allows you to populate fields with data from other Craft Elements or even common Predefined data included with Freeform such as States, Months, Date ranges, number ranges, etc. If what you mean is that you'd like a submitted form to retain its existing data when there's an error upon submitting the form, it can do that as well.

  2. Forms can be duplicated in Freeform.

  3. You have full control over your template formatting in Freeform. You can use one of the default formatting templates included with Freeform (preset for popular frameworks), use one as a starting point and adjust as necessary, or completely customize your own thing.

  4. The best choice here would be to use Freeform's built-in Table field, which allows you to collect and handle repeating data nicely.

  5. Freeform offers a wide variety of field types, and included with them is the necessary validation for each.

  6. File Upload fields are available with Freeform.

  7. Freeform's Conditional Rules feature allows you to show/hide fields based on the contents or selection or check of other field(s). Included in this is also page jumping in multi-page forms.

  8. Freeform offers 5 different ways to send email notifications, and you can have as many different types of email notification templates, and customize them however you please.

  9. It depends what you mean by translatable, but Freeform forms can be translated with static translation files. The CP itself is also translatable.

  10. Freeform has what we believe is fairly comprehensive documentation, and it's always getting better. And when questions or issues arise, you can always contact us for help.

  11. Freeform is the most popular third party form plugin for Craft CMS, and it has a proven history of active development for years. You can preview the meaty changelog filled with countless feature additions, improvements and bug fixes. It's actively developed by Solspace, which has been around and developing software for well over a decade. :)

3

I work with Sprout and can answer your questions with regards to Sprout Forms.

1. It should be possible to prepopulate fields with existing data

This will happen by default in a lot of standard use cases when you are using Form Templates and when validation fails, for example. It's also possible to populate a Form Entry dynamically using the setEntry variable.

2. Duplicating forms should be possible

You can duplicate a form by selecting Save->Save as New Form

3. Templating completely customizable

Sprout Forms templates are 100% customizable down to the individual field type. See:

  • Template Overrides - allow you to override form templates with your own custom HTML right within your Craft templates/ folder. You get full access to the form templates being output and can customize them however you'd like.
  • Form Templates API - allows you to manage Template Overrides as custom, reusable Form Templates in a plugin or module
  • Rendering Options - allow you to dynamically override certain characteristics in existing Form Templates

4. Ability to dynamically add more rows of fields (like in a reservation for a hotel where you can add more rooms or persons)

Sprout Forms avoids supporting fields that may require javascript and interactivity on the front-end by default (as we can't predict all the potential use cases of how this type of interactivity should be implemented), however, we do support custom Form Fields and Template Overrides which should give you all the control you need to create the advanced field types you need on the front-end and style and script them however you need.

5. Validation for at least the basic field types

All Form Fields provide validation. Custom Form Fields can be created to support additional validation requirements.

6. File uploads should be possible

File Uploads are supported via the File Upload Form Field.

7. Custom conditions for custom fields (like a checkbox only checkable after checking another one before)

Forms allow you to add Conditional Rules for your Fields.

For more advanced scenarios, conditional logic could also be handled via your templates and CSS and Javascript. Form Fields support adding custom CSS Classes, Template Overrides allow you to customize any details about how your Form and Field HTML is output so you can interact with it how you need, and while it's currently undocumented, you can also add pre-defined CSS Classes as a dropdown option if you create custom Form Templates via the API.

8. Custom email template

Sprout Forms Notifications are powered by an integration with Sprout Email so you have the full feature set of Sprout Email Notification Emails in Sprout Forms.

Similar to Form Templates, Email Notifications allow you to control every detail of the HTML and Text versions of your emails via Email Template Overrides

Reporting is handled in a similar way and is powered by Sprout Reports.

9. Translatable

Translating forms is tricky business. This is because the problem is the reverse of the problem Craft is solving by default. Craft Elements support translations of the content being submitted to custom fields where Form Elements need to support translations of the Labels and Descriptions of the fields being submitted, and the user adds the content afterward in whatever language they are given the option to submit it.

Sprout Forms supports translating a form by duplicating a form. Outside of that, Sprout Forms ensures the plugin itself is translatable however the translation itself would have to happen outside of the plugin.

10. Good documentation

We think we have decent docs and we're always looking to improve, so please drop us a note if you feel we could add a useful example:

Sprout Forms Documentation

If you ever feel stuck or are curious about how to tackle a hard problem using Sprout Plugins, we also offer a free half-hour coaching session

11. Active development

Sprout Forms is built by Barrel Strength Design who is has been involved in the Craft CMS community since it was called Blocks CMS. All of our commercial plugins are actively developed and supported and Sprout Forms will continue to benefit from new features we are developing in our other plugins as well (Email, Reporting, Imports, Fields).

1
  • Thank you very much for your detailed answer! I will definitely take a look at Sprout forms, and I am still waiting for some answers with regard to Solspace Forms. Thank you, once again, so much for all the effort you put into this!
    – Luke
    Commented Nov 9, 2018 at 17:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.