Quantcast
Channel: drupal.org - Site administrators
Viewing all articles
Browse latest Browse all 426

Comparison of Form Building Modules

$
0
0

Drupal has a lot of modules aimed at helping site builders and users add forms to their sites. What follows is a rough comparison of 4 of them. If there are any I've missed, please add them.

Webform

Webform is a module designed to allow you to add custom forms to the front-end of your site. Each form is stored against a node, so you add new forms to your site as if you were adding content. It's useful for things like Survey websites or just where you want a couple of forms that differ from the standard contact form.

Pros

  • Webform has been around for a long time, its very well established and has a big following.
  • Webform can make a wide variety of forms with lots of different elements available.
  • Webforms inherit all the cool access stuff that nodes have.

Cons

  • Webform submissions are stored in their own custom way - not using any of the standard drupal API's.
  • Drupal 7 has lots of cool Field Types available in contrib that webform cannot utilise.
  • There is little or no integration with alot of modules because the submissions do not use entities.
  • Webform cannot (without some magic) be used to edit nodes or comments.
  • Quicksketch, the main maintainer of Webform has said he no longer wishes to be a part of the Drupal community after Drupal 7. Thus the future of web form is uncertain.
  • Cannot edit entities using the web forms.

Entityforms

The Entityforms module seems to be the same as web form but using the Entity API. It uses the normal entity/field api as a kind of form builder. You can have as many 'Forms' as you like (each 'form' is a different bundle on the Entity Form entity) and you can add whatever fields you want.

Pros

  • Entityforms can make a wide variety of forms with lots of different fields available.
  • Entityforms uses the entity API which guarantees it will work with:
    • Views
    • Rules
    • Entity Reference
    • Organic Groups
    • Every field module in Drupal, including: Date, File, Geofield, Name, Address, Media and many more...
  • Other tools for Entities will work with the module, for example: Entity Operations.
  • Integrates with field group
  • Integrates with Conditional Fields
  • Entityform is fairly well established.

Cons

  • Entityforms cannot (without some magic) be used to edit nodes or comments.
  • You can only have one form for each bundle.
  • Altering the form to add custom markup may require extra code.
  • Any form can only edit one submission entity at a time.

Flexiform

Flexiform's main purpose is to provide a UI for building forms to add/edit other entities. Flexiform allows you as a site builder to configure as many different forms as you like to edit whatever entities you want. With its pluggable Builder and Element system, it could possible to configure multi-step forms for any entity on your website. Flexiform also uses a relationship system similar to CTools to allow you to edit multiple entities with one form.

Flexiform can provide a complete separation between how content is stored and how content is edited.

The flexiform_webform sub-module provides basically the same functionality as Entity Forms, so a combination of Entityform and flexiform would be a good one.

Pros

  • Flexiform can make a wide variety of forms with lots of different fields available.
  • Flexiform uses the entity API which guarantees it will work with:
    • Views
    • Rules
    • Entity Reference
    • Organic Groups
    • Every field module in Drupal, including: Date, File, Geofield, Name, Address, Media and many more...
  • Integrates with field group
  • Flexiform can be used to edit or add any entity.
  • Flexiform can pull multiple entities into one form using relationships. For example, creating a user edit form the has fields from various profile2 is easy with flexiform.
  • [WIP]Flexiform will be allow you to configure multi step forms.
  • Flexiform can have an unlimited number of forms for one entity type. If you want 3 different ways to submit a feedback form, but want the responses from that form to be treated as the same thing (in one view for example) this is easy with flexiform.
  • Flexiform can override existing node forms allowing site builders to edit existing system forms without resorting to code and hook_form_alter().
  • Flexiform has a pluggable element system, its easy to add any element you want with a bit of code!
  • Flexiform allows you to add blocks of custom html anywhere on your form.
  • Flexiform is already being ported to Drupal 8.
  • The maintainers of flexiform already use it one several large, high-traffic websites. Including Event booking systems and University Management software.

Cons

Form Builder

Form Builder provides a UI for constructing Drupal Form API forms. It therefore has all the flexibility of the Drupal Form API (that's alot of flexibility!), however it does not provide any way to save the submissions. It's a bit different from the other 3 as it just exports the code for you to add the form to your site somewhere, but leaves the site builder to program the validation and submission mechanisms.

Quick Forms

Lightweight alternative to Webform. Created mostly for the use by developers with extensibility in mind.


Viewing all articles
Browse latest Browse all 426

Trending Articles