Tuesday, March 08, 2011

Wrapup of Webform module session

This session was a great introduction to the Webform (contributed) module for Drupal. It also showed those of us who've looked at Webform the awesomeness of Webform 3 and how well it plays with not only Drupal 6, but Drupal 7. (btw, link to the Webform project page is http://drupal.org/project/webform)

Personally, I find a few things particularly great about Webform for my library's use (not specific to Webform 3, also true of earlier versions):
  • webform will allow my colleagues to easily make forms and polls/surveys (of whatever complexity they want, with many possible methods for data collection) without them ever having to come close to code
  • webforms created using this system will be more secure than we might come up with from scratch - keeping our form creation activities from opening up new security holes on the server... also, can apply form spam blocking techniques (such as the use of CAPTCHA or Mollom modules)
  • that it actually offers at least as much functionality and ease-of-authoring and data collection as SurveyMonkey, but gives us a lot more flexibility

My notes are found below (BTW, some rockin' new aspects of Webform 3 are highlighted - take note!):

Webform 3
Nathan Haug
“quicksketch” on d.o. - Lullabot Consulting, Development, training

Webform
- the tool for making surveys on Drupal
- easier to use than CCK
-- no it’s not based on CCK
-- no it’s doesn’t use Entities in D7
- designed for end-users, not administrators (people who just want to make a survey)
- many-to-few method of collecting data - many fill out form, just a few receive the results/submissions
- not a data creation tool, but users can see their own submissions, if you’ve granted them that permission

New Features in Webform 3
- ability to have conditional logic - can show fields / multi-pages based on what the answer to previous questions were submitted (so many people who aren't in development have no idea how difficult this functionality can be to add in... but now anyone can do it!)
- user can now save drafts & resume later
- you can webform-enable for any content type
- basic Views module support (a good start, not fantastic/fully implemented yet)
- much better data integrity - info is stored in the db more efficiently & makes it usable by Views
- Form Builder Integration* (http://drupal.org/project/form_builder) - which will blow your mind! ;)

Holy APIs!
- module-provided components - additional fields (E.g., a grid field full of text fields in web form, similar to cck)
- more hooks (for save/insert/update/delete submission)
- hooks for pre-built select lists (heading toward Views integration for select lists)
- renderables used in forms, e-mails, and viewing submissions, even in D6

Webform 3 v. 2
- shorter node form - just title, body, all settings elsewhere - 1st save node, only then there will be a webform tab on top of node - then you can click on the Webform tab to do settings like email
-- save node 1st! then make web form in Webform 3
-- in webform tab, there’s a form components tab, an emails tab, a form settings tab
-- can send out templated email response / confirmation upon submission of webform - tokenized

Excellent tools for getting data out of Webform 3 - including basic analysis capabilities built in
- Basic analysis tools built in
- Table view of form submission data
- Downloadable form submission data
This is AWESOME! Bye bye Survey Monkey!!!

Date module & jquery ui on your D6
You can use date popup calendar ui in form
showed Webform 3 off in Drupal7 environment - still has popup calendar, doesn’t need Date module and jquery ui native to D7

Can skip page if none of the components show up in a given page - conditional logic coolness

Payment systems - combo of Pay module & Webform 3 module
can map fields to payment component - payment gateway
(of course with all cautions about implementing using HTTPS)


Form Builder
system to make it really easy for users to build and construct forms
creates kind of a wysiwyg looking interface for building webforms
drag and drop fields, then add the fields’ attributes
ability to add check boxes - by adding the Options Element module - ability to easily define lists of things

webform has basic token capabilities, so can take advantage of logged in username info, for example - e.g., %username - can do this with any core profile fields the user has...
you can hook into the webform_components from other modules webform_webform_components

how to handle form spam - CAPTCHA or Mollom modules - make sure you’re using latest versions of webform and mollom - Mollom now allows you to natively add Mollom protection to any form
NEVER expose a webform to the public if without this type of form spam protection


other cool things you can potentially do / combine with Webform:
- check out Webform integrations listed on project page
- mime mail module - to send html emails to users (so they look like my website/can embed images, for example)

can you populate select list from db table?
- can load prebuilt select list coming from some php - only way to handle this currently is to create a module that hooks into webform webform_options - but pretty simple-looking to do

is webform3 generating html5-compatible code for things like email? not currently
Elements module makes sure you have html5-compatible elements

is the arrange fields module compatible with form builder? two different interfaces, so prob should work together, but doesn’t know, hasn’t tried it

No comments: