code

Pregnancy.org case study

Pregnancy.org home page screenshot

Since 2001, Pregnancy.org has been an informational and community resource for women about fertility, pregnancy, labor and child care. In November 2008, Pregnancy.org was relaunched in Drupal 6, with a new design and development by pingVision.

Apr 7 2009

Multi-step Forms in Drupal 6 using variable functions

I recently had to write a multi-step form in Drupal 6. Of course, I turned to documentation to see how others are doing it. Pro Drupal Development offers the basics, so do the 5 to 6 upgrade notes, and others. I felt that many approaches suffered from design flaws that made the code cumbersome to manage beyond a couple steps. I set out to develop a multi-step form method with the following goals:

  • One form builder with nested conditional statements is difficult to manage, each step should be its own form array function
  • Steps shouldn't be numbered, e.g. to move to the next step don't $form_state['storage']['step']++
  • Each step should be able to have its own validate and submit handlers
  • Steps should be form alterable
••• (#)