Last updated 6 September 2008.

This project aims to create a browser-based form builder for Drupal. Examples of such form builders include:

In this case, though, what a form builder will build is not directly an HTML form. Rather, we need a UI for building a data representation of the form.

Background and need

In the recently-released 4.7 version of Drupal, a "Forms API" was introduced. The API includes a well defined data structure - a structured PHP array, typically defined as a variable, $form - through which forms are defined and rendered. For more information, see the links at http://drupal.org/node/37775, especially the Forms API Quickstart Guide and Forms API Reference.

Currently, module developers need to write PHP code to create forms through the Forms API. This has two disadvantages: a) not everyone can do it b) it's just plain boring and tedious. So there's a lot of interest in the community in seeing an intuitive UI for building $form arrays, complete with all their attributes.

Objectives

The eventual end goal is a client-side UI for building $form arrays that implements all the element types (checkboxes, fieldsets, etc.) and associated properties found in Forms API. Aside from the HTML form elements (checkbox, etc.), this means the possibility to group fields into a subtree (#tree), specify callbacks, and so on.

But, within the scope of this project, a sound design is much more important than a complete feature set. An early goal will be to establish realistic objectives, which likely will stop short of the whiz-bang does-everything app that everyone's hoping for.

Approach

The above mentioned examples are useful for inspiration, but won't provide the code needed in this application, as these form builders are not open source. Our solution must be GPL, and so will involve significant new development.

There is a number of directions that could be taken. Please see the page Suggested approach for some ideas--keeping in mind that these are guidelines and suggestions for further discussion and development.

Necessary experience and skills

We are aware that this is a particularly demanding project. If you don't have the following knowledge already, you probably should consider picking a different project:

  • You have strong JavaScript skills, including an understanding of AJAX.
  • You've studied the Forms API of Drupal 4.7 and know what we're talking about when we say "the $form array".
  • You already know PHP.

There are some projects which can serve as good learning projects for Drupal, JS and/or PHP, but this one is not one of them. This is more for the student/expert who isn't a newb, and ideally already has some Drupal knowledge.

Thanks for your interest, and we look forward to discussing this project further as we seek the right fit!

Comments on this proposal

A few Questions....
silence - May 3, 2006 - 08:01

Hi!

A few questions...

1. The UI's of the examples vary a lot. Which one of http://wufoo.com, http://www.formassembly.com/ and http://www.jotform.com/index is preferred?

2. Any restrictions on how the drag and drop are implemented? (I dont know if wForms and Freja libraries have features like this. I am asking this to know if the public libs like the ones by script.aculo.us can be used.)

3. What are the general target browsers for this module?

4. Were there any previous attempts to make it? If yes where can I find the details?

Thanx in advance :)
======================================================
======================================================

Some quick responses
nedjo - May 3, 2006 - 13:10

1. This is an item for discussion.

2. There is a scriptaculous module implemented for Drupal (S/P Ajax), so it would be a candidate for using.

3. Likely, broad support (Safari, Firefox, IE, etc.).

4. Not that I'm aware of.
======================================================
======================================================

What about GWT?
jasonwhat - May 26, 2006 - 14:34

I might not understand ajax properly, but seeing as this is for Google Summer of Code it might be a good time to integrate Google Web Toolkit for Ajax creation and compiling. http://code.google.com/webtoolkit/
======================================================
======================================================

GWT
silence - May 28, 2006 - 05:58

A few notes about GWT:

1. When we use GWT, we program in simple JAVA using AWT and SWT.
2. GWT will be best used when we are creating a complete web based application. I think it might be difficult to use it with our own code. Does java offer drag and drop (I dont know) ?
3. Is GWT available as GPL? - I cant see the name mentioned anywhere though I see Apache License v. 2.0.

anyways could you explain the integration part in more detail.
======================================================
======================================================

I'm ignorant
jasonwhat - May 29, 2006 - 00:10

No, I can't really explain it more. I'll I know is that several different libraries are working their way into Drupal apps. Maybe I'm blinded by the big name, but GWT seems like a good stable library, compiler, whatever to hang Drupal's hat on rather than many of the others. That said, I really don't understand how it all works. I was hoping someone who understands this more could chime in on whether this would be useful or not.
======================================================
======================================================

Formlogix.com
tsabbay - December 27, 2006 - 14:45

hi guys,
you forgot the new player, we are small and highly motivate,
our form designer is really rocks, wufoo also got a nice touch
but we still think that we are much more flexible in terms
of design free,elements and data flexibility.
http://www.formlogix.com
======================================================
======================================================

Online Form Builder
shyamanthi - August 21, 2007 - 04:08

Why don't you try the form builder at http://www.flovv.com/. Its quite easy and can be built in no time. This is new and promising.
======================================================
======================================================

Form Builder wins hands down!
BioALIEN - February 19, 2007 - 12:43

Having just tried out all the links listed on this page, my hat goes off to Form Builder (http://www.formassembly.com). Very intuitive UI, very easy and straight forward. Unfortunately, it's not open source so life goes on.

Edit:
http://www.formassembly.com/wForms/

Its LGPL!

------------------------------
BioALIEN
Buy/Sell/Trade with other webmasters: WebMasterTrader.com
======================================================
======================================================